Nyckelbildsintervall (även känt som nyckelbildsperiod, ibland skrivet som nyckelbildsintervall) är en avgörande parameter att ta hänsyn till vid transkodning av video, eftersom det är en av de viktigaste parametrarna efter bitfrekvens och upplösning. Det bestämmer hur ofta en komplett bildruta av video kodas in i strömmen, vilket kan påverka video kvaliteten, bitfrekvensen som krävs för strömmen och dekoderns förmåga att återhämta sig från förlorade paket. Andra parametrar kan dock också ha en betydande påverkan på transkodningsprocessen.
Till exempel kan koden som används för kodning, antalet referensbilder och andra parametrar också ha en betydande inverkan på kvaliteten och prestandan hos den transkodade videon. Dessutom kan nätverksförhållandena och slutanvändarens enhet också ha en betydande effekt på den slutliga videokvaliteten.
OBS nyckelbildsintervall 0 vs 2? 0 är definitivt inte det rekommenderade värdet för någon live-strömning, men det finns ingen bra, korrekt, rekommenderad, perfekt värde för nyckelbildsintervall, även om vissa onlinevideoleverantörer (OVP:er) rekommenderar eller begränsar till ett fast värde.
nyckelbildsbitar i rött, andra bildrutor i blått i detta 10-sekunders videosegment
Finns det ett bästa eller korrekt nyckelbildsintervall för live-strömning?
Det optimala nyckelbildsintervallet för live-strömning kan variera beroende på de specifika behoven hos strömmen och nätverksförhållandena. Var medveten om att ett kortare nyckelbildsintervall kan belasta kodaren mer, vilket kan leda till högre CPU-användning och göra det svårare att upprätthålla en konsekvent bitfrekvens. Detta kan vara ett problem när man arbetar med begränsade resurser, som en dator med låg prestanda eller en långsam eller opålitlig internetanslutning.
För en kort svar utan utläggning,
läs våra två rekommendationer baserade på dina behov längst ner på sidan.
Vad är ursprunget till det vanligt använda 2-sekunders nyckelbildsintervallet?
"Vad är det korrekta nyckelbildsintervallet för live-strömning" (i OBS Studio eller andra program) är en vanlig fråga som besvaras av copywriters som "2 sekunder". Varför bry oss om att ha en parameter för nyckelbildsintervall i transkodare om detta var svaret för alla användningsfall och varifrån kommer detta "kopiera-klistra in-värde"?
I traditionell television som kabel-TV etableras nyckelbildsintervallet av standarden som används för videokomprimering, vanligtvis MPEG-2 eller H.264. Dessa standarder ställer vanligtvis in nyckelbildsintervallet till flera sekunder, vanligtvis mellan 1-3 sekunder, för att säkerställa smidig avkodning av videon på slutenheten, som en TV eller en set-top box. Det 2-sekunders nyckelbildsintervallet är en vanligt använd och oskriven standard för set-top boxar, eftersom avkodare eller spelare som använder MPEG-2 behöver frekventa nyckelbilder för att fungera korrekt.
Däremot har live-strömning särskilda behov jämfört med traditionell television. Eftersom live-strömning levereras över internet med codec som H.264 och nyare, kan kvaliteten på videon påverkas av faktorer som internetanslutningen och tittarens enhet. Därför behöver live-strömning inte förlita sig på de bästa praxis som fastställs av MPEG-2.
Varför behöver en avkodare frekventa nyckelbilder?
Nyckelbilder, även kända som I-frames, är fullständiga bildrutor som kodas oberoende av andra bildrutor. De innehåller all information som behövs för att avkoda videon och visa den på skärmen. De skiljer sig från P-frames och B-frames, som kodas baserat på informationen från föregående nyckelbild.
När en avkodare tar emot en videostream börjar den avkoda videon från den första nyckelbilden den tar emot. Sedan använder den informationen från de efterföljande P-frames och B-frames för att fylla i de saknade detaljerna och återskapa videon. Om avkodaren tar emot en ny nyckelbild kan den kasta informationen från föregående nyckelbild och börja avkoda videon igen med den nya nyckelbilden.
En avkodare behöver frekventa nyckelbilder av två huvudsakliga skäl:
- Motståndskraft mot fel: Vid förlorade eller korrupta data under överföringen kan avkodaren använda informationen från den senaste nyckelbilden för att återskapa videon och minimera effekterna av de förlorade datan. Dock är aktuella standarder för live-strömning och VOD som HLS eller DASH mer motståndskraftiga mot paketförlust
- Smidig uppspelning: När avkodaren tar emot en ny nyckelbild kan den kasta informationen från föregående nyckelbild och börja avkoda videon igen med den nya nyckelbilden. Detta kan bidra till smidig uppspelning av videon, eftersom avkodaren kan börja visa de nya videodata så snart de tas emot, istället för att vänta på att all data från föregående nyckelbild ska tas emot.
Har HLS bättre förmåga att hantera nätverksfluktuationer jämfört med tidigare strömningstekniker?
HTTP Live Streaming (HLS), som har använts brett för live-strömning under det senaste decenniet, är en mer motståndskraftig strömningsteknik för nätverksvariationer jämfört med tidigare strömningstandarder.
HLS fungerar genom att dela upp videon i små segment och skapa flera versioner av varje segment med olika bitfrekvenser. Dessa segment görs sedan tillgängliga för tittare i en spellista, och tittarens enhet kommer att växla till det lämpliga segmentet baserat på de aktuella nätverksförhållandena. Detta gör det möjligt att strömma videon med högsta möjliga kvalitet med hänsyn till tittarens nätverksanslutning och enhetens kapacitet.
En av de viktigaste funktionerna i HLS är förmågan att anpassa sig till förändrade nätverksförhållanden genom att växla mellan olika bitfrekvensversioner av samma segment. Detta kallas adaptiv bitfrekvensströmning. Denna funktion gör att HLS kan erbjuda en bättre visningsupplevelse vid varierande nätverksförhållanden, eftersom videokvaliteten kan justeras automatiskt efter tittarens nätverksanslutning.
Dessutom använder HLS också HTTP som transportprotokoll, vilket stöds av de flesta enheter och nätverk. Detta gör att det är mer kompatibelt än andra strömningstekniker.
Vilket är standardvärdet för nyckelbildsintervall i OBS?
Till skillnad från vad som är allmänt känt är standardvärdet för nyckelbildsintervall i OBS Studio, den senaste versionen av OBS (Open Broadcasting Software), inte inställt på 2 sekunder. Det är faktiskt inställt på 250 bildrutor när nyckelbildsintervallet är inställt på "auto"-läge.
Nyckelbildsintervallet är tiden eller antalet bildrutor mellan varje nyckelbild (I-frame) i en videostream och det mäts i sekunder eller antal bildrutor. Ett nyckelbildsintervall på 2 sekunder innebär att en ny nyckelbild infogas i videostreamen varje 2 sekunder, och ett nyckelbildsintervall på 250 bildrutor innebär att en ny nyckelbild infogas i videostreamen varje 250 bildrutor. Det är säkrare att använda sekunder eftersom uppspelningen förlitar sig på sekunder, och ett nyckelbildsintervall uttryckt i bildrutor kommer att ha olika värden beroende på bildhastigheten. Till exempel, för en bildhastighet på 25 fps blir nyckelbildsintervallet 10 sekunder, men det blir 8,33 sekunder för 30 fps och 4,16 sekunder för 60 fps.
Därför är det inte ett bra val för en sändare att välja "auto" för nyckelbildsintervall, istället rekommenderas det att välja avancerat läge i utdata för att ställa in det på lämpligt sätt.
Vilka är några programalternativ för att bestämma nyckelbildsintervallet för en videostream eller fil?
Det finns flera programvaruverktyg du kan använda för att kontrollera nyckelbildsintervallet för en videostream eller fil. Några av de mest populära alternativen inkluderar:
- FFmpeg: FFmpeg är ett gratis och öppen källkod-kommandoradsverktyg för hantering av multimedia. Det låter dig kontrollera nyckelbildsintervallet för en videostream eller fil genom att använda alternativet "-show_frames". Detta visar alla bildrutor i videon och deras typer, inklusive nyckelbilderna.
- MediaInfo: MediaInfo är en gratis, öppen källkod-programvara som visar detaljerad information om video- och ljudfiler, inklusive nyckelbildsintervallet. Den kan användas för både Windows och MacOS.
- VLC media player: VLC media player är en gratis, öppen källkod-mediaspelare som kan spela upp en mängd olika video- och ljudformat. Den har ett inbyggt fönster för medieinformation som kan visa nyckelbildsintervallet för en videofil, bland annan information.
- HandBrake: HandBrake är en gratis, öppen källkod-videotranskodningssprogramvara som kan användas för att konvertera videofiler från ett format till ett annat. Den har en inbyggd funktion för att kontrollera nyckelbildsintervallet för en videofil, bland annan information.
- Streamlink: Streamlink är ett gratis och öppen källkod-kommandoradsverktyg som låter dig titta på online-videostreams i en mediaspelare efter eget val. Det har också möjligheten att visa nyckelbildsintervallet för en videostream.
Detta är några exempel på programvaruverktyg som finns tillgängliga, men det finns även andra alternativ, såsom kommersiell programvara (Elecard StreamEye, Telestream Switch), som kan ha fler funktioner och alternativ för att kontrollera nyckelbildsintervallet för en videostream eller fil.
Vilket nyckelbildsintervall BEHÖVER jag för mitt EGNA live-strömningsanvändningsfall?
Scenarie 1: Jag vill ha bästa möjliga videokvalitet och jämn prestanda under uppspelning.
För optimal live-strömning med hög kvalitet och tillförlitlighet föreslår Apple - skaparen av HLS - att man använder en segmentlängd på minst 6 sekunder och ett fönsterstorlek på 15 minuter. För att säkerställa en förstklassig live-sändning är det viktigt att välja en onlinevideoleverantör som följer och överträffar dessa rekommendationer från Apple.
Många HLS-spelare kan inte ändra upplösning vid något annat tillfälle än i början av ett segment. För att uppnå bästa möjliga videokvalitet på dessa spelare behöver du inte använda ett kortare nyckelbildsintervall än segmentlängden, eftersom det skulle resultera i onödiga nyckelbilder och slöseri med data. Ett nyckelbildsintervall på 6 sekunder rekommenderas starkt för videokvalitet och tillförlitlighet. Om du dock planerar att använda enbart Apples ekosystem, som Safari och inbyggda spelare (AVPlayer) på iOS, iPadOS och tvOS, kan dessa spelare hantera byte av upplösning under ett segment. I så fall kan du använda ett kortare nyckelbildsintervall, som 3 sekunder, men det kan något försämra videokvaliteten eftersom spelaren kommer att försöka byta till högre upplösning oftare.
Utforska våra andra artiklar för att förbättra din videokvalitet ännu mer:
Maximera din live-strömningens prestanda med vår expertguide om hur du korrekt konfigurerar OBS Studio 2023
Scenarie 2: Jag prioriterar snabb interaktion med mina live-strömmande tittare, och detta är den enda motivationen.
För minimal fördröjning i live-strömning väljer du en onlinevideoleverantör som erbjuder låg latens och ställer in ett nyckelbildsintervall på 1 sekund i din transcoder. Om en fördröjning på 3 till 5 sekunder är acceptabel kan ett nyckelbildsintervall på 2 sekunder användas.
- Att välja ett kortare nyckelbildsintervall på 1 sekund kan ha vissa kompromisser vad gäller kvalitet på tjänsten. Spelaren kommer att byta upplösning oftare, vilket resulterar i mindre segmentstorlekar och mer frekventa anpassningar av bitrate. Dessutom kan buffring inträffa oftare på grund av ökad upplösningsväxling och om tittarens nätverk inte kan ladda ner segmenten tillräckligt snabbt. Ta hänsyn till dessa potentiella nackdelar när du beslutar mellan ett nyckelbildsintervall på 1 eller 2 sekunder.
- Om möjligt, konfigurera din transcoder för noll-latensoptimering.
Vilket är nyckelbildsintervallet på den demokanal nedan?
Det valda nyckelbildsintervallet är 6 sekunder eftersom det inte finns några krav på låg latens och detta är en av de viktigaste parametrarna att justera för att få högre kvalitet.