Liveuppspelning med Azure Media Services v3

Media Services-logotyp v3


Varning

Azure Media Services dras tillbaka den 30 juni 2024. Mer information finns i AMS-pensionsguiden.

Med Azure Media Services kan du leverera livehändelser till dina kunder i Azure-molnet. Om du vill strömma dina livehändelser med Media Services måste du konfigurera en livevideokodare som konverterar signaler från en kamera (eller en annan enhet, till exempel en bärbar dator) till ett bidragsflöde som skickas till Media Services. Bidragsflödet kan innehålla signaler relaterade till reklam, till exempel SCTE-35-markörer. En lista över rekommenderade kodare för liveuppspelning finns i liveuppspelningskodare.

Om du inte har använt en lokal kodare tidigare kan du prova snabbstarten Skapa en Azure Media Services-liveström med OBS .

Dynamisk paketering och leverans

Med Media Services kan du dra nytta av dynamisk paketering, vilket gör att du kan förhandsgranska och sända dina liveströmmar i MPEG DASH-, HLS- och Smooth Streaming-format från bidragsflödet . Dina tittare kan spela upp liveuppspelningen med alla HLS-, DASH- eller Smooth Streaming-kompatibla spelare. Se listan över testade spelare och prova mediatjänsternas spelarexempel från tredje part.

Typer av livehändelser

Livehändelser matas in och bearbeta livevideofeeds. En livehändelse kan anges till antingen:

  • direktströmning när en lokal livekodare skickar en dataström med flera bithastigheter, eller
  • livekodning när en lokal livekodare skickar en dataström med enkel bithastighet. Mer information om liveutdata finns i Livehändelser och liveutdata.

Direkt

När du använder direkt livehändelsen (grundläggande eller standard) förlitar du dig på din lokala livekodare för att generera en videoström med flera bithastigheter och skicka den som bidragsflöde till livehändelsen (med RTMP eller fragmenterat MP4-indataprotokoll). Livehändelsen skickar sedan den inkommande videoströmmen till den dynamiska paketeraren (slutpunkt för direktuppspelning) utan ytterligare bearbetning. En livehändelse med direktströmning är optimerad för långvariga livehändelser eller linjär liveuppspelning dygnet efter.

passera genom direktuppspelning

Live Encoding

Om du vill använda livekodning konfigurerar du din lokala livekodare för att skicka en video med enkel bithastighet (upp till 32 Mbit/s-aggregat) till livehändelsen (med RTMP eller fragmenterat MP4-indataprotokoll). Livehändelsen omkodar inkommande dataström med enkel bithastighet till videoströmmar med flera bithastigheter med olika upplösningar. Detta förbättrar leveransen för uppspelningsenheter med branschstandardprotokoll som MPEG-DASH, Apple HTTP Live Streaming (HLS) och Microsoft Smooth Streaming.

livekodningsströmning

Alternativ för livehändelse

Dynamisk kryptering

Med dynamisk kryptering kan du dynamiskt kryptera ditt live- eller på begäran-innehåll med AES-128 eller något av de tre stora DRM-systemen (Digital Rights Management): Microsoft PlayReady, Google Widevine och Apple FairPlay. Media Services tillhandahåller också en tjänst för att leverera AES-nycklar och DRM-licenser (PlayReady, Widevine och FairPlay) till auktoriserade klienter. Mer information finns i dynamisk kryptering.

Widevine är en tjänst som tillhandahålls av Google Inc. och omfattas av användarvillkoren och sekretesspolicyn för Google, Inc.

Dynamisk filtrering

Dynamisk filtrering används för att styra antalet spår, format, bithastigheter och presentationstidsfönster som skickas ut till spelarna. Mer information finns i filter och dynamiska manifest.

Live transkription

Live-transkription är en funktion som du kan använda med livehändelser som antingen är direkt eller livekodning. Mer information finns i live-transkription. När den här funktionen är aktiverad använder tjänsten funktionen Tal till text i Cognitive Services för att transkribera talade ord i det inkommande ljudet till text. Den här texten görs sedan tillgänglig för leverans tillsammans med video och ljud i MPEG-DASH- och HLS-protokoll.

Viktigt

Du bör använda GOP-storlekar på 2 sekunder för livehändelser. Du måste använda GOP-storlekar på 4 sekunder eller lägre för direktsändningar med live-transkriptioner för att få rätt transkriptionsdata. Om du väljer att använda en högre GOP-storlek kan transkriptionsdata ha defekter, t.ex. innehåll som saknas.

Säkerhetsöverväganden för undertexter, undertexter och tidsbaserad metadataleverans

Den dynamiska krypteringen och DRM-funktionerna i Azure Media Services har gränser att tänka på när du försöker skydda innehållsleverans som innehåller live-transkriptioner, undertexter, undertexter eller tidsbaserade metadata. DRM-undersystemen, inklusive PlayReady, FairPlay och Widevine, stöder inte kryptering och licensiering av textspår. Bristen på DRM-kryptering för textspår begränsar din möjlighet att skydda innehållet i live-transkriptioner, manuella infogade undertexter, uppladdade undertexter eller timed-metadata-signaler som kan infogas som separata spår.

Följ dessa riktlinjer för att skydda undertexter, undertexter eller tidsbaserade metadataspår:

  1. Använd AES-128 Clear Key-kryptering. När du aktiverar AES-128 clear key-kryptering kan textspåren konfigureras att krypteras med hjälp av en fullständig krypteringsteknik för "kuvert" som följer samma krypteringsmönster som ljud- och videosegmenten. Dessa segment kan sedan dekrypteras av ett klientprogram efter att ha begärt dekrypteringsnyckeln från Media Services-nyckelleveranstjänsten med hjälp av en autentiserad JWT-token. Den här metoden stöds av Azure Media Player, men stöds kanske inte på alla enheter och kan kräva vissa utvecklingsarbete på klientsidan för att säkerställa att den lyckas på alla plattformar.
  2. Använd CDN-tokenautentisering för att skydda textspåren (undertexter, metadata) som levereras med tokeniserade URL:er med korta formulär som är begränsade till geo-, IP- eller andra konfigurerbara inställningar i CDN-portalen. Aktivera CDN-säkerhetsfunktionerna med Verizon Premium CDN eller andra CDN från tredje part som konfigurerats för att ansluta till dina Media Services-slutpunkter för direktuppspelning.

Varning

Om du inte följer någon av riktlinjerna ovan kommer dina undertexter, bildtexter eller tidsanpassade metadatatexter att vara tillgängliga som okrypterat innehåll som kan fångas upp eller delas utanför din avsedda klientleveransväg. Detta kan resultera i läckt information. Om du är orolig för innehållet i de undertexter som läcker ut i ett säkert leveransscenario kan du kontakta Media Services-supportteamet för mer information om ovanstående riktlinjer för att skydda din innehållsleverans.

Arbetsflöde för liveuppspelning

För att förstå arbetsflödet för liveuppspelning i Media Services v3 måste du först granska och förstå följande begrepp:

Allmänna steg

  1. Kontrollera att slutpunkten för direktuppspelning (ursprung) körs på ditt Media Services-konto.

  2. Skapa en livehändelse.
    När du skapar händelsen kan du ange att den ska startas automatiskt. Du kan också starta händelsen när du är redo att starta strömning.
    När autostarten är inställd på true startas livehändelsen direkt efter att den har skapats. Faktureringen startar så snart livehändelsen börjar köras. Du måste uttryckligen anropa Stoppa på livehändelseresursen för att stoppa ytterligare fakturering. Mer information finns i status och fakturering för livehändelser.

  3. Hämta inmatnings-URL:erna och konfigurera din lokala kodare så att den använder URL:en för att skicka bidragsflödet.
    Se rekommenderade livekodare.

  4. Hämta förhandsgransknings-URL:en och använd den för att kontrollera att indata från kodaren faktiskt tas emot.

  5. Skapa ett nytt tillgångsobjekt .

    Varje liveutdata är associerad med en tillgång, som används för att spela in videon i den associerade Azure Blob Storage-containern.

  6. Skapa liveutdata och använd tillgångsnamnet som du skapade så att strömmen kan arkiveras i tillgången.

    Liveutdata startar när de skapas och avbryts när de tas bort. När du tar bort liveutdata tar du inte bort den underliggande tillgången och innehållet i tillgången.

  7. Skapa en positionerare för direktuppspelning med de inbyggda strömningsprinciptyperna.

    Om du vill publicera liveutdata måste du skapa en positionerare för direktuppspelning för den associerade tillgången.

  8. Visa en lista över sökvägarna i positioneraren för direktuppspelning för att få tillbaka url:erna som ska användas (dessa är deterministiska).

  9. Hämta värdnamnet för den slutpunkt för direktuppspelning (Origin) som du vill strömma från.

  10. Kombinera URL:en från steg 8 med värdnamnet i steg 9 för att hämta den fullständiga URL:en.

  11. Om du vill sluta visa livehändelsen måste du sluta strömma händelsen och ta bort positioneraren för direktuppspelning.

  12. Följ stegen nedan om du är klar med strömningen av händelser och vill rensa de resurser som etablerades tidigare.

    • Stoppa sändningen av dataströmmen från kodaren.
    • Stoppa livehändelsen. När livehändelsen har stoppats medför den inga avgifter. När du vill starta den igen har den samma infognings-URL så att du inte behöver konfigurera om din kodare.
    • Du kan stoppa slutpunkten för direktuppspelning om du inte vill fortsätta att tillhandahålla arkivet för livehändelsen som en ström på begäran. Om livehändelsen är i stoppat tillstånd medför den inga avgifter. Men om slutpunkten för direktuppspelning fortfarande körs debiteras den.

Den tillgång som liveutdata arkiveras till blir automatiskt en tillgång på begäran när liveutdata tas bort. Du måste ta bort alla liveutdata innan en livehändelse kan stoppas. Du kan använda en valfri flagga removeOutputsOnStop för att automatiskt ta bort liveutdata vid stopp.

Tips

I självstudien om liveuppspelning undersöker artikeln koden som implementerar stegen som beskrivs ovan.

Andra viktiga artiklar

Vanliga frågor och svar om liveuppspelning

Se frågorna om liveuppspelning i vanliga frågor och svar.

Få hjälp och support

Du kan kontakta Media Services med frågor eller följa våra uppdateringar med någon av följande metoder: