Inhoudsafhankelijke codering

Media Services-logo v3


Waarschuwing

Azure Media Services wordt op 30 juni 2024 buiten gebruik gesteld. Zie de handleiding voor buitengebruikstelling van AMS voor meer informatie.

Tip

Wilt u miniaturen genereren, twee video's aan elkaar plakken, een video subclip maken of deze draaien (onder andere)? U vindt voorbeeldcode voor Media Services op de pagina Voorbeelden .

Overzicht van de vooraf ingestelde inhoudsbewuste codering

Om inhoud voor te bereiden voor levering met behulp van Adaptive Bitrate Streaming, moet video worden gecodeerd met meerdere bitsnelheden (van hoog naar laag) en meerdere resoluties. Met deze techniek kunnen moderne videospelers op Apple iOS, Android, Windows en Mac gebruikmaken van streamingprotocollen waarmee inhoud soepel kan worden gestreamd zonder bufferen. Met deze verschillende weergaven van weergavegrootte (resolutie) en kwaliteit (bitrate) kan de speler de beste versie van de video selecteren die door de huidige netwerkomstandigheden kan worden ondersteund. Het netwerk kan sterk variëren van LTE, 4G, 5G, openbare Wi-Fi of een thuisnetwerk.

Het proces van het coderen van inhoud in meerdere weergaven vereist het genereren van een 'coderingsladder', een tabel met oplossingen en bitrates die de encoder vertelt wat er moet worden gegenereerd. Zie de ingebouwde coderingsinstellingen van Media Services voor een voorbeeld van een dergelijke ladder.

In ideale omstandigheden wilt u op de hoogte zijn van het type inhoud dat u coderen. Met behulp van deze informatie kunt u de coderingsladder afstemmen op de complexiteit en beweging in uw bronvideo. Dit betekent dat er bij elke weergavegrootte (resolutie) in de ladder een bitrate moet zijn waarboven elke toename van de kwaliteit niet waarneembaar is: de encoder werkt met deze optimale bitratewaarde.

Het volgende optimalisatieniveau dat kan worden gemaakt, is het selecteren van de resoluties op basis van de inhoud. Een video van een PowerPoint-presentatie met kleine tekst ziet er bijvoorbeeld wazig uit wanneer deze onder 720 pixellijnen in de hoogte wordt gecodeerd. Daarnaast hebt u mogelijk ook een video waarin beweging en complexiteit worden gewijzigd op basis van de wijze waarop deze is gemaakt en bewerkt. Dit biedt de mogelijkheid om de coderingsinstellingen bij elke scène of opnamegrens af te stemmen en aan te passen. Een slimme encoder kan worden belast met het optimaliseren van de coderingsinstellingen voor elke opname in de video.

Azure Media Services biedt een adaptieve streaming-voorinstelling die het probleem van de variabiliteit in de bitsnelheid en resolutie van de bronvideo's gedeeltelijk oplost. Met deze voorinstelling wordt de broninhoud echter niet geanalyseerd om te zien hoe complex deze is of hoeveel beweging deze bevat.

De vooraf ingestelde inhoudsbewuste codering verbetert de meer statische coderingsinstelling adaptive bitrate streaming door logica toe te voegen waarmee de encoder een optimale bitrate-waarde voor een bepaalde resolutie kan zoeken, maar zonder uitgebreide rekenkundige analyse. Met deze voorinstelling wordt een unieke 'ladder' van OP GOP's afgestemde MP4's uitgevoerd op basis van het bronbestand. Op basis van een bronvideo voert de voorinstelling een initiële snelle analyse van de invoerinhoud uit en gebruikt de resultaten om het optimale aantal lagen, bitrate en resoluties te bepalen dat nodig is om de hoogste kwaliteit adaptive bitrate streaming-ervaring te bieden. Deze voorinstelling is effectief bij video's met een lage tot gemiddelde complexiteit, waarbij de uitvoerbestanden lagere bitrates hebben dan de meer statische adaptieve streaming-voorinstelling, maar met een kwaliteit die nog steeds een goede ervaring biedt aan het publiek. De uitvoermap bevat verschillende MP4-bestanden met video en audio die klaar zijn voor streaming.

Uitvoerinstellingen configureren

Daarnaast kunnen ontwikkelaars ook het uitvoerbereik beheren dat de vooraf ingestelde inhoudsbewuste codering gebruikt bij het bepalen van de optimale instellingen voor het coderen van de adaptive bitrate streaming-ladder.

Met behulp van de klasse PresetConfigurations kunnen ontwikkelaars een set beperkingen en opties doorgeven aan de vooraf ingestelde inhoudsbewuste codering om de resulterende bestanden te beheren die door de encoder worden gegenereerd. De eigenschappen zijn vooral handig voor situaties waarin u alle codering wilt beperken tot een specifieke maximale resolutie om de ervaring of kosten van uw coderingstaken te beheren. Het is ook handig om de maximale en minimale bitrates te kunnen beheren die uw doelgroep kan ondersteunen op een mobiel netwerk of in een wereldwijde regio met bandbreedtebeperkingen.

Ondersteunde codecs

De vooraf ingestelde inhoudsbewuste codering is beschikbaar voor gebruik met de volgende codecs:

  • H.264
  • HEVC (H.265)

Technische details over inhoudsbewuste voorinstellingen

We gaan nu dieper in op de werking van de vooraf ingestelde inhoudsbewuste codering. In de volgende voorbeeldgrafieken ziet u de vergelijking met behulp van metrische kwaliteitsgegevens zoals PSNR en VMAF. De bron is gemaakt door korte clips van opnamen met hoge complexiteit uit films en tv-programma's samen te stellen, bedoeld om de encoder te benadrukken. Deze voorinstelling produceert per definitie resultaten die variëren van inhoud tot inhoud. Het betekent ook dat er voor bepaalde inhoud mogelijk geen aanzienlijke vermindering van de bitsnelheid of kwaliteitsverbetering is.

Curve van snelheidsvervorming (RD) met PSNR

Afbeelding 1: Rd-curve (rate-distortion) met psnr-metrische gegevens voor bron met hoge complexiteit

Curve van snelheidsvervorming (RD) met VMAF

Afbeelding 2: Rd-curve (Rate-distortion) met behulp van VMAF-metrische gegevens voor bron met hoge complexiteit

Hieronder ziet u de resultaten voor een andere categorie broninhoud, waarbij de encoder kon vaststellen dat de invoer van slechte kwaliteit was (veel compressieartefacten vanwege de lage bitrate). Met de inhoudsbewuste voorinstelling heeft de encoder besloten om slechts één uitvoerlaag te produceren: met een lage bitsnelheid, zodat de meeste clients de stream kunnen afspelen zonder te stagneren.

RD-curve met PSNR

Afbeelding 3: RD-curve met PSNR voor invoer van lage kwaliteit (bij 1080p)

RD-curve met VMAF

Afbeelding 4: RD-curve met VMAF voor invoer van lage kwaliteit (bij 1080p)

Voorbeelden van codering

Zie de uitgebreide lijst met coderingsvoorbeelden.

Help en ondersteuning

U kunt contact opnemen met Media Services als u vragen hebt of onze updates op een van de volgende manieren volgen: