Live streamen met Azure Media Services v3

Media Services-logo v3


AMS-website | Codevoorbeelden | Gids voor probleemoplossing

Met Azure Media Services kunt u livegebeurtenissen leveren aan uw klanten in de Azure-cloud. Als u livegebeurtenissen wilt streamen met Media Services, moet u een live video-encoder instellen die signalen van een camera (of een ander apparaat, zoals een laptop) converteert naar een bijdragefeed die naar Media Services wordt verzonden. De bijdragefeed kan signalen bevatten met betrekking tot advertenties, zoals SCTE-35-markeringen. Zie livestream-encoders voor een lijst met aanbevolen coderingsprogramma's voor live streamen.

Als u nog niet eerder een on-premises encoder hebt gebruikt, probeert u de quickstart Een Azure Media Services-livestream maken met OBS .

Dynamische verpakking en levering

Met Media Services kunt u profiteren van dynamische pakketten, waarmee u vanuit de bijdragefeed een voorbeeld van uw livestreams kunt bekijken en uitzenden in MPEG DASH-, HLS- en Smooth Streaming-indelingen . Uw kijkers kunnen de livestream afspelen met alle HLS-, DASH- of Smooth Streaming-compatibele spelers. Bekijk de lijst met geteste spelers en probeer de Media Services-voorbeelden van spelers van derden.

Typen livegebeurtenissen

Livegebeurtenissen worden livevideofeeds opgenomen en verwerkt. Een livegebeurtenis kan worden ingesteld op een van de volgende opties:

Pass-through

Wanneer u de passthrough-livegebeurtenis (basic of standaard) gebruikt, vertrouwt u op uw on-premises live-encoder om een videostream met meerdere bitrates te genereren en deze te verzenden als bijdragefeed voor de livegebeurtenis (met behulp van RTMP of gefragmenteerd MP4-invoerprotocol). De livegebeurtenis geeft vervolgens de inkomende videostroom door aan de dynamische packager (streaming-eindpunt) zonder verdere verwerking. Een passthrough-livegebeurtenis is geoptimaliseerd voor langlopende livegebeurtenissen of 24x365 lineair live streamen.

pass through streaming

Live Encoding

Als u livecodering wilt gebruiken, configureert u uw on-premises live encoder om één bitrate video (maximaal 32 Mbps aggregaat) naar de livegebeurtenis te verzenden (met behulp van het RTMP- of fragmented-MP4-invoerprotocol). De livegebeurtenis transcodeert de inkomende single bitrate stream in meerdere bitrate videostreams met verschillende resoluties. Dit verbetert de levering voor afspeelapparaten met industriestandaard protocollen zoals MPEG-DASH, Apple HTTP Live Streaming (HLS) en Microsoft Smooth Streaming.

live codering streaming

Opties voor livegebeurtenissen

Dynamische versleuteling

Met dynamische versleuteling kunt u uw live- of on-demand inhoud dynamisch versleutelen met AES-128 of een van de drie belangrijkste DRM-systemen (Digital Rights Management): Microsoft PlayReady, Google Widevine en Apple FairPlay. Media Services biedt ook een service voor het leveren van AES-sleutels en DRM-licenties (PlayReady, Widevine en FairPlay) aan geautoriseerde klanten. Zie dynamische versleuteling voor meer informatie.

Widevine is een service van Google Inc. en is onderworpen aan de servicevoorwaarden en het privacybeleid van Google Inc.

Dynamisch filteren

Dynamisch filteren wordt gebruikt om het aantal nummers, indelingen, bitrates en presentatietijdvensters te bepalen die naar de spelers worden verzonden. Zie filters en dynamische manifesten voor meer informatie.

Live transcriptie

Livetranscriptie is een functie die u kunt gebruiken met livegebeurtenissen die ofwel passthrough of live codering zijn. Zie livetranscriptie voor meer informatie. Wanneer deze functie is ingeschakeld, gebruikt de service de functie Spraak-naar-tekst van Cognitive Services om de gesproken woorden in de binnenkomende audio in tekst te transcriberen. Deze tekst wordt vervolgens beschikbaar gesteld voor levering samen met video en audio in MPEG-DASH- en HLS-protocollen.

Belangrijk

Gebruik GOP-grootten van 2 seconden voor livegebeurtenissen. U moet GOP-grootten van 4 seconden of lager gebruiken voor passthrough-livegebeurtenissen met livetranscripties om de juiste transcriptiegegevens te verkrijgen. Als u ervoor kiest om een hogere GOP-grootte te gebruiken, kunnen de transcriptiegegevens defecten hebben, bijvoorbeeld ontbrekende inhoud.

Beveiligingsoverwegingen voor ondertiteling, ondertitels en levering van getimede metagegevens

De functies voor dynamische versleuteling en DRM van Azure Media Services hebben beperkingen waarmee u rekening moet houden bij het beveiligen van de levering van inhoud die livetranscripties, bijschriften, ondertitels of getimede metagegevens omvat. De DRM-subsystemen, waaronder PlayReady, FairPlay en Widevine, ondersteunen de versleuteling en licentieverlening van tekstsporen niet. Het ontbreken van DRM-versleuteling voor tekstsporen beperkt de mogelijkheid om de inhoud van livetranscripties, handmatig ingevoegde bijschriften, geüploade ondertitels of getimede metagegevenssignalen te beveiligen die als afzonderlijke nummers kunnen worden ingevoegd.

Volg deze richtlijnen om uw bijschriften, ondertitels of getimede metagegevenstracks te beveiligen:

  1. Gebruik AES-128 Sleutelversleuteling wissen. Wanneer U AES-128 clear key encryption inschakelt, kunnen de tekstsporen worden geconfigureerd om te worden versleuteld met behulp van een volledige envelopversleutelingstechniek die hetzelfde versleutelingspatroon volgt als de audio- en videosegmenten. Deze segmenten kunnen vervolgens worden ontsleuteld door een clienttoepassing nadat de ontsleutelingssleutel is aangevraagd bij de Media Services Key Delivery-service met behulp van een geverifieerd JWT-token. Deze methode wordt ondersteund door Azure Media Player, maar wordt mogelijk niet op alle apparaten ondersteund en kan enige ontwikkelwerkzaamheden aan de clientzijde vereisen om ervoor te zorgen dat deze op alle platforms slaagt.
  2. Gebruik CDN-tokenverificatie om de tekstsporen (ondertiteling, bijschriften, metagegevens) te beveiligen die worden geleverd met url's met tokenized korte formulieren die zijn beperkt tot geo, IP of andere configureerbare instellingen in de CDN-portal. Schakel de CDN-beveiligingsfuncties in met behulp van Verizon Premium CDN of andere CDN van derden die zijn geconfigureerd om verbinding te maken met uw Media Services-streaming-eindpunten.

Waarschuwing

Als u een van de bovenstaande richtlijnen niet volgt, zijn uw ondertitels, bijschriften of tekst met getimede metagegevens toegankelijk als niet-versleutelde inhoud die kan worden onderschept of gedeeld buiten het beoogde leveringspad van de client. Dit kan leiden tot gelekte informatie. Als u zich zorgen maakt over de inhoud van de bijschriften of ondertitels die worden gelekt in een veilig leveringsscenario, neemt u contact op met het ondersteuningsteam van Media Services voor meer informatie over de bovenstaande richtlijnen voor het beveiligen van de levering van uw inhoud.

Werkstroom voor live streamen

Als u de werkstroom voor live streamen in Media Services v3 wilt begrijpen, moet u eerst de volgende concepten bekijken en begrijpen:

Algemene stappen

  1. Controleer in uw Media Services-account of het streaming-eindpunt (origin) wordt uitgevoerd.

  2. Maak een livegebeurtenis.
    Bij het maken van de gebeurtenis kunt u opgeven dat deze automatisch wordt gestart. U kunt de gebeurtenis ook starten wanneer u klaar bent om te beginnen met streamen.
    Wanneer autostart is ingesteld op true, wordt de livegebeurtenis direct na het maken gestart. De facturering begint zodra de livegebeurtenis wordt uitgevoerd. U moet expliciet Stop aanroepen voor de livegebeurtenisresource om verdere facturering te stoppen. Zie statussen van livegebeurtenissen en facturering voor meer informatie.

  3. Haal de opname-URL('s) op en configureer uw on-premises encoder om de URL te gebruiken om de bijdragefeed te verzenden.
    Zie aanbevolen live coderingsprogramma's.

  4. Haal de preview-URL op en gebruik deze om te controleren of de invoer van de encoder daadwerkelijk wordt ontvangen.

  5. Maak een nieuw assetobject .

    Elke live-uitvoer is gekoppeld aan een asset, die wordt gebruikt om de video op te nemen in de bijbehorende Azure Blob Storage-container.

  6. Maak een live-uitvoer en gebruik de assetnaam die u hebt gemaakt, zodat de stream kan worden gearchiveerd in de asset.

    Live-uitvoer starten zodra ze zijn gemaakt en stoppen wanneer ze worden verwijderd. Wanneer u de live-uitvoer verwijdert, verwijdert u de onderliggende asset en inhoud in de asset niet.

  7. Maak een streaming-locator met de ingebouwde streamingbeleidstypen.

    Als u de live-uitvoer wilt publiceren, moet u een streaming-locator maken voor de gekoppelde asset.

  8. Vermeld de paden op de streaming-locator om de URL's terug te krijgen die moeten worden gebruikt (deze zijn deterministisch).

  9. Haal de hostnaam op voor het streaming-eindpunt (Origin) van waaruit u wilt streamen.

  10. Combineer de URL uit stap 8 met de hostnaam in stap 9 om de volledige URL op te halen.

  11. Als u wilt stoppen met het weergeven van uw livegebeurtenis , moet u stoppen met het streamen van de gebeurtenis en de streaming-locator verwijderen.

  12. Als u klaar bent met het streamen van gebeurtenissen en de resources wilt opruimen die eerder zijn ingericht, volgt u de volgende procedure.

    • Stop het pushen van de stream vanuit het coderingsprogramma.
    • Stop de livegebeurtenis. Zodra de livegebeurtenis is gestopt, worden er geen kosten in rekening gebracht. Als u het kanaal opnieuw wilt starten, wordt dezelfde URL voor opnemen gebruikt, zodat u het coderingsprogramma niet opnieuw hoeft te configureren.
    • U kunt uw streaming-eindpunt stoppen, tenzij u het archief van uw livegebeurtenis wilt blijven verstrekken als een stream op aanvraag. Als de livegebeurtenis is gestopt, worden er geen kosten in rekening gebracht. Als het streaming-eindpunt echter nog steeds wordt uitgevoerd, worden er kosten in rekening gebracht.

De asset waarnaar de live-uitvoer wordt gearchiveerd, wordt automatisch een asset op aanvraag wanneer de live-uitvoer wordt verwijderd. U moet alle live-uitvoer verwijderen voordat een livegebeurtenis kan worden gestopt. U kunt een optionele vlag removeOutputsOnStop gebruiken om live-uitvoer automatisch te verwijderen bij stoppen.

Tip

Zie de zelfstudie live streamen. In het artikel wordt de code onderzocht waarmee de hierboven beschreven stappen worden geïmplementeerd.

Andere belangrijke artikelen

Veelgestelde vragen over live streamen

Zie de vragen over live streamen in de veelgestelde vragen.

Help en ondersteuning

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