Öğretici: Uzak dosya tabanlı URL kodlama ve video akışı yapma - REST
v2 Media Services mı arayabilirsiniz?
Azure Media Services medya dosyalarınızı çok çeşitli tarayıcılarda ve cihazlarda oynanacak biçimlerde kodlamanızı sağlar. Örneğin, içeriğinizi Apple'ın HLS veya MPEG DASH biçimlerinde akışla göndermek isteyebilirsiniz. Akışla göndermeden önce yüksek kaliteli dijital medya dosyanızı kodlamanız gerekir. Kodlama yönergeleri için bkz. Kodlama kavramı.
Bu öğreticide, BIR URL'yi temel alan bir dosyayı kodlama ve REST kullanarak videonun akışını Azure Media Services nasıl Azure Media Services gösterir.
Uyarı
Media Services için REST API'yi doğrudan kendi kitaplık kodunuz içine sarmaya çalışmanız önerilir çünkü üretim amacıyla bunu düzgün yapmak için tam Azure Kaynak Yönetimi yeniden deneme mantığını uygulamanız ve Azure Kaynak Yönetimi API'lerinde uzun süre çalışan işlemleri yönetmeyi anlamanız gerekebilir. Bu, .NET, Java, TypeScript, Python, Ruby vb. gibi çeşitli diller için istemci SDK'leri tarafından otomatik olarak kullanılmaktadır ve mantıkla veya başarısız API çağrılarında sorun yaşama ihtimalini azaltır. İstemci SDK'leri bunu sizin için zaten ele almaktadır. Postman koleksiyonu bir öğretim aracı olarak daha fazla sağlanır ve çeşitli istemci SDK'leriyle geliştirmeniz sırasında istemci SDK'larının gerçekten kablo üzerinde ne yaptığını göstermek için sağlanır.

Bu öğretici şunların nasıl yapıldığını gösterir:
- Media Services hesabı oluşturma
- Media Services API’sine erişim
- Postman dosyalarını indirme
- Postman'i yapılandırma
- Postman kullanarak istek gönderme
- Akış URL’sini test etme
- Kaynakları temizleme
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Önkoşullar
-
Kaynak grubu adı ve hesap adı için kullanılan değerleri Media Services emin olun
AMS REST öğreticilerinden bazılarında gösterilen REST API'lerini yürütmek için Postman REST istemcisini yükleyin.
Biz Postman'ı kullanıyoruz, ancak herhangi bir REST aracı da olabilir. Diğer alternatifler: REST Visual Studio Code veya Telerik Fiddler ile bağlantı.
Postman dosyalarını indirme
Postman koleksiyonunu ve ortam dosyalarını içeren bir GitHub deposunu kopyalayın.
git clone https://github.com/Azure-Samples/media-services-v3-rest-postman.git
Erişim API’si
Ayrıntılı bilgi için bkz. API'ye erişmek için Media Services edinin
Postman'i yapılandırma
Ortamı yapılandırma
Postman uygulamasını açın.
Ekranın sağ tarafında Ortamı yönet seçeneğini belirleyin.

Ortamı yönet iletişim kutusunda İçe aktar'ı tıklatın.
https://github.com/Azure-Samples/media-services-v3-rest-postman.gitkopyasını oluşturduğunuzda indirilenAzure Media Service v3 Environment.postman_environment.jsondosyasına gidin.Azure Media Service v3 Environment ortamı eklenir.
Not
Erişim değişkenlerini yukarıdaki Media Services API'sine erişme bölümünden aldığınız değerlerle güncelleştirin.
Seçili dosyaya çift tıklayın ve API'ye erişim adımlarını izleyerek aldığınız değerleri girin.
İletişim kutusunu kapatın.
Aşağı açılan listeden Azure Media Service v3 Environment ortamını seçin.

Koleksiyonu yapılandırma
Koleksiyon dosyasını içe aktarmak için İçe Aktar'ı tıklatın.
https://github.com/Azure-Samples/media-services-v3-rest-postman.gitkopyasını oluşturduğunuzda indirilenMedia Services v3.postman_collection.jsondosyasına gidinMedia Services v3.postman_collection.json dosyasını seçin.

Postman kullanarak istek gönderme
Bu bölümde, dosyanızı akışla aktarabilmeniz için kodlama ve URL oluşturma ile ilgili istekler göndereceğiz. Özellikle de aşağıdaki istekleri göndereceğiz:
- Hizmet Sorumlusu Kimlik Doğrulaması için Azure AD Belirteci alma
- Akış Uç Noktası Başlatma
- Çıktı varlığı oluşturma
- Dönüşüm Oluşturma
- İş Oluşturma
- Akış Bulucu oluşturma
- Akış Bulucu'ların yollarını listele
Not
Bu öğretici, tüm kaynakları benzersiz adlarla oluşturmakta olduğunuzu varsayar.
Azure AD Belirteci alma
Postman uygulamasının sol penceresinde "1. Adım: AAD Kimlik Doğrulama belirteci al"ı seçin.
Sonra, "Hizmet Sorumlusu Kimlik Doğrulaması için Azure AD Belirteci alma"'yı seçin.
Gönder’e basın.
Aşağıdaki POST işlemi gönderilir.
https://login.microsoftonline.com/:aadTenantDomain/oauth2/tokenYanıt belirteç ile gelir ve "AccessToken" ortam değişkenini belirteç değerine ayarlar. "AccessToken"'ı ayarlayan kodu görmek için Testler sekmesine tıklayın.

Akış Uç Noktası Başlatma
Akışı etkinleştirmek için öncelikle videonun akışını yapmak istediğiniz Akış Uç Noktasını başlatmamız gerekir.
Not
Yalnızca Akış Uç Noktanız çalışma durumuna geldiğinde faturalandırıldınız.
Postman uygulamasının sol penceresinde "Akış ve Canlı"'ı seçin.
Ardından "StreamingEndpoint'i Başlat"ı seçin.
Gönder’e basın.
Aşağıdaki POST işlemi gönderilir:
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaservices/:accountName/streamingEndpoints/:streamingEndpointName/start?api-version={{api-version}}İstek başarılı olursa
Status: 202 Accepteddöndürülür.Bu durum, isteğin iş için kabul edildi anlamına gelir; ancak, işleme tamamlanmadı. Yanıt üst bilgisinde yer alan değere göre işlem durumunu
Azure-AsyncOperationsorguabilirsiniz.Örneğin, aşağıdaki GET işlemi işleminizin durumunu döndürür:
https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/<resourceGroupName>/providers/Microsoft.Media/mediaservices/<accountName>/streamingendpointoperations/1be71957-4edc-4f3c-a29d-5c2777136a2e?api-version=2018-07-01Zaman uyumsuz Azure işlemlerini izleme makalesinde, yanıtta döndürülen değerler aracılığıyla zaman uyumsuz Azure işlemlerinin durumunun nasıl iz sürecesi ayrıntılı olarak açıklanmıştır.
Çıktı varlığı oluşturma
Çıktı Varlığı, kodlama işinizin sonucunu depolar.
Postman uygulamasının sol penceresinde "Varlıklar"ı seçin.
Ardından "Varlık oluşturma veya güncelleştirme"'yi seçin.
Gönder’e basın.
Aşağıdaki PUT işlemi gönderilir:
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/assets/:assetName?api-version={{api-version}}İşlemin gövdesi aşağıdaki gibidir:
{ "properties": { "description": "My Asset", "alternateId" : "some GUID", "storageAccountName": "<replace from environment file>", "container": "<supply any valid container name of your choosing>" } }
Not
Depolama hesabı ve kapsayıcı adlarını ortam dosyasındaki adlarla değiştirebilirsiniz veya kendi adlarınızı sağlarsınız.
Bu makalenin geri kalanında açıklanan adımları tamamlarken, istek gövdeleri içinde geçerli parametreler sağlarken emin olun.
Dönüşüm oluşturma
Media Services’te içerik kodlarken veya işlerken, kodlama ayarlarını bir tarif olarak ayarlamak yaygın bir modeldir. Daha sonra bu tarifi bir videoya uygulamak üzere bir İş gönderirsiniz. Her yeni video için yeni işler göndererek bu tarifi kitaplığınız içinde yer alan tüm videolara uyguluyor oluruz. Media Services içinde tarif, Dönüşüm olarak adlandırılır. Daha fazla bilgi için Dönüşümler ve İşler konusuna bakın. Bu öğreticide açıklanan örnek, videoyu çeşitli iOS ve Android cihazlarına akışla aktarmak için kodlayan bir tarifi tanımlar.
Yeni bir Dönüşüm örneği oluştururken çıktı olarak neyi üretmesi istediğinizi belirtmeniz gerekir. Gerekli parametre bir TransformOutput nesnesidir. Her TransformOutput bir Ön ayar içerir. Ön ayar, video ve/veya ses işleme işlemlerinin istenen TransformOutput nesnesini oluşturmak üzere kullanılacak adım adım yönergelerini açıklar. Bu makalede açıklanan örnek, AdaptiveStreaming adlı yerleşik bir Ön Ayar kullanır. Ön Ayar, giriş çözünürlüğü ve bit hızını temel alarak, giriş videosunu otomatik olarak oluşturulan bir bit hızı basamağına (bit hızı-çözünürlük çiftleri) kodlar ve her bir bit hızı-çözünürlük çiftine karşılık gelen H.264 video ve AAC sesi ile ISO MP4 dosyaları üretir. Bu Ön Ayar hakkında bilgi için bkz. otomatik oluşturulan bit hızı basamağı.
Yerleşik bir EncoderNamedPreset ön ayarını veya özel ön ayarları kullanabilirsiniz.
Not
Bir Dönüşüm oluştururken, önce Get yöntemini kullanarak zaten bir tane olup olmadığını denetlemelisiniz. Bu öğretici, dönüştürmeyi benzersiz bir adla oluşturmakta olduğunuzu varsayar.
Postman uygulamasının sol penceresinde "kodlama ve analiz" seçeneğini belirleyin.
Ardından, "Dönüşüm Oluşturma"'yı seçin.
Gönder’e basın.
Aşağıdaki PUT işlemi gönderilir.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/transforms/:transformName?api-version={{api-version}}İşlemin gövdesi aşağıdaki gibidir:
{ "properties": { "description": "Standard Transform using an Adaptive Streaming encoding preset from the library of built-in Standard Encoder presets", "outputs": [ { "onError": "StopProcessingJob", "relativePriority": "Normal", "preset": { "@odata.type": "#Microsoft.Media.BuiltInStandardEncoderPreset", "presetName": "AdaptiveStreaming" } } ] } }
Bir iş oluşturma
Burada İş, oluşturulan Dönüşümü belirli bir video girdisine veya ses içeriğine uygulamak için Media Services'e gönderilen istektir. İş giriş videosunun konumu ve çıktının konumu gibi bilgileri belirtir.
Bu örnekte, işin girişi bir HTTPS URL 'sini ("https: / /nimbuscdn-nimbuspm.streaming.mediaservices.Windows.net/2b533311-B215-4409-80AF-529c3e853622/") temel alır.
Postman uygulamasının sol penceresinde "kodlama ve analiz" seçeneğini belirleyin.
Ardından "İş Oluşturma veya Güncelleştirme"'yi seçin.
Gönder’e basın.
Aşağıdaki PUT işlemi gönderilir.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/transforms/:transformName/jobs/:jobName?api-version={{api-version}}İşlemin gövdesi aşağıdaki gibidir:
{ "properties": { "input": { "@odata.type": "#Microsoft.Media.JobInputHttp", "baseUri": "https://nimbuscdn-nimbuspm.streaming.mediaservices.windows.net/2b533311-b215-4409-80af-529c3e853622/", "files": [ "Ignite-short.mp4" ] }, "outputs": [ { "@odata.type": "#Microsoft.Media.JobOutputAsset", "assetName": "testAsset1" } ] } }
İşin tamamlanması biraz sürüyor ve tamamlandığında bildirim almak istiyorsunuz. İşin ilerleme durumunu görmek için Event Grid'in kullanılmasını öneririz. Event Grid yüksek kullanılabilirlik, tutarlı performans ve dinamik ölçek için tasarlanmıştır. Event Grid ile uygulamalarınız neredeyse tüm Azure hizmetleri ve özel kaynaklardan gelen olayları takip edip bu olaylara yanıt verebilir. Basit, HTTP tabanlı reaktif olay işleme özelliği, olayların akıllı filtrelenmesi ve yönlendirilmesi sayesinde etkili çözümler oluşturmanıza yardımcı olur. Bkz. Olayları özel bir web uç noktasına yönlendirme.
İş genellik şu aşamalardan geçer: Zamanlandı, Kuyruğa Alındı, İşleniyor, Tamamlandı (son aşama). İş bir hatayla karşılaştıysa Hata durumunu alırsınız. İş iptal edilme sürecindeyse İptal Ediliyor ve İptal Edildi durumunu alırsınız.
İş hata kodları
Bkz. hata kodları.
Akış bulucusu oluşturma
Kodlama işi tamamlandıktan sonra, bir sonraki adım çıktı kıymetindeki videonun kayıttan yürütmeye yönelik olarak kullanılabilmesini sağlar. Bunu iki adımda gerçekleştirebilirsiniz: ilk olarak, bir StreamingLocator oluşturun ve ikinci olarak, istemcilerin kullanabildiği akış URL’lerini derleyin.
Akış Bulucu oluşturma işlemine yayımlama denir. Varsayılan olarak, akış bulucu, API çağrılarını yaptıktan hemen sonra geçerli olur ve isteğe bağlı başlangıç ve bitiş zamanlarını yapılandırmadıkça silinene kadar sürer.
Bir StreamingLocator oluştururken istenen StreamingPolicyName değerini belirtmeniz gerekir. Bu örnekte, Açık (veya şifreli olmayan) içerik akışını, böylece önceden tanımlanmış açık akış ilkesi "Predefined_ClearStreamingOnly" kullanılır.
Önemli
Özel StreamingPolicy’yi kullanırken Media Service hesabınız için bu tür ilkelerin sınırlı bir kümesini tasarlamanız ve aynı şifreleme seçenekleri ve protokoller gerekli olduğunda StreamingLocators için bunları kullanmanız gerekir.
Medya hizmeti hesabınızın akış ilkesi girişi sayısı için bir kotası vardır. Her bir akış bulucu için yeni bir akış ilkesi oluşturmamalısınız.
Postman uygulamasının sol penceresinde "akış Ilkeleri ve Konumlandırıcı" öğesini seçin.
Ardından "akış Bulucu oluştur (Temizle)" öğesini seçin.
Gönder’e basın.
Aşağıdaki PUT işlemi gönderilir.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/streamingLocators/:streamingLocatorName?api-version={{api-version}}İşlemin gövdesi aşağıdaki gibidir:
{ "properties": { "streamingPolicyName": "Predefined_ClearStreamingOnly", "assetName": "testAsset1", "contentKeys": [], "filters": [] } }
Yolları listeleme ve akış URL'lerini derleme
Yolları listeleme
Akış bulucunun oluşturuldığına göre, akış URL 'lerini alabilirsiniz
Postman uygulamasının sol penceresinde "akış Ilkeleri" ni seçin.
Ardından, "Yolları Listele"'yi seçin.
Gönder’e basın.
Aşağıdaki POST işlemi gönderilir.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/streamingLocators/:streamingLocatorName/listPaths?api-version={{api-version}}İşlemin gövdesi yoktur:
Akış için kullanmak istediğiniz yollardan birini not edin; sonraki bölümde kullanacaksınız. Burada aşağıdaki yollar döndürülür:
"streamingPaths": [ { "streamingProtocol": "Hls", "encryptionScheme": "NoEncryption", "paths": [ "/cdb80234-1d94-42a9-b056-0eefa78e5c63/Ignite-short.ism/manifest(format=m3u8-aapl)" ] }, { "streamingProtocol": "Dash", "encryptionScheme": "NoEncryption", "paths": [ "/cdb80234-1d94-42a9-b056-0eefa78e5c63/Ignite-short.ism/manifest(format=mpd-time-csf)" ] }, { "streamingProtocol": "SmoothStreaming", "encryptionScheme": "NoEncryption", "paths": [ "/cdb80234-1d94-42a9-b056-0eefa78e5c63/Ignite-short.ism/manifest" ] } ]
Akış URL'lerini derleme
Bu bölümde HLS akış URL'sini derleyeceğiz. URL'ler aşağıdaki değerlerden oluşur:
Veri gönderme protokolü. Burada "https".
Not
Oynatıcı bir https sitesinde barındırılıyorsa, "https" URL’sini güncelleştirdiğinizden emin olun.
StreamingEndpoint'in konak adı. Burada "amsaccount-usw22.streaming.media.azure.net".
Ana bilgisayar adını almak için aşağıdaki GET işlemini kullanabilirsiniz:
https://management.azure.com/subscriptions/00000000-0000-0000-0000-0000000000000/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaservices/:accountName/streamingEndpoints/default?api-version={{api-version}}ve
resourceGroupNameaccountNameparametrelerini ortam dosyası ile eşleşecek şekilde ayarladığınızdan emin olun.Önceki bölümde (Yolları listeleme) aldığınız yol.
Sonuç olarak, aşağıdaki HLS URL'si derlenir
https://amsaccount-usw22.streaming.media.azure.net/cdb80234-1d94-42a9-b056-0eefa78e5c63/Ignite-short.ism/manifest(format=m3u8-aapl)
Akış URL’sini test etme
Not
Akışa almak istediğiniz akış uç noktasının çalıştığından emin olun.
Bu makalede, akışı test etmek için Azure Media Player kullanılmaktadır.
- Bir Web tarayıcısı açın ve adresine gidin https://aka.ms/azuremediaplayer/ .
- URL: kutusuna derlediğiniz URL'yi yapıştırın.
- Oynatıcıyı Güncelleştir düğmesine basın.
Azure Media Player, test için kullanılabilir, ancak üretim ortamında kullanılmamalıdır.
Media Services hesabınızdaki kaynakları temizleme
Genellikle, yeniden kullanmayı planladığınız nesneler hariç her şeyi temizlemeniz gerekir (genellikle dönüşümleri yeniden kullanacaksınız ve akış bulleyicileri, vb.). Deneme sonrasında hesabınızın temiz olmasını istiyorsanız, yeniden kullanmayı planlamadığınız kaynakları silmeniz gerekir.
Bir kaynağı silmek için, silmek istediğiniz kaynağın altından "Sil ..." işlemini seçin.
Kaynakları temizleme
Bu öğreticide oluşturduğunuz Media Services ve depolama hesapları dahil olmak üzere, kaynak grubunuzdaki kaynaklardan herhangi birine artık ihtiyacınız yoksa kaynak grubunu silebilirsiniz.
Aşağıdaki CLı komutunu yürütün:
az group delete --name amsResourceGroup
Soru sorun, geri bildirimde bulunun, güncelleştirmeleri al
soru sormak, geri bildirimde bulunmak ve Media Services hakkında güncelleştirmeler almak için Azure Media Services community makalesine göz atın.
Sonraki adımlar
Videonuzu karşıya yükleme, kodlama ve akışla aktarma hakkında bilgi edindiğinize göre aşağıdaki makaleye bakabilirsiniz: