1. 程式人生 > 其它 >【Azure 媒體服務】記錄使用Java呼叫Media Service API時候遇見的一些問題

【Azure 媒體服務】記錄使用Java呼叫Media Service API時候遇見的一些問題

問題一:java.lang.IllegalArgumentException: Parameter this.client.subscriptionId() is required and cannot be null.

參考 “連線到媒體服務 v3 API - Java” 文件中“連線到 Java 客戶端” 部分的程式碼時候,遇見了 subscriptionId() 方法拋錯。這是因程式碼中credentials.withDefaultSubscriptionId(subscriptionId) 所使用的 subscriptionId 不正確二導致的。

錯誤截圖

問題二: 自定義編碼Demo

如果使用平臺預設提供的編碼,參考EncodingWithMESPredefinedPreset Demo:https://github.com/Azure-Samples/media-services-v3-java/blob/master/VideoEncoding/EncodingWithMESPredefinedPreset/src/main/java/sample/EncodingWithMESPredefinedPreset.java

.NET遠端檔案編碼: https://docs.azure.cn/zh-cn/media-services/latest/stream-files-dotnet-quickstart

編碼預設的解釋參考:

https://docs.microsoft.com/zh-cn/rest/api/media/transforms/create-or-update#encodernamedpreset
https://docs.microsoft.com/zh-cn/azure/media-services/previous/media-services-mes-preset-h264-multiple-bitrate-1080p-audio-5.1

問題三:媒體服務的 視訊釋出 具體是有什麼用呢?不釋出還是可以通過Blob URL檢視嗎?

一般使用媒體服務會將視訊上傳到媒體服務、進行編碼以及釋出,通過釋出之後的生成的 URL 會供其他的使用者進行觀看的,這個 URL 會包含一些流媒體協議,供不同平臺使用的,不僅僅是.MP4檔案。也可以對播放檔案進行加密操作的,如果不需要使用到後面的功能,只是需要 mp4 格式檔案即可的話,可以不釋出,直接使用 Blob 的 URL 進行訪問和下載。

問題四:每次上傳視訊 Blob 都會建立一個新的容器 而且那個容器是專用的,不能匿名訪問。那麼,可以向一個固定容器上傳視訊嗎

這個是不能指定的,當上傳檔案的時候,會首先建立一個資產ID ,之後根據這個ID在 Media Service所配置的 Storage Account 中建立一個 Blob。可以通過SAS(共享訪問簽名)的方式生成URL進行訪問。

問題五:預設轉碼轉的是視訊播放的尺寸,並不是清晰度。如果需要轉清晰度,如何來進行預設呢?

預設轉碼指的是視訊畫素,關於1080的單位元綠描述,是生成一個 AAC 檔案,其中視訊編碼為 6750 kbps 的 node.js 編解碼器,圖片高度為1080畫素,立體聲音訊使用-LC 編解碼器以 128 kbps 進行編碼。

預設裡面json檔案具體的值說明:https://docs.microsoft.com/zh-cn/azure/media-services/previous/media-services-mes-preset-h264-multiple-bitrate-720p

再編碼的過程中,也可以為視訊新增上水印,參考文件:https://docs.microsoft.com/en-us/azure/media-services/latest/transform-create-overlay-how-to

當在複雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 雲中,恰是如此!