Livegebeurtenissen en live-uitvoer in Media Services
Zoekt u Media Services v2-documentatie?
Azure Media Services kunt u livegebeurtenissen leveren aan uw klanten in de Azure-cloud. Als u uw live streaminggebeurtenissen in Media Services v3 wilt instellen, moet u de concepten begrijpen die in dit artikel worden besproken.
Tip
Voor klanten die migreren van Media Services v2-API's, vervangt de entiteit voor livegebeurtenissen Channel in v2 en vervangt live-uitvoer programma.
Livegebeurtenissen
Livegebeurtenissen zijn verantwoordelijk voor het opnemen en verwerken van de live videofeeds. Wanneer u een livegebeurtenis maakt, wordt er een primair en secundair invoereindpunt gemaakt dat u kunt gebruiken om een livesignaal te verzenden vanaf een externe encoder. De externe live-encoder verzendt de bijdragefeed naar dat invoer-eindpunt met behulp van het rtmp- of Smooth Streaming-invoerprotocol (gefragmenteerd MP4). Voor het RTMP-opnameprotocol kan de inhoud worden verzonden in de clear ( ) of veilig worden rtmp:// versleuteld op de kabel( rtmps:// ). Voor het Smooth Streaming opnameprotocol zijn de ondersteunde URL-schema's http:// of https:// .
Typen livegebeurtenissen
Een livegebeurtenis kan worden ingesteld op een eenvoudige of standaard pass-through (een on-premises live-encoder verzendt een stream met meerdere bitrates) of live codering (een on-premises live-encoder verzendt een stream met één bitrate). De typen worden ingesteld tijdens het maken met liveEventEncodingType:
- LiveEventEncodingType.PassthroughBasic: een on-premises live-encoder verzendt een stream met meerdere bitrates. De eenvoudige pass-through is beperkt tot een piek ingress van 5 Mbps, een DVR-venster van 8 uur en livetranscriptie wordt niet ondersteund.
- LiveEventEncodingType.PassthroughStandard: een on-premises live-encoder verzendt een stream met meerdere bitrates. De standaardpass through heeft hogere opnamelimieten, een DVR-venster van 25 uur en ondersteuning voor livetranscripties.
- LiveEventEncodingType.Standard: een on-premises live-encoder verzendt een single-bitrate stream naar de livegebeurtenis en Media Services meerdere bitrate streams maakt. Als de bijdragefeed een resolutie van 720p of hoger heeft, codeert de default720p-voorinstelling een set paren met 6 resoluties/bitrates.
- LiveEventEncodingType.Premium1080p: een on-premises live-encoder verzendt een single bitrate stream naar de livegebeurtenis en Media Services meerdere bitrate streams maakt. Met de standaardinstelling Default1080p wordt de uitvoerset met resolution/bitrates-paren opgegeven.
Pass-through
Wanneer u de eenvoudige of standaard pass-through-livegebeurtenis 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 het gefragmenteerde MP4-protocol). De livegebeurtenis voert vervolgens zonder verdere verwerking de binnenkomende videostreams uit. Een dergelijke pass-through livegebeurtenis is geoptimaliseerd voor langlopende livegebeurtenissen of 24x365 lineair live streamen. Geef bij het maken van dit type livegebeurtenis pass-through 'basic' of 'standard' op. (LiveEventEncodingType.PassThroughStandard).
U kunt de bijdragefeed verzenden bij resoluties tot 4K en met een framesnelheid van 60 frames per seconde, met videocodecs voor H.264/AVC of H.265/HEVC (alleen smooth ingest) en AAC-codecs (AAC-LC, HE-AACv1 of HE-AACv2). Zie Vergelijking van typen livegebeurtenissen voor meer informatie.
Notitie
Het gebruik van een pass-through-methode is de voordeligste manier om live te streamen wanneer u meerdere gebeurtenissen gedurende een lange periode doet en u al hebt geïnvesteerd in on-premises coderingen. Zie Prijsdetails.
Zie het .NET-codevoorbeeld voor het maken van een pass-through livegebeurtenis in livegebeurtenis met DVR.
Live Encoding
Wanneer u live codering met Media Services gebruikt, configureert u uw on-premises live-encoder voor het verzenden van één bitrate video als bijdragefeed voor de livegebeurtenis (met behulp van RTMP of Fragmented-Mp4-protocol). Vervolgens stelt u een livegebeurtenis in, zodat deze de binnenkomende single-bitratestream codeert naar een videostream met meerdere bitrates en de uitvoer beschikbaar maakt voor levering om apparaten af te spelen via protocollen zoals MPEG-DASH, HLS en Smooth Streaming.
Wanneer u live codering gebruikt, kunt u de bijdragefeed alleen verzenden bij resoluties tot 1080p resolutie met een framesnelheid van 30 frames per seconde, met H.264/AVC-videocodec en AAC (AAC-LC, HE-AACv1 of HE-AACv2) audiocodec. Houd er rekening mee dat pass-through livegebeurtenissen oplossingen van maximaal 4.000 tot 60.000 frames per seconde kunnen ondersteunen. Zie Vergelijking van typen livegebeurtenissen voor meer informatie.
De resoluties en bitrates in de uitvoer van de live-encoder worden bepaald door de vooraf ingestelde. Als u een Standaard live-encoder (LiveEventEncodingType.Standard) gebruikt, geeft de standaardinstelling Default720p een set van zes resolutie/bit-snelheidsparen op, van 720p bij 3,5 Mbps omlaag naar 192p bij 200 kbps. Als u een live-encoder van Premium1080p (LiveEventEncodingType.Premium1080p) gebruikt, geeft de standaardinstelling Default1080p een set van zes resolutie/bit-snelheidsparen op, van 1080p bij 3,5 Mbps naar 180p bij 200 kbps. Zie Systeemwaarden voor meer informatie.
Notitie
Als u de vooraf ingestelde live codering moet aanpassen, opent u een ondersteuningsticket via Azure Portal. Geef de gewenste tabel met resolutie en bitrates op. Controleer of er slechts één laag is op 720p (als u een voorinstelling voor een Live Standard-encoder aanvraagt) of op 1080p (als u een voorinstelling voor een live-encoder van Premium1080p aanvraagt) en 6 lagen.
Livegebeurtenissen maken
Opties
Wanneer u een livegebeurtenis maakt, kunt u de volgende opties opgeven:
- U kunt de livegebeurtenis een naam en een beschrijving geven.
- Cloudcoderen omvat Pass-through (geen cloudcoderen), Standard (maximaal 720p) of Premium (tot 1080p). Voor Standard en Premium codering kunt u de stretch-modus van de gecodeerde video kiezen.
- Geen: respecteert strikt de uitvoerresolutie die is opgegeven in de vooraf ingestelde codering zonder rekening te houden met de pixel-aspectverhouding of weergave-breedteverhouding van de invoervideo.
- AutoSize: overschrijven de uitvoerresolutie en wijzigt deze zo dat deze overeenkomen met de weergave-aspectverhouding van de invoer, zonder opvulling. Als de invoer bijvoorbeeld 1920x1080 is en de voorinstelling voor codering vraagt om 1280x1280, wordt de waarde in de voorinstelling overschrijven en wordt de uitvoer op 1280x720, waarbij de verhouding van het invoeraspect van 16:9 wordt behouden.
- AutoFit: pads de uitvoer (met letterbox of pijlervak) om te houden aan de uitvoerresolutie, terwijl ervoor wordt gezorgd dat de actieve videoregio in de uitvoer dezelfde hoogte-breedteverhouding heeft als de invoer. Als de invoer bijvoorbeeld 1920x1080 is en de coderingsvoorinstelling vraagt om 1280x1280, dan is de uitvoer 1280x1280, die een binnenste rechthoek van 1280x720 bevat met een aspectverhouding van 16:9, met regio's voor de pijlervak 280 pixels breed aan de linkerkant en rechts.
- Streamingprotocol (momenteel worden de RTMP- en Smooth Streaming-protocollen ondersteund). U kunt de protocoloptie niet wijzigen terwijl de livegebeurtenis of de bijbehorende live-uitvoer wordt uitgevoerd. Als u verschillende protocollen nodig hebt, maakt u een afzonderlijke livegebeurtenis voor elk streamingprotocol.
- Invoer-id die een wereldwijd unieke id is voor de invoerstroom van de livegebeurtenis.
- Statisch hostnaam voorvoegsel dat geen bevat (in dat geval een willekeurige 128-bits hextische tekenreeks wordt gebruikt), Naam van livegebeurtenis gebruiken of Aangepaste naam gebruiken. Wanneer u ervoor kiest om een klantnaam te gebruiken, is deze waarde het voorvoegsel Aangepaste hostnaam.
- U kunt de end-to-endlatentie tussen de live-uitzending en het afspelen verminderen door het interval voor het invoersleutelframe in te stellen( dit is de duur (in seconden) van elk mediasegment in de HLS-uitvoer. De waarde moet een geheel getal zijn dat niet nul is in het bereik van 0,5 tot 20 seconden. De waarde wordt standaard ingesteld op 2 seconden als geen van de invoer- of uitvoersleutelframeintervallen zijn ingesteld. Het interval voor sleutelframes is alleen toegestaan voor pass-through-gebeurtenissen.
- Wanneer u de gebeurtenis maakt, kunt u deze instellen op autostart. Wanneer autostart is ingesteld op true, wordt de livegebeurtenis gestart nadat deze is gemaakt. De facturering begint zodra de livegebeurtenis wordt uitgevoerd. U moet expliciet Stoppen aanroepen voor de resource van de livegebeurtenis om verdere facturering te stoppen. U kunt de gebeurtenis ook starten wanneer u klaar bent om te streamen.
Notitie
De maximale framesnelheid is 30 fps voor zowel Standard- als Premium coderen.
StandBy-modus
Wanneer u een livegebeurtenis maakt, kunt u deze instellen op stand-bymodus. Terwijl de gebeurtenis zich in de stand-bymodus, kunt u de beschrijving, het statische hostnaam voorvoegsel en de toegangsinstellingen voor invoer en preview beperken. De StandBy-modus is nog steeds een factureerbare modus, maar heeft een andere prijs dan wanneer u een livestream start.
Zie Livegebeurtenissen en facturering voor meer informatie.
IP-beperkingen voor de opname en voorbeeldweergave. U kunt de IP-adressen definiëren die een video mogen opnemen in deze livegebeurtenis. Toegestane IP-adressen kunnen worden opgegeven als één IP-adres (bijvoorbeeld 10.0.0.1), een IP-adresbereik met een IP-adres en een CIDR-subnetmasker (bijvoorbeeld 10.0.0.1/22) of een IP-adresbereik met een IP-adres en een decimaal subnetmasker met punten (bijvoorbeeld , ' 10.0.0.1(255.255.252.0)').
Als geen IP-adressen zijn opgegeven en er geen regeldefinitie bestaat, zijn er geen IP-adressen toegestaan. Als u IP-adres(sen) wilt toestaan, maakt u een regel en stelt u 0.0.0.0/0 in.
De IP-adressen moeten een van de volgende indelingen hebben: IpV4-adres met 4 cijfers of een CIDR-adresbereik.
Als u bepaalde IP-adressen in uw eigen firewalls wilt inschakelen of invoer voor uw livegebeurtenissen wilt beperken tot Azure IP-adressen, downloadt u een JSON-bestand uit IP-adresbereiken van Azure Datacenter. Selecteer de sectie Details op de pagina voor meer informatie over dit bestand.Wanneer u de gebeurtenis maakt, kunt u ervoor kiezen om livetranscripties in te zetten. Livetranscriptie is standaard uitgeschakeld. Lees Livetranscriptie voor meer informatie over livetranscriptie.
Naamgevingsregels
- De maximale naam van de livegebeurtenis is 32 tekens.
- De naam moet dit regex-patroon volgen:
^[a-zA-Z0-9]+(-*[a-zA-Z0-9])*$.
Zie ook Naamconvents voor streaming-eindpunten.
Tip
Om de uniekheid van de naam van uw livegebeurtenis te garanderen, kunt u een GUID genereren en vervolgens alle afbreekstreeken en haakjes (indien aanwezig) verwijderen. De tekenreeks is uniek voor alle livegebeurtenissen en de lengte ervan is gegarandeerd 32.
URL's voor opname van livegebeurtenissen
Zodra de livegebeurtenis is gemaakt, kunt u URL's voor opnemen krijgen die u aan de live on-premises encoder levert. De live-encoder gebruikt deze URL's voor het invoeren van een live-stream. Zie Aanbevolen on-premises live coderingen voor meer informatie.
Notitie
Vanaf de API-release van 2020-05-01 worden 'vanity'-URL's statische hostnamen genoemd (useStaticHostname: true)
Notitie
Als u wilt dat een opname-URL statisch en voorspelbaar is voor gebruik in een hardware-encoder-installatie, stelt u de eigenschap useStaticHostname in op true en stelt u bij elke aanmaak de eigenschap accessToken in op dezelfde GUID.
Voorbeeld van een LiveEvent- en LiveEventInput-configuratie-instellingen voor een statische (niet-willekeurige) opname-RTMP-URL.
LiveEvent liveEvent = new LiveEvent(
location: mediaService.Location,
description: "Sample LiveEvent from .NET SDK sample",
// Set useStaticHostname to true to make the ingest and preview URL host name the same.
// This can slow things down a bit.
useStaticHostname: true,
// 1) Set up the input settings for the Live event...
input: new LiveEventInput(
streamingProtocol: LiveEventInputProtocol.RTMP, // options are RTMP or Smooth Streaming ingest format.
// This sets a static access token for use on the ingest path.
// Combining this with useStaticHostname:true will give you the same ingest URL on every creation.
// This is helpful when you only want to enter the URL into a single encoder one time for this Live Event name
accessToken: "acf7b6ef-8a37-425f-b8fc-51c2d6a5a86a", // Use this value when you want to make sure the ingest URL is static and always the same. If omitted, the service will generate a random GUID value.
accessControl: liveEventInputAccess, // controls the IP restriction for the source encoder.
keyFrameIntervalDuration: "PT2S" // Set this to match the ingest encoder's settings
),
Niet-statische hostnaam
Een niet-statische hostnaam is de standaardmodus in Media Services v3 bij het maken van een LiveEvent. U kunt de livegebeurtenis iets sneller toewijzen, maar de opname-URL die u nodig hebt voor uw live coderingshardware of -software wordt gerandomiseerd. De URL wordt gewijzigd als u de livegebeurtenis stopt/start. Niet-statische hostnamen zijn alleen nuttig in scenario's waarin een eindgebruiker wil streamen met behulp van een app die zeer snel een livegebeurtenis moet krijgen en een dynamische opname-URL geen probleem is.
Als een client-app geen opname-URL vooraf hoeft te genereren voordat de livegebeurtenis wordt gemaakt, Media Services het toegangsken voor de livegebeurtenis automatisch genereren.
Statische hostnamen
De statische hostnaammodus heeft de voorkeur van de meeste operators die hun live coderingshardware of -software vooraf willen configureren met een RTMP-opname-URL die nooit verandert bij het maken of stoppen/starten van een specifieke livegebeurtenis. Deze operators willen een voorspellende RTMP-opname-URL die na een periode niet verandert. Dit is ook zeer nuttig wanneer u een statische RTMP-opname-URL naar de configuratie-instellingen van een hardware-coderingsapparaat wilt pushen, zoals de BlackMagic Atem Mini Pro of vergelijkbare hulpprogramma's voor hardwarecoderen en productie.
Notitie
In de Azure Portal wordt de statische hostnaam-URL 'Statisch hostnaam voorvoegsel' genoemd.
Als u deze modus in de API wilt opgeven, stelt u in
useStaticHostNameop tijdens het makentrue(standaard isfalse). Wanneer is ingesteld op true, geeft de het eerste deel van de hostnaam op die is toegewezen aan deuseStaticHostnamehostnamePrefixlivegebeurtenisvoorbeeld en opname-eindpunten. De uiteindelijke hostnaam is een combinatie van dit voorvoegsel, de naam van het mediaserviceaccount en een korte code voor Azure Media Services datacentrum.Om een willekeurig token in de URL te voorkomen, moet u ook uw eigen toegangs token () doorgeven
LiveEventInput.accessTokentijdens het maken. Het toegangs token moet een geldige GUID-tekenreeks zijn (met of zonder de afbreekstreetes). Zodra de modus is ingesteld, kan deze niet meer worden bijgewerkt.Het toegangs token moet uniek zijn in uw Azure-regio en Media Services account. Als uw app gebruik moet maken van een statische URL voor de opname van hostnamen, is het raadzaam om altijd een nieuwe GUID-instantie te maken voor gebruik met een specifieke combinatie van regio, Media Services-account en livegebeurtenis.
Gebruik de volgende API's om de URL van de statische hostnaam in te stellen en stel het toegangsken in op een geldige GUID (bijvoorbeeld
"accessToken": "1fce2e4b-fb15-4718-8adc-68c6eb4c26a7").Taal Statische hostnaam-URL inschakelen Toegangstoken instellen REST properties.useStaticHostname LiveEventInput.useStaticHostname CLI --use-static-hostname --access-token .NET LiveEvent.useStaticHostname LiveEventInput.AccessToken
Naamgevingsregels voor LIVE-opname-URL's
- De willekeurige tekenreeks hieronder is een 128-bits hexadecimaal getal (bestaande uit 32 tekens, van 0-9 en a-f).
- uw toegangs token: de geldige GUID-tekenreeks die u hebt ingesteld bij het gebruik van de instelling voor de statische hostnaam. Bijvoorbeeld
"1fce2e4b-fb15-4718-8adc-68c6eb4c26a7". - streamnaam: hiermee wordt de naam van de stream voor een specifieke verbinding aangegeven. De waarde van de streamnaam wordt meestal toegevoegd door de live-encoder die u gebruikt. U kunt de live-encoder configureren voor het gebruik van een naam om de verbinding te beschrijven, bijvoorbeeld : 'video1_audio1', 'video2_audio1', 'stream'.
Opname-URL voor niet-statische hostnaam
RTMP
rtmp://<random 128bit hex string>.channel.media.azure.net:1935/live/<auto-generated access token>/<stream name>
rtmp://<random 128bit hex string>.channel.media.azure.net:1936/live/<auto-generated access token>/<stream name>
rtmps://<random 128bit hex string>.channel.media.azure.net:2935/live/<auto-generated access token>/<stream name>
rtmps://<random 128bit hex string>.channel.media.azure.net:2936/live/<auto-generated access token>/<stream name>
Smooth Streaming
http://<random 128bit hex string>.channel.media.azure.net/<auto-generated access token>/ingest.isml/streams(<stream name>)
https://<random 128bit hex string>.channel.media.azure.net/<auto-generated access token>/ingest.isml/streams(<stream name>)
Opname-URL voor statische hostnaam
In de volgende paden betekent ofwel de naam die is opgegeven voor de gebeurtenis of de aangepaste naam die wordt gebruikt <live-event-name> bij het maken van de livegebeurtenis.
RTMP
rtmp://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net:1935/live/<your access token>/<stream name>
rtmp://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net:1936/live/<your access token>/<stream name>
rtmps://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net:2935/live/<your access token>/<stream name>
rtmps://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net:2936/live/<your access token>/<stream name>
Smooth Streaming
http://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net/<your access token>/ingest.isml/streams(<stream name>)
https://<live event name>-<ams account name>-<region abbrev name>.channel.media.azure.net/<your access token>/ingest.isml/streams(<stream name>)
PREVIEW-URL voor livegebeurtenissen
Zodra de livegebeurtenis de bijdragefeed ontvangt, kunt u het preview-eindpunt gebruiken om een voorbeeld te bekijken en te valideren dat u de livestream ontvangt voordat u verder publiceert. Nadat u hebt gecontroleerd of de preview-stream goed is, kunt u de livegebeurtenis gebruiken om de livestream beschikbaar te maken voor levering via een of meer (vooraf gemaakte) streaming-eindpunten. Maak hiervoor een nieuwe live-uitvoer op de livegebeurtenis.
Belangrijk
Zorg ervoor dat de video naar de preview-URL stroomt voordat u doorgaat.
Langdurige livegebeurtenisbewerkingen
Zie Langlopende bewerkingen voor meer informatie.
Live-uitvoer
Zodra de stream naar de livegebeurtenis stroomt, kunt u de streaminggebeurtenis starten door een asset, liveuitvoer en streaming-locator te maken. Met live-uitvoer wordt de stream gearchiveerd en beschikbaar gesteld voor kijkers via het streaming-eindpunt.
De standaardtoewijzing van AMS is 5 livegebeurtenissen per Media Services account. Als u deze limiet wilt verhogen, kunt u een ondersteuningsticket indienen in de Azure Portal. AMS kan uw limiet voor livegebeurtenissen verhogen, afhankelijk van uw streaming-situatie en de beschikbaarheid van regionale datacenters.
Zie Using a cloud DVR (Een cloud-DVR gebruiken) voor gedetailleerde informatie over live-uitvoer.
Vragen over uitvoer van livegebeurtenissen
Zie de vragen over livegebeurtenissen in de veelgestelde vragen. Zie quota en limieten voor informatie over quota voor livegebeurtenissen