內容感知的編碼方式
警告
Azure 媒體服務將於 2024 年 6 月 30 日淘汰。 如需詳細資訊,請參閱 AMS淘汰指南。
提示
想要產生縮圖、將兩個影片結合在一起、將影片子剪輯,或將其旋轉 () ? 您可以在 [ 範例 ] 頁面上找到媒體服務範例程序代碼。
內容感知編碼預設的概觀
若要使用自適性串流來準備要傳遞的內容,影片必須在多個位元速率編碼 (由高到低) 和多個解析度下進行編碼。 這項技術可讓現今 Apple iOS、Android、Windows 和 Mac 上的新式影片播放程式使用串流通訊協定,該協定可讓程式順暢地串流處理內容而不需要緩衝處理。 這些不同顯示大小 (解析度) 和品質 (位元速率) 的轉譯可讓播放程式根據目前網路狀況選取可支援的最佳影片版本。 網路可能會因為分屬 LTE、4G、5G、公用 Wi-Fi 或家用網路而大大不同。
將內容編碼成多個轉譯的程式需要產生「編碼階梯」–解析和比特率數據表,告知編碼器要產生什麼。 如需這種階梯的範例,請參閱媒體服務內建編碼預設。
在理想的情況下,您應該注意要編碼的內容是哪種類型。 您可以使用這項資訊來調整編碼階梯,以符合來源影片中的複雜度和動態效果。 這表示,在階梯中的每個顯示器大小 (解析度) 時,應該會有比特率,超過該比特率,任何品質增加都無法感知–編碼器會以這個最佳比特率值運作。
下一個可進行的優化層級是根據內容來選取解析度 –例如,以小文字編碼在高度低於 720 像素線時,PowerPoint 簡報的影片看起來會模糊。 此外,您可能也有動態效果和複雜度在中途變化的影片,而這些變化是根據拍攝和編輯方式發生的。 這可讓您細緻調整每個場景或畫面界限的編碼設定。 智慧型編碼器可以最佳化影片內每個畫面的編碼設定。
Azure 媒體服務提供彈性資料流預設,可部分處理來源影片位元速率和解析度的變化問題。 不過,此預設不會分析來源內容,以便查看其複雜程度或包含多少動態效果。
您可藉由新增邏輯,以改善更靜態的「自適性串流」內容感知編碼預設,其可讓編碼器搜尋指定解析度的最佳位元速率值,而不需要大量的計算分析。 此預設會根據來源檔案輸出唯一的「階梯」,其屬於符合 GOP 的 MP4。 根據來源影片,預設會針對輸入內容執行初始快速分析,並使用分析結果來判斷,提供最高品質自適性串流體驗所需的最佳圖層數目、位元速率和解析度。 此預設對於複雜度低和複雜度中等的影片很有效,在這些影片中,輸出檔案的位元速率會比靜態自適性串流的預設要低,但其品質仍可為觀眾提供良好的體驗。 輸出資料夾會包含數個 MP4 檔案,其中的影片和音訊已經準備好進行串流了。
設定輸出設定
此外,在決定編碼自適性串流階梯的最佳設定時,開發人員也可以控制內容感知編碼預設所使用的輸出範圍。
開發人員可以使用 PresetConfigurations 類別,將一組限制式和選項傳入內容感知編碼預設,以便控制編碼器所產生的檔案。 如果您想將所有的編碼限制為一個特定的最大解析度,以便控制編碼作業的體驗或成本,那麼此屬性會特別有用。 該屬性也可讓您控制物件在行動網路上或具有頻寬限制的全域區域中支援的最大和最小位元速率。
支援的轉碼器
內容感知編碼預設可用於下列轉碼器:
- H.264
- HEVC (H.265)
內容感知預設的技術詳細資料
現在讓我們更深入地探討內容感知編碼預設的運作方式。 下列範例圖表所顯示的比較使用了 PSNR 和 VMAF 等品質計量。 其來源的建立方式是串連電影和電視中具有高複雜度畫面的短片剪輯,目的是要增加編碼器的負擔。 根據定義,此預設會產生因內容而異的結果,這也表示對於某些內容而言,比特率或品質改善可能不會大幅減少。
圖 1:針對高複雜度來源,使用 PSNR 計量進行的位元速率-失真 (RD) 曲線
圖 2:針對高複雜度來源,使用 VMAF 計量進行的位元速率-失真 (RD) 曲線
以下是針對另一個來源內容類別的結果,其中編碼器能夠判斷出輸入品質不佳 (許多因為低位元速率而產生的壓縮成品)。 使用內容感知預設時,編碼器決定只產生一個輸出層– 低的比特率,讓大部分用戶端都能播放數據流而不停止。
圖 3:針對低品質輸入,使用 PSNR 進行的RD 曲線 (解析度為 1080p)
圖 4:針對低品質輸入,使用 VMAF 進行的RD 曲線 (解析度為 1080p)
編碼範例
請參閱 廣泛的編碼範例清單。
取得說明及支援
您可以連絡媒體服務並詢問問題,或依照下列其中一種方法追蹤我們的更新:
- 問與答
-
Stack Overflow。 使用
azure-media-services
標記問題。 - @MSFTAzureMedia 或使用 @AzureSupport 來要求支援。
- 透過 Azure 入口網站 開啟支援票證。