問題描述
在Azure門戶上創(chuàng)建Transform Encoding時候噪裕,只能選擇 Built-in Preset 編碼方式(如:H265ContentAwareEncoding)
在創(chuàng)建編碼任務(wù)時,除了在門戶上可選的幾種內(nèi)置的編碼格式外内舟,還可以通過自定義的編碼預(yù)設(shè)文件(Preset.json)對視頻文件進行編碼。如 az ams transform 命令:
# Create a transform with a custom Standard Encoder preset from a JSON file and Low relative priority.
az ams transform create -a myAmsAccount -n transformName -g myResourceGroup --preset "C:\MyPresets\CustomPreset.json" --relative-priority Low
那么从诲,如何來定義創(chuàng)建視頻縮略圖的預(yù)設(shè)編碼文件呢俺夕?
問題解答
準備 preset.json 文件
查閱 az ams transform 命令的參數(shù) --preset 的所介紹的一句話 “ In addition to the allowed values, you can also pass a path to a custom Standard Encoder preset JSON file. See https://docs.microsoft.com/rest/api/media/transforms/createorupdate#standardencoderpreset for further details on the settings to use to build a custom preset.”
查看 standard encoder preset 的介紹中包含 @odata.type丹喻,codecs襟铭,formats 等內(nèi)容碌奉。
如:
{
"@odata.type": "#Microsoft.Media.StandardEncoderPreset",
"codecs": [
{
"@odata.type": "#Microsoft.Media.CopyVideo"
},
{
"@odata.type": "#Microsoft.Media.CopyAudio"
}
],
"formats": [
{
"@odata.type": "#Microsoft.Media.Mp4Format",
"filenamePattern": "{Basename}_{Bitrate}{Extension}"
}
]
}
- @odata.type 的值為固定值 #Microsoft.Media.StandardEncoderPreset,表示標準編碼預(yù)設(shè)文件
- codecs為一個數(shù)組寒砖,表示對輸入視頻進行編碼時要使用的編解碼器列表赐劣。其中的兩個 CopyVideo 和 CopyAudio 都是編碼標記,告知編碼器復(fù)復(fù)制輸入視頻比特流 和 制輸入音頻比特流哩都。
- formats 表示編碼要生成輸出的文件隆豹,這里表示輸出一個MP4文件。
當需要創(chuàng)建一個縮略圖的編碼文件時候茅逮,可以使用codecs 中的 JpgImage 或者 PngImage ,輸出的 formats 則使用對應(yīng)的 JpgFormat 和 PngFormat 判哥。本例中使用JpgImage作為參考:
{
"@odata.type": "#Microsoft.Media.StandardEncoderPreset",
"codecs": [
{
"@odata.type": "#Microsoft.Media.CopyVideo"
},
{
"@odata.type": "#Microsoft.Media.CopyAudio"
},
{
"@odata.type": "#Microsoft.Media.JpgImage",
"start": "PT05S",
"step": "PT05S",
"range": 1,
"spriteColumn":10,
"layers": [
{
"width": "1024",
"height": "768",
"quality": 90
}
]
}
],
"formats": [
{
"@odata.type": "#Microsoft.Media.Mp4Format",
"filenamePattern": "{Basename}_{Bitrate}{Extension}"
},
{
"@odata.type": "#Microsoft.Media.JpgFormat",
"filenamePattern": "{Basename}_{Index}{Extension}"
}
]
}
以上內(nèi)容會對輸入視頻的第5秒生成1張縮略圖(range為1)献雅,寬1024px,高768px塌计,質(zhì)量為90. 輸入的文件名格式為{Basename}_{Index}{Extension}挺身。關(guān)于它們的詳細說明,參照官網(wǎng)說明:
JpgImage :https://learn.microsoft.com/en-us/rest/api/media/transforms/create-or-update?tabs=HTTP#jpgimage
JpgFormat :https://learn.microsoft.com/en-us/rest/api/media/transforms/create-or-update?tabs=HTTP#jpgformat
執(zhí)行 transform create 指令
az ams transform create --account-name yourmediaservicename --resource-group yourresourcegroup --name generate-thumbnail --preset custom-preset.json
如果在執(zhí)行中遇見錯誤锌仅,可以使用 --debug 參數(shù)來查看調(diào)試詳細的錯誤章钾。
當執(zhí)行成功后,會輸出如下內(nèi)容:
檢驗自定義編碼文件的輸出成果:
參考資料
JpgImage :https://learn.microsoft.com/en-us/rest/api/media/transforms/create-or-update?tabs=HTTP#jpgimage
JpgFormat :https://learn.microsoft.com/en-us/rest/api/media/transforms/create-or-update?tabs=HTTP#jpgformat
az ams transform create :https://learn.microsoft.com/en-us/cli/azure/ams/transform?view=azure-cli-latest#az-ams-transform-create-examples
當在復(fù)雜的環(huán)境中面臨問題热芹,格物之道需:濁而靜之徐清贱傀,安以動之徐生。 云中伊脓,恰是如此!