Kódování s vlastní transformací – REST
hledáte dokumentaci k Media Services v2?
Při kódování pomocí Azure Media Services můžete rychle začít s jednou z doporučených předdefinovaných předvoleb na základě osvědčených oborových postupů, jak je znázorněno v kurzu Streamování souborů. Můžete také vytvořit vlastní předvolbu, která bude cílit na konkrétní scénář nebo požadavky na zařízení.
Upozornění
nedoporučuje se zabalit REST API pro Media Services přímo do vlastního kódu knihovny, jak to tak bude mít za následek to, že by to pro produkční účely vyžadovalo implementaci úplné logiky opakování správy prostředků azure a pochopte, jak spravovat dlouhodobě běžící operace v rozhraních api pro správu prostředků azure. To zpracovává klientské sady SDK pro různé jazyky – .NET, Java, TypeScript, Python, Ruby atd. – pro vás automaticky a omezení pravděpodobnosti potíží s rety logikou nebo neúspěšnými voláními rozhraní API. Klientské sady SDK to zvládnou už za vás. Kolekce post je poskytována více jako učebnní nástroj a ukazuje, co se ve skutečnosti klientské sady SDK skutečně dělají při vývoji s různými klientskými SDK.
Požadavky
Při vytváření vlastních předvoleb platí následující aspekty:
- Všechny hodnoty height a width v obsahu AVC musí být násobky 4.
- V Azure Media Services v3 jsou všechny přenosové rychlosti kódování v bitech za sekundu. To se liší od předvoleb našich rozhraní API v2, která jako jednotku používala kilobity za sekundu. Pokud by například přenosová rychlost ve verzi v2 byla zadána jako 128 (kilobitů za sekundu), ve verzi 3 by byla nastavena na 12 8000 (bitů za sekundu).
Požadavky
- Vytvořte Media Services účet .
Nezapomeňte si zapamatovat název skupiny prostředků a název Media Services účtu. - Nakonfigurujte nástroj Postman pro Azure Media Services REST API volání .
Nezapomeňte provést poslední krok v tématu Získání tokenu Azure AD.
Definování vlastní předvolby
Následující příklad definuje text požadavku nové transformace. Definujeme sadu výstupů, které chceme vygenerovat při použití této transformace.
V tomto příkladu nejprve přidáme vrstvu AacAudio pro kódování zvuku a dvě vrstvy H264Video pro kódování videa. Ve vrstvách videa přiřadíme popisky, aby je bylo možné použít v názvech výstupních souborů. Dále chceme, aby výstup zahrnoval také miniatury. V následujícím příkladu určíme obrázky ve formátu PNG, které se generují při 50 % rozlišení vstupního videa a se třemi časovými razítky – {25 %, 50 %, 75} délky vstupního videa. Nakonec určíme formát pro výstupní soubory – jeden pro video + zvuk a druhý pro miniatury. Vzhledem k tomu, že máme více vrstev H264Layer, musíme použít makra, která vytvářejí jedinečné názvy pro každou vrstvu. Můžeme použít buď makro {Label} nebo , příklad ukazuje {Bitrate} první.
{
"properties": {
"description": "Basic Transform using a custom encoding preset",
"outputs": [
{
"onError": "StopProcessingJob",
"relativePriority": "Normal",
"preset": {
"@odata.type": "#Microsoft.Media.StandardEncoderPreset",
"codecs": [
{
"@odata.type": "#Microsoft.Media.AacAudio",
"channels": 2,
"samplingRate": 48000,
"bitrate": 128000,
"profile": "AacLc"
},
{
"@odata.type": "#Microsoft.Media.H264Video",
"keyFrameInterval": "PT2S",
"stretchMode": "AutoSize",
"sceneChangeDetection": false,
"complexity": "Balanced",
"layers": [
{
"width": "1280",
"height": "720",
"label": "HD",
"bitrate": 3400000,
"maxBitrate": 3400000,
"bFrames": 3,
"slices": 0,
"adaptiveBFrame": true,
"profile": "Auto",
"level": "auto",
"bufferWindow": "PT5S",
"referenceFrames": 3,
"entropyMode": "Cabac"
},
{
"width": "640",
"height": "360",
"label": "SD",
"bitrate": 1000000,
"maxBitrate": 1000000,
"bFrames": 3,
"slices": 0,
"adaptiveBFrame": true,
"profile": "Auto",
"level": "auto",
"bufferWindow": "PT5S",
"referenceFrames": 3,
"entropyMode": "Cabac"
}
]
},
{
"@odata.type": "#Microsoft.Media.PngImage",
"stretchMode": "AutoSize",
"start": "25%",
"step": "25%",
"range": "80%",
"layers": [
{
"width": "50%",
"height": "50%"
}
]
}
],
"formats": [
{
"@odata.type": "#Microsoft.Media.Mp4Format",
"filenamePattern": "Video-{Basename}-{Label}-{Bitrate}{Extension}",
"outputFiles": []
},
{
"@odata.type": "#Microsoft.Media.PngFormat",
"filenamePattern": "Thumbnail-{Basename}-{Index}{Extension}"
}
]
}
}
]
}
}
Vytvoření nové transformace
V tomto příkladu vytvoříme transformaci založenou na vlastní předvolbě, kterou jsme definovali dříve. Při vytváření transformace byste měli nejprve pomocí funkce Get zkontrolovat, jestli už existuje. Pokud transformace existuje, použijte ji znovu.
V kolekci Postman, kterou jste stáhli, vyberte Transforms and Jobs Create or Update Transform (Transformace a úlohy -> – vytvoření nebo aktualizace transformace).
Metoda požadavku PUT HTTP je podobná této:
PUT https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/transforms/:transformName?api-version={{api-version}}
Vyberte kartu Text a nahraďte text kódem JSON, který jste definovali dříve. Pokud Media Services transformovat na zadané video nebo zvuk, musíte v rámci této transformace odeslat úlohu.
Vyberte Odeslat.
Pokud Media Services transformovat na zadané video nebo zvuk, musíte v rámci této transformace odeslat úlohu. Kompletní příklad odeslání úlohy v transformaci najdete v tématu Kurz: Streamování videosouborů – REST.
Další kroky
Zobrazit další operace REST