Innehållsmedveten kodning
Letar du efter Media Services v2-dokumentation?
Översikt över den innehållsmedvetna kodningsförinställningen
För att förbereda innehåll för leverans med direktuppspelning med anpassningsbar bithastighetmåste videon kodas med flera bithastigheter (hög till låg) och flera upplösningar. Med den här tekniken kan dagens moderna videospelare på Apple iOS, Android, Windows och Mac använda strömningsprotokoll som smidigt strömmar innehåll utan buffring. Dessa olika återgivningar av visningsstorlek (upplösning) och kvalitet (bithastighet) gör att spelaren kan välja den bästa versionen av videon som de aktuella nätverksvillkoren stöder. Nätverket kan variera mycket från LTE, 4G, 5G, offentligt Wi-Fi eller ett hemnätverk.
Processen för att koda innehåll till flera återgivningar kräver generering av en "kodningsstege" – en tabell med upplösningar och bithastigheter som talar om för kodaren vad den ska generera. Ett exempel på en sådan stege finns i Media Services inbyggda kodningsförinställningar.
I idealiska förhållanden bör du vara medveten om vilken typ av innehåll du kodar. Med den här informationen kan du finjustera kodningsstegen så att den matchar komplexiteten och rörelse i källvideon. Det innebär att vid varje visningsstorlek (upplösning) i stegen bör det finnas en bithastighet utöver vilken eventuell kvalitetsökning inte är perceptiv – kodaren fungerar med det här optimala bithastighetsvärdet.
Nästa nivå av optimering som kan göras är att välja upplösningar baserat på innehållet – till exempel skulle en video av en PowerPoint-presentation med liten text se suddig ut när den kodas under 720 bildpunktslinjer i höjd. Dessutom kan du också ha en video som ändrar rörelse och komplexitet baserat på hur den har gjorts och redigerats. Detta ger en möjlighet att finjustera och justera kodningsinställningarna vid varje scen eller bildgräns. En smart kodare kan få i uppgift att optimera kodningsinställningarna för varje bild i videon.
Azure Media Services tillhandahåller en förinställning för anpassningsbar direktuppspelning som delvis åtgärdar problemet med variationen i bithastighet och upplösning för källvideor. Den här förinställningen analyserar dock inte källinnehållet för att se hur komplext det är eller hur mycket rörelse det innehåller.
Den innehållsmedvetna kodningsförinställningen förbättrar den mer statiska kodningsförinställningen "direktuppspelning med anpassningsbar bithastighet" genom att lägga till logik som gör att kodaren kan söka efter ett optimalt bithastighetsvärde för en viss upplösning, men utan att kräva omfattande beräkningsanalys. Den här förinställningen matar ut en unik "stege" av GOP-justerade MP4-filer baserat på källfilen. Med en källvideo utför förinställningen en inledande snabb analys av indatainnehållet och använder resultatet för att fastställa det optimala antalet lager, bithastigheter och upplösningar som krävs för att leverera direktuppspelning med anpassningsbar bithastighet av högsta kvalitet. Den här förinställningen är effektiv med videor med låg till medelhög komplexitet, där utdatafilerna har lägre bithastigheter än den mer statiska förinställningen för anpassningsbar direktuppspelning, men med en kvalitet som fortfarande ger en bra upplevelse för åhörarna. Utdatamappen innehåller flera MP4-filer med video och ljud som är redo för strömning.
Konfigurera inställningar för utdata
Dessutom kan utvecklare också styra det antal utdata som den innehållsmedvetna kodningsförinställningen använder när de bestämmer de optimala inställningarna för kodning av strömningsstege med anpassningsbar bithastighet.
Genom att använda klassen PresetConfigurations kan utvecklare skicka en uppsättning begränsningar och alternativ till den innehållsmedvetna kodningsförinställningen för att kontrollera de resulterande filerna som genereras av kodaren. Egenskaperna är särskilt användbara i situationer där du vill begränsa all kodning till en specifik maximal upplösning för att kontrollera upplevelsen eller kostnaderna för kodningsjobben. Det är också användbart att kunna styra högsta och lägsta bithastigheter som målgruppen kan stödja i ett mobilt nätverk eller i en global region som har bandbreddsbegränsningar.
Codecs som stöds
Den innehållsmedvetna kodningsförinställningen är tillgänglig för användning med följande codecs:
- H.264
- HEVC (H.265)
Anvisningar för användning
Mer information om hur du använder förinställningen i koden och länkar till fullständiga exempel finns i den innehållsmedvetna kodningen.
Teknisk information om förinställda innehållsmedvetna
Nu ska vi gå lite djupare på hur den innehållsmedvetna kodningsförinställningen fungerar. följande exempeldiagram visar jämförelsen med kvalitetsmått som PSNR och VMAF. Källan skapades genom att man sammanfogade korta klipp med klipp med hög komplexitet från filmer och TV-program som är avsedda att stressa kodaren. Per definition ger den här förinställningen resultat som varierar från innehåll till innehåll – det innebär också att bithastigheterna eller kvalitetsförbättringarna inte minskar avsevärt för vissa innehåll.

Bild 1: Kurva för frekvensfördrång (RD) med PSNR-mått för källa till hög komplexitet

Bild 2: Kurva för frekvensfördrång (RD) med VMAF-mått för källa till hög komplexitet
Nedan visas resultatet för en annan kategori av källinnehåll, där kodaren kunde fastställa att indata var av dålig kvalitet (många komprimeringsartefakter på grund av den låga bithastighet). Med den innehållsmedvetna förinställningen bestämde sig kodaren för att bara skapa ett utdatalager – med en tillräckligt låg bithastighet så att de flesta klienter skulle kunna spela upp dataströmmen utan att stanna av.

Bild 3: RD-kurva med PSNR för indata med låg kvalitet (vid 1080p)

Bild 4: RD-kurvan med VMAF för indata med låg kvalitet (vid 1080p)