使用媒體服務為視訊和音訊編碼
警告
Azure 媒體服務將於 2024 年 6 月 30 日淘汰。 如需詳細資訊,請參閱 AMS淘汰指南。
提示
想要產生縮圖、將兩個影片結合在一起、將影片子剪輯,或將其旋轉 () ? 您可以在 [ 範例 ] 頁面上找到媒體服務範例程序代碼。
媒體服務中的「編碼」一詞指的是將包含數位視訊和/或音訊的檔案從某個標準格式轉換為另一種格式的流程,目的是 (a) 縮減檔案大小,和/或 (b) 產生與各種裝置和應用程式相容的格式。 此流程也稱為視訊壓縮或轉碼。 如需進一步討論此概念,請參閱資料壓縮和什麼是編碼和轉碼?。
重要
媒體服務不會針對已取消或擲回錯誤的作業計費。 舉例來說,達到 50% 進度而取消的作業不會以作業分鐘數的 50% 計費。 您只需支付已完成作業的費用。
- 若要透過漸進式下載傳遞,您可以使用 Azure 媒體服務,將數位媒體檔案 (夾層) 轉換成 MP4 檔案,其中包含以 H.264 轉碼器編碼的視訊,以及以 AAC 轉碼器編碼的音訊。 此 MP4 檔案會寫入儲存體帳戶中的資產。 您可以使用 Azure 儲存體 API 或 SDK (例如儲存體 REST API 或 .NET SDK) 來直接下載檔案。 如果您在儲存體中建立了具有特定容器名稱的輸出資產,請使用該位置。 不然,您也可以使用媒體服務來列出資產容器 URL。
- 若要準備要透過自適性串流傳遞的內容,夾層檔必須以多個位元速率編碼 (從高到低)。 為了確保品質能正常轉換,視訊的解析度會隨著位元速率一起降低。 這會導致所謂的編碼階梯–解析和比特率數據表 (請參閱 自動產生的自適性比特率 階梯或使用內容感知編碼預設) 。 您可以使用媒體服務,以多個位元速率為您的夾層檔案編碼。 如此一來,您會取得一組 MP4 檔案,以及寫入儲存體帳戶中資產的相關串流設定檔。 接下來,您便能使用媒體服務中的動態封裝功能,透過 MPEG-DASH 和 HLS 等串流通訊協定傳遞視訊。 您必須建立一個串流定位器,並建置對應支援通訊協定的串流 URL,然後根據裝置/應用程式的功能將其交給裝置/應用程式。
轉換和作業
若要使用媒體服務 v3 來編碼,您需要建立轉換 \(英文\) 和作業 \(英文\)。 轉換定義的是編碼設定和輸出的配方;作業則是該配方的執行個體。 如需詳細資訊,請參閱轉換和作業。
使用媒體服務編碼時,需使用預設來告訴編碼器應該如何處理輸入媒體檔案。 在媒體服務 v3 中,您可以使用標準編碼器來為檔案編碼。 例如,您可以指定所編碼內容中需要的視訊解析度及/或音訊聲道數目。
您可以根據業界最佳做法快速開始使用其中一個內建預設,或者您可以選擇建置自定義預設以特定案例或裝置需求為目標。
從 2019 年 1 月開始,使用標準編碼器進行編碼以產生 MP4 檔案時,會產生新的 .mpi 檔案並將該檔案新增到輸出資產。 此 MPI 檔案的目的是用來改進動態封裝與串流處理案例的效能。
注意
您不應該修改或移除該 MPI 檔案,也不應該在您的服務中相依於此類檔案的存在與否。
內建預設
媒體服務支援下列內建編碼預設:
BuiltInStandardEncoderPreset
BuiltInStandardEncoderPreset \(英文\) 是用來設定內建預設,以供使用標準編碼器為輸入視訊編碼時使用。
目前支援的內建預設如下:
EncoderNamedPreset.AACGoodQualityAudio:產生只包含立體聲音訊 (以 192 kbps 編碼) 的單一 MP4 檔案。
EncoderNamedPreset.AdaptiveStreaming:這支援 H.264 自適性比特率編碼。 如需詳細資訊,請參閱自動產生位元速率階梯。
EncoderNamedPreset.H265AdaptiveStreaming:類似於 AdaptiveStreaming 預設,但會使用 HEVC (H.265) 編解碼器。 產生一組符合 GOP 的 MP4 檔案,其中包含 H.265 視訊和立體聲 AAC 音訊。 根據輸入解析度、位元速率和畫面播放速率自動產生位元速率階梯。 自動產生的預設值絕對不會超過輸入解析度。 例如,如果輸入是 720p,則輸出最多維持在 720p。
EncoderNamedPreset.ContentAwareEncoding:公開 H.264 內容感知編碼的預設。 使用內容感知編碼來產生一組符合 GOP 的 MP4。 指定輸入內容時,服務會對輸入的內容執行初始的輕量分析,然後將其結果用於決定最適合自適性串流傳遞的圖層數、適當的位元速率及解析度設定。 此預設特別適用於中低複雜度的影片,雖然輸出檔案位元速率較低,但品質仍足以讓觀眾享受良好的體驗。 輸出會包含視訊和音訊交錯的 MP4 檔案。 此預設最多只會產生 1080P HD 的輸出。 如果需要 4K 輸出,您可以使用 “maxHeight” 屬性,使用 PresetConfigurations 來設定預設值。 如需詳細資訊,請參閱內容感知編碼。
EncoderNamedPreset.H265ContentAwareEncoding:公開 HEVC (H.265) 內容感知編碼的預設。 使用內容感知編碼來產生一組符合 GOP 的 MP4。 指定輸入內容時,服務會對輸入的內容執行初始的輕量分析,然後將其結果用於決定最適合自適性串流傳遞的圖層數、適當的位元速率及解析度設定。 此預設特別適用於中低複雜度的影片,雖然輸出檔案位元速率較低,但品質仍足以讓觀眾享受良好的體驗。 輸出會包含視訊和音訊交錯的 MP4 檔案。 此預設最多會產生 4K HD 的輸出。 如果需要 8K 輸出,您可以使用 “maxHeight” 屬性,使用 PresetConfigurations 設定預設值。
EncoderNamedPreset.H264MultipleBitrate1080p:會產生一組 8 個對齊 GOP 的 MP4 檔案 (範圍從 6000 kbps 到 400 kbps) 和立體聲 AAC 音訊。 解析度起自 1080p,下至 360p。
EncoderNamedPreset.H264MultipleBitrate720p:會產生一組 6 個對齊 GOP 的 MP4 檔案 (範圍從 3400 kbps 到 400 kbps) 和立體聲 AAC 音訊。 解析度起自 720p,下至 360p。
EncoderNamedPreset.H264MultipleBitrateSD:會產生一組 5 個對齊 GOP 的 MP4 檔案 (範圍從 1600 kbps 到 400 kbps) 和立體聲 AAC 音訊。 解析度起自 480p,下至 360p。
EncoderNamedPreset.H264SingleBitrate1080p:產生 MP4 檔案,其中視訊以 H.264 編解碼器編碼為 6750 kbps,圖片高度為 1080 像素,而立體音訊會以 AAC-LC 編解碼器編碼為 128 kbps。 如果您想要較低的音訊比特率,您可以在轉換中建立自定義編碼預設,並調整取樣率或通道計數,以降低 AAC-LC 的值。
EncoderNamedPreset.H264SingleBitrate720p:產生 MP4 檔案,其中視訊是以 H.264 編解碼器編碼,且圖片高度為 720 像素,而立體音訊會以 AAC-LC 編解碼器編碼為 128 kbps。 如果您想要較低的音訊比特率,您可以在轉換中建立自定義編碼預設,並調整取樣率或通道計數,以降低 AAC-LC 的值。
EncoderNamedPreset.H264SingleBitrateSD:產生 MP4 檔案,其中視訊是以 H.264 編解碼器編碼,且圖片高度為 480 像素,並以 AAC-LC 編解碼器編碼,並以 128 kbps 的 AAC-LC 編解碼器編碼。 如果您想要較低的音訊比特率,您可以在轉換中建立自定義編碼預設,並調整取樣率或通道計數,以降低 AAC-LC 的值。
EncoderNamedPreset.H265SingleBitrate720P:產生一個 MP4 檔案,包含以 HEVC (H.265) 轉碼器編碼,速率為 1800 kbps 的視訊 (圖片高度 720 像素),以及以 AAC-LC 轉碼器編碼,速率為 128 kbps 的立體聲音訊。
EncoderNamedPreset.H265SingleBitrate1080p:產生一個 MP4 檔案,包含以 HEVC (H.265) 轉碼器編碼,速率為 3500 kbps 的視訊 (圖片高度 1080 像素),以及以 AAC-LC 轉碼器編碼,速率為 128 kbps 的立體聲音訊。
EncoderNamedPreset.H265SingleBitrate4K:產生一個 MP4 檔案,包含以 HEVC (H.265) 轉碼器編碼,速率為 9500 kbps 的視訊 (圖片高度 2160 像素),以及以 AAC-LC 轉碼器編碼,速率為 128 kbps 的立體聲音訊。
若要查看最新的預設清單,請參閱用於影片編碼的內建預設。
自訂預設
「媒體服務」可完整支援自訂預設中的所有值,以滿足您的特定編碼需要和需求。
StandardEncoderPreset
StandardEncoderPreset \(英文\) 能描述在使用標準編碼器為輸入視訊編碼時所要使用的設定。 在自訂轉換預設時,請使用此預設。
考量
建立自訂預設時,請考量下列事項:
- AVC 內容中所有高度和寬度的值都必須是四的倍數。
- 在 Azure 媒體服務 v3 中,所有編碼位元速率的單位都是「位元/秒」。 這與 V2 API 的預設不同,其使用的單位是「千位元/秒」。 舉例來說,如果 V2 中指定的位元速率為 128 (千位元/秒),在 v3 中便會是 128000 (位元/秒)。
預設結構描述
在媒體服務 v3 中,預設是 API 本身的強型別實體。 您可以在 Open API 規格 (或 Swagger) 中找到這些物件的「結構描述」定義。 您也可以在 REST API、.NET SDK 或其他媒體服務 v3 SDK 參考文件中檢視預設定義 (例如 StandardEncoderPreset)。
在 v3 中調整編碼
使用 2020-05-01 或更新版本的 API,或者透過 Azure 入口網站建立的帳戶不再需要縮放和編碼保留單元。 服務內部將自動處理縮放。
計費
媒體服務不會針對已取消或發生錯誤的作業計費。 舉例來說,達到 50% 進度而取消的作業不會以作業分鐘數的 50% 計費。 您只需支付已完成作業的費用。
如需詳細資訊,請參閱定價。
編碼範例
請參閱 編碼範例的廣泛清單。
取得說明及支援
您可以連絡媒體服務並提出問題,或遵循下列其中一種方法來追蹤我們的更新:
- 問與答
-
Stack Overflow。 使用
azure-media-services
標記問題。 - @MSFTAzureMedia 或使用 @AzureSupport 來要求支援。
- 透過 Azure 入口網站 開啟支援票證。