輸出中繼資料
警告
Azure 媒體服務將於 2024 年 6 月 30 日淘汰。 如需詳細資訊,請參閱 AMS淘汰指南。
編碼作業會與您要在其上執行一些編碼工作的輸入資產相關聯。 例如,將 MP4 檔案編碼為 H.264 MP4 自動調整位元速率集、建立縮圖、建立疊加層。 完成工作時,就會產生輸出資產。 輸出資產包含視訊、音訊、縮圖和其他檔案。 輸出資產也包含隨附關於輸出資產中繼資料的檔案。 中繼資料 JSON 檔案的名稱具有下列格式:<source_file_name>_manifest.json
(例如,BigBuckBunny_manifest.json
)。 您應該掃描任何 *_metadata.json,並查詢其內的 filepath 字串,以尋找來源檔案名稱 (沒有截斷)。
媒體服務不會事先掃描輸入資產以產生中繼資料。 當輸入資產在作業中處理時,只會以成品的方式產生輸入中繼資料。 因此,此成品會寫入至輸出資產。 產生輸入資產和輸出資產的中繼資料使用不同的工具。 因此,輸入中繼資料與輸出中繼資料會有稍微不同的結構描述。
本文討論 JSON 結構描述的元素和類型,此結構描述是以輸出中繼資料 (<source_file_name>_manifest.json) 為基礎。
使用 CopyVideo 或 CopyAudio 預設值時的 BaseName 字元長度
使用任何標準編碼預設或自定義預設時,輸出元數據檔案命名中使用的 {baseName} 檔案命名宏會縮短為 32 個字元。 不過,若要避免在自定義預設中使用其中一個 CopyCodec 作業 (CopyAudio 或 CopyVideo) 時發生命名衝突,{Basename} 限制為 64 個字元。 這是為了支持客戶想要封存其資產中所有輸出檔案的案例。 如果檔名很長,則前 32 個字元可能會跨多個輸出檔案相同。 在此情況下,前 32 個字元在使用 CopyVideo 或 CopyAudio 時會產生重複的輸出檔案。 因此,如果預設使用 CopyCodec,{Basename} 行為是保留 64 個字元。
您可以在本文結尾找到完整的結構描述程式碼和 JSON 範例。
AssetFile
編碼作業的 AssetFile 項目集合。
名称 | 描述 |
---|---|
來源 | 為了產生此 AssetFile 所處理之輸入/來源媒體檔案的集合。 範例: "Sources": [{"Name": "Ignite-short_1280x720_AACAudio_3551.mp4"}] |
VideoTracks | 每個實體 AssetFile 都可以內含零或多個交錯形成適當容器格式的視訊播放軌。 請參閱 VideoTracks。 |
AudioTracks | 每個實體資產檔案可以內含零個或多個交錯形成適當容器格式的音訊播放軌。 這是所有音訊播放軌的集合。 如需詳細資訊,請參閱 AudioTracks。 |
名稱 必要 |
媒體資產檔案名稱。 範例: "Name": "Ignite-short_1280x720_AACAudio_3551.mp4" |
大小 必要 |
資產檔案大小 (以位元組為單位)。 範例: "Size": 32414631 |
有效期間 必要 |
內容播放持續時間。 如需詳細資訊,請參閱 ISO8601 格式。 範例: "Duration": "PT1M10.315S" |
VideoTracks
每個實體 AssetFile 都可以內含零或多個交錯形成適當容器格式的視訊播放軌。 VideoTracks 元素代表所有視訊播放軌集合。
名称 | 說明 |
---|---|
識別碼 必要 |
此視訊播放軌以零起始的索引。注意:此識別碼不一定是 MP4 檔案中使用的 TrackID。 範例: "Id": 1 |
FourCC 必要 |
由 ffmpeg 報告的視訊轉碼器 FourCC 程式碼。 範例: "FourCC": "avc1" | "hev1" | "hvc1" |
設定檔 | H264 設定檔 (僅適用於 H264 轉碼器) 範例: "Profile": "High" |
Level | H264 層級 (僅適用於 H264 轉碼器)。 範例: "Level": "3.2" |
寬度 必要 |
編碼的視訊寬度 (以像素為單位)。 範例: "Width": "1280" |
高度 必要 |
編碼的視訊高度 (以像素為單位)。 範例: "Height": "720" |
DisplayAspectRatioNumerator 必要 |
視訊顯示長寬比的分子。 範例: "DisplayAspectRatioNumerator": 16.0 |
DisplayAspectRatioDenominator 必要 |
視訊顯示長寬比的分母。 範例: "DisplayAspectRatioDenominator": 9.0 |
Framerate 必要 |
測量的視訊畫面格速率 (採用 .3f 格式)。 範例: "Framerate": 29.970 |
Bitrate 必要 |
從 AssetFile 計算出來的平均視訊位元速率 (位元/秒)。 只會計算基本串流承載,而不會納入封裝負荷。 範例: "Bitrate": 3551567 |
TargetBitrate 必要 |
此視訊播放軌依透過編碼預設值所要求的目標平均位元速率 (以每秒位元數為單位)。 範例: "TargetBitrate": 3520000 |
AudioTracks
每個實體資產檔案可以內含零個或多個交錯形成適當容器格式的音訊播放軌。 AudioTracks 元素代表所有這些音訊播放軌集合。
名称 | 說明 |
---|---|
識別碼 必要 |
此音訊播放軌以零起始的索引。注意:此識別碼不一定是 MP4 檔案中使用的 TrackID。 範例: "Id": 2 |
轉碼器 | 音訊播放軌轉碼器字串。 範例: "Codec": "aac" |
語言 | 範例: "Language": "eng" |
聲道 必要 |
音訊聲道數目。 範例: "Channels": 2 |
SamplingRate 必要 |
音訊取樣率 (每秒或每 Hz 的樣本數)。 範例: "SamplingRate": 48000 |
Bitrate 必要 |
從 AssetFile 計算出來的平均音訊位元速率 (位元 / 秒)。 只會計算基本串流承載,而不會納入封裝負荷。 範例: "Bitrate": 128041 |
JSON 結構描述範例
{
"AssetFile": [
{
"Sources": [
{
"Name": "Ignite-short_1280x720_AACAudio_3551.mp4"
}
],
"VideoTracks": [
{
"Id": 1,
"FourCC": "avc1",
"Profile": "High",
"Level": "3.2",
"Width": "1280",
"Height": "720",
"DisplayAspectRatioNumerator": 16.0,
"DisplayAspectRatioDenominator": 9.0,
"Framerate": 29.970,
"Bitrate": 3551567,
"TargetBitrate": 3520000
}
],
"AudioTracks": [
{
"Id": 2,
"Codec": "aac",
"Language": "eng",
"Channels": 2,
"SamplingRate": 48000,
"Bitrate": 128041
}
],
"Name": "Ignite-short_1280x720_AACAudio_3551.mp4",
"Size": 32414631,
"Duration": "PT1M10.315S"
},
{
"Sources": [
{
"Name": "Ignite-short_960x540_AACAudio_2216.mp4"
}
],
"VideoTracks": [
{
"Id": 1,
"FourCC": "avc1",
"Profile": "High",
"Level": "3.1",
"Width": "960",
"Height": "540",
"DisplayAspectRatioNumerator": 16.0,
"DisplayAspectRatioDenominator": 9.0,
"Framerate": 29.970,
"Bitrate": 2216326,
"TargetBitrate": 2210000
}
],
"AudioTracks": [
{
"Id": 2,
"Codec": "aac",
"Language": "eng",
"Channels": 2,
"SamplingRate": 48000,
"Bitrate": 128041
}
],
"Name": "Ignite-short_960x540_AACAudio_2216.mp4",
"Size": 20680897,
"Duration": "PT1M10.315S"
},
{
"Sources": [
{
"Name": "Ignite-short_640x360_AACAudio_1150.mp4"
}
],
"VideoTracks": [
{
"Id": 1,
"FourCC": "avc1",
"Profile": "High",
"Level": "3.0",
"Width": "640",
"Height": "360",
"DisplayAspectRatioNumerator": 16.0,
"DisplayAspectRatioDenominator": 9.0,
"Framerate": 29.970,
"Bitrate": 1150440,
"TargetBitrate": 1150000
}
],
"AudioTracks": [
{
"Id": 2,
"Codec": "aac",
"Language": "eng",
"Channels": 2,
"SamplingRate": 48000,
"Bitrate": 128041
}
],
"Name": "Ignite-short_640x360_AACAudio_1150.mp4",
"Size": 11313920,
"Duration": "PT1M10.315S"
},
{
"Sources": [
{
"Name": "Ignite-short_480x270_AACAudio_722.mp4"
}
],
"VideoTracks": [
{
"Id": 1,
"FourCC": "avc1",
"Profile": "High",
"Level": "2.1",
"Width": "480",
"Height": "270",
"DisplayAspectRatioNumerator": 16.0,
"DisplayAspectRatioDenominator": 9.0,
"Framerate": 29.970,
"Bitrate": 722682,
"TargetBitrate": 720000
}
],
"AudioTracks": [
{
"Id": 2,
"Codec": "aac",
"Language": "eng",
"Channels": 2,
"SamplingRate": 48000,
"Bitrate": 128041
}
],
"Name": "Ignite-short_480x270_AACAudio_722.mp4",
"Size": 7554708,
"Duration": "PT1M10.315S"
},
{
"Sources": [
{
"Name": "Ignite-short_320x180_AACAudio_380.mp4"
}
],
"VideoTracks": [
{
"Id": 1,
"FourCC": "avc1",
"Profile": "High",
"Level": "1.3",
"Width": "320",
"Height": "180",
"DisplayAspectRatioNumerator": 16.0,
"DisplayAspectRatioDenominator": 9.0,
"Framerate": 29.970,
"Bitrate": 380655,
"TargetBitrate": 380000
}
],
"AudioTracks": [
{
"Id": 2,
"Codec": "aac",
"Language": "eng",
"Channels": 2,
"SamplingRate": 48000,
"Bitrate": 128041
}`
],
"Name": "Ignite-short_320x180_AACAudio_380.mp4",
"Size": 4548932,
"Duration": "PT1M10.315S"
}
]
}
取得說明及支援
您可以連絡媒體服務並提出問題,或遵循下列其中一種方法來追蹤我們的更新:
- 問與答
-
Stack Overflow。 使用
azure-media-services
標記問題。 - @MSFTAzureMedia 或使用 @AzureSupport 來要求支援。
- 透過 Azure 入口網站 開啟支援票證。