Kurz: použití analyzátoru videa pro rozhraní API pro multimédia
Azure video Analyzer pro média (dříve Video Indexer) slučuje různé technologie pro audio a video umělal Intelligence (AI), které Microsoft nabízí, do jedné integrované služby, která usnadňuje vývoj. Rozhraní API jsou navržená tak, aby umožňovala vývojářům soustředit se na využívání technologií Media AI, aniž by se museli starat o škálování, globální dosah, dostupnost a spolehlivost cloudových platforem. Rozhraní API můžete použít k nahrání souborů, získání podrobných informací o videích, získání adres URL pro vložené widgety a pomůcky pro vkládání a další informace.
Když vytváříte účet pro analýzu videa pro Media, můžete si vybrat bezplatný zkušební účet (kde získáte určitý počet volných minut k indexování) nebo možnost platby (kde nejste omezeni kvótou). Pomocí bezplatné zkušební verze poskytuje analyzátor videa pro média až 600 minut bezplatného indexování uživatelům webu a až 2400 minut bezplatného indexování na uživatele rozhraní API. pomocí placené možnosti vytvoříte nástroj Video Analyzer pro účet médií, který je připojený k vašemu předplatnému Azure a účet Azure Media Services. platíte za minuty, další informace najdete v tématu Media Services ceny.
V tomto článku se dozvíte, jak můžou vývojáři využít výhod nástroje video Analyzer pro rozhraní API pro multimédia.
Přihlášení k odběru rozhraní API
Přihlaste se ke službě video Analyzer portál pro vývojáře médií.
Přečtěte si poznámku k verzi týkající se přihlašovacích informací.

Důležité
- Musíte použít stejného poskytovatele, kterého jste použili při registraci ke službě Video Analyzer pro média.
- osobní účty Google a Microsoft (Outlook/Live) se dají používat jenom pro zkušební účty. Účty připojené k Azure vyžadují Azure AD.
- V jednom e-mailu může být jenom jeden aktivní účet. Pokud se uživatel pokusí přihlásit pomocí user@gmail.com LinkedInu a novějšího s aplikací user@gmail.com pro Google, zobrazí se mu chybová stránka s oznámením, že uživatel už existuje.
Přihlaste se k odběru.
Vyberte kartu produkty . Pak vyberte autorizace a přihlášení k odběru.

Poznámka
Noví uživatelé jsou k odběru API Authorization automaticky přihlášení.
Po přihlášení k odběru můžete najít předplatné v části autorizace produktů -> . Na stránce předplatné najdete primární a sekundární klíče. Klíče by měly být chráněné. Klíče by měl používat jenom kód vašeho serveru. Neměly by být k dispozici na straně klienta (.js, .html atd.).

Tip
Video Analyzer pro uživatele multimédií může použít jeden klíč předplatného k připojení k více analyzátorům videa pro účty médií. tuto analýzu videa potom můžete propojit s různými účty Media Services pro multimediální účty.
Získání přístupového tokenu pomocí rozhraní API Authorization
Jakmile se přihlásíte k odběru autorizačního rozhraní API, můžete získat přístupové tokeny. Tyto přístupové tokeny se používají k ověřování v API Operations.
Každé volání do API Operations by mělo být přidružené k přístupovému tokenu s odpovídajícím oborem autorizace volání.
- Úroveň uživatele: tokeny přístupu na úrovni uživatele umožňují provádět operace na úrovni uživatele . Třeba získat přidružené účty.
- Úroveň účtu: přístupové tokeny na úrovni účtu umožňují provádět operace na úrovni účtu nebo na úrovni videa . Například nahrávání videa, vypsání všech videí, získání přehledů videí atd.
- Úroveň videa: přístupové tokeny na úrovni videa umožňují provádět operace na konkrétním videu. Můžete například získat přehled o videích, stahovat titulky, získávat widgety atd.
Úroveň oprávnění tokenů můžete řídit dvěma způsoby:
- Pro tokeny účtu můžete použít token pro získání přístupu k účtu s rozhraním API pro oprávnění a zadat typ oprávnění ( / / MyAccessManager / Owner přispěvatele).
- Pro všechny typy tokenů (včetně tokenů účtu ) můžete zadat allowEdit = true/false. hodnota false je ekvivalentem oprávnění čtenáře (jen pro čtení) a hodnota true je ekvivalentem oprávnění přispěvatele (pro čtení i zápis).
Pro většinu scénářů mezi servery budete pravděpodobně používat stejný token účtu , protože zahrnuje operace s účty a video operace. Pokud ale plánujete, že se na straně klienta budou volat nástroje video Analyzer pro média (například z JavaScriptu), budete chtít použít token přístupu k videu , aby klienti nemohli získat přístup k celému účtu. to je také důvod, proč při vložení analyzátoru videa pro kód klienta multimédií do klienta (například pomocí programu get Přehledy widget nebo get widget Player) musíte zadat přístupový token videa .
Kvůli usnadnění můžete pomocí Autorization API > GetAccounts získat účty bez předchozího získání tokenu uživatele. Můžete také požádat o získání účtů s platnými tokeny. To vám umožní přeskočit další volání pro získání tokenu účtu.
Platnost přístupových tokenů vyprší za 1 hodinu. Před použitím API Operations se ujistěte, že je váš přístupový token platný. V případě vypršení platnosti zavolejte autorizační rozhraní API, abyste získali nový přístupový token.
Jste připraveni zahájit integraci s rozhraním API. Vyhledejte podrobný popis jednotlivých analyzátorů videa pro Media REST API.
Account ID
Parametr Account ID (ID účtu) se vyžaduje u všech volání API operací. ID účtu je globálně jedinečný identifikátor, který se dá získat jedním z těchto způsobů:
Pomocí webu video Analyzer pro multimédia Získejte ID účtu:
Přejděte na web video Analyzer pro multimédia a přihlaste se.
Přejděte na stránku Settings (Nastavení).
Zkopírujte ID účtu.

Pomocí programu video Analyzer pro portál pro vývojáře médií Získejte ID účtu.
Použijte rozhraní Get Account API.
Tip
Přístupové tokeny pro účty můžete vygenerovat tak, že definujete
generateAccessTokens=true.Získejte ID účtu z adresy URL stránky přehrávače ve vašem účtu.
Při sledování videa se ID zobrazuje za částí
accountsa před částívideos.https://www.videoindexer.ai/accounts/00000000-f324-4385-b142-f77dacb0a368/videos/d45bf160b5/
Doporučení
V této části jsou uvedena některá doporučení při použití nástroje video Analyzer pro rozhraní API pro multimédia.
pokud plánujete odeslat video, doporučujeme umístit soubor do umístění v některé veřejné síti (například účet Azure Blob Storage). Získejte odkaz na video a zadejte adresu URL jako parametr souboru k nahrání.
Adresa URL poskytnutá analyzátoru videa pro médium musí ukazovat na mediální (zvukový nebo videosoubor) soubor. Jednoduché ověření adresy URL (nebo adresy URL SAS) je vložení do prohlížeče, pokud se soubor začne přehrávat/stahovat, je to nejspíš dobrá adresa URL. Pokud prohlížeč vykresluje určitou vizualizaci, nejedná se nejspíš o odkaz na soubor, ale na stránku HTML.
Při volání rozhraní API, které získává přehledy ze zadaného videa získáte jako obsah odpovědi podrobný výstup JSON. Podrobnosti o vráceném JSON najdete v tomto tématu.
Ukázka kódu
Následující fragment kódu jazyka C# ukazuje použití všech grafických analyzátorů pro rozhraní API pro média společně.
var apiUrl = "https://api.videoindexer.ai";
var accountId = "...";
var location = "westus2"; // replace with the account's location, or with “trial” if this is a trial account
var apiKey = "...";
System.Net.ServicePointManager.SecurityProtocol = System.Net.ServicePointManager.SecurityProtocol | System.Net.SecurityProtocolType.Tls12;
// create the http client
var handler = new HttpClientHandler();
handler.AllowAutoRedirect = false;
var client = new HttpClient(handler);
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", apiKey);
// obtain account access token
var accountAccessTokenRequestResult = client.GetAsync($"{apiUrl}/auth/{location}/Accounts/{accountId}/AccessToken?allowEdit=true").Result;
var accountAccessToken = accountAccessTokenRequestResult.Content.ReadAsStringAsync().Result.Replace("\"", "");
client.DefaultRequestHeaders.Remove("Ocp-Apim-Subscription-Key");
// upload a video
var content = new MultipartFormDataContent();
Debug.WriteLine("Uploading...");
// get the video from URL
var videoUrl = "VIDEO_URL"; // replace with the video URL
// as an alternative to specifying video URL, you can upload a file.
// remove the videoUrl parameter from the query string below and add the following lines:
//FileStream video =File.OpenRead(Globals.VIDEOFILE_PATH);
//byte[] buffer = new byte[video.Length];
//video.Read(buffer, 0, buffer.Length);
//content.Add(new ByteArrayContent(buffer));
var uploadRequestResult = client.PostAsync($"{apiUrl}/{location}/Accounts/{accountId}/Videos?accessToken={accountAccessToken}&name=some_name&description=some_description&privacy=private&partition=some_partition&videoUrl={videoUrl}", content).Result;
var uploadResult = uploadRequestResult.Content.ReadAsStringAsync().Result;
// get the video id from the upload result
var videoId = JsonConvert.DeserializeObject<dynamic>(uploadResult)["id"];
Debug.WriteLine("Uploaded");
Debug.WriteLine("Video ID: " + videoId);
// obtain video access token
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", apiKey);
var videoTokenRequestResult = client.GetAsync($"{apiUrl}/auth/{location}/Accounts/{accountId}/Videos/{videoId}/AccessToken?allowEdit=true").Result;
var videoAccessToken = videoTokenRequestResult.Content.ReadAsStringAsync().Result.Replace("\"", "");
client.DefaultRequestHeaders.Remove("Ocp-Apim-Subscription-Key");
// wait for the video index to finish
while (true)
{
Thread.Sleep(10000);
var videoGetIndexRequestResult = client.GetAsync($"{apiUrl}/{location}/Accounts/{accountId}/Videos/{videoId}/Index?accessToken={videoAccessToken}&language=English").Result;
var videoGetIndexResult = videoGetIndexRequestResult.Content.ReadAsStringAsync().Result;
var processingState = JsonConvert.DeserializeObject<dynamic>(videoGetIndexResult)["state"];
Debug.WriteLine("");
Debug.WriteLine("State:");
Debug.WriteLine(processingState);
// job is finished
if (processingState != "Uploaded" && processingState != "Processing")
{
Debug.WriteLine("");
Debug.WriteLine("Full JSON:");
Debug.WriteLine(videoGetIndexResult);
break;
}
}
// search for the video
var searchRequestResult = client.GetAsync($"{apiUrl}/{location}/Accounts/{accountId}/Videos/Search?accessToken={accountAccessToken}&id={videoId}").Result;
var searchResult = searchRequestResult.Content.ReadAsStringAsync().Result;
Debug.WriteLine("");
Debug.WriteLine("Search:");
Debug.WriteLine(searchResult);
// get insights widget url
var insightsWidgetRequestResult = client.GetAsync($"{apiUrl}/{location}/Accounts/{accountId}/Videos/{videoId}/InsightsWidget?accessToken={videoAccessToken}&widgetType=Keywords&allowEdit=true").Result;
var insightsWidgetLink = insightsWidgetRequestResult.Headers.Location;
Debug.WriteLine("Insights Widget url:");
Debug.WriteLine(insightsWidgetLink);
// get player widget url
var playerWidgetRequestResult = client.GetAsync($"{apiUrl}/{location}/Accounts/{accountId}/Videos/{videoId}/PlayerWidget?accessToken={videoAccessToken}").Result;
var playerWidgetLink = playerWidgetRequestResult.Headers.Location;
Debug.WriteLine("");
Debug.WriteLine("Player Widget url:");
Debug.WriteLine(playerWidgetLink);
Vyčištění prostředků
Po dokončení tohoto kurzu odstraňte prostředky, které neplánujete použít.
Viz také
Další kroky
- Projděte si podrobnosti výstupního formátu JSON.
- Podívejte se na vzorový kód , který ukazuje důležité aspekty nahrávání a indexování videa. Následující kód vám poskytne dobrý nápad na použití našeho rozhraní API pro základní funkce. Nezapomeňte si přečíst vložené komentáře a poznamenat naše rady k osvědčeným postupům.