多碼率自適應可將指定的音視頻文件流統一打包生成一個自適應碼流文件,讓播放器可根據終端網絡帶寬環境自動選擇最適合當前帶寬環境的碼流播放。本文為您介紹如何轉碼生成多碼率自適應視頻。
什么是多碼率自適應
多碼率自適應即指將多個的音視頻文件流統一打包生成一個自適應碼流文件,該自適應碼流文件包含不同音視頻文件流的碼率、分辨率等信息,相比較傳統的單碼率播放,自適應碼率文件能夠讓播放器可以根據終端網絡帶寬環境,選擇最適合當前帶寬環境和終端設備的碼流播放,從而提升播放體驗。
目前使用比較廣的多碼率自適應輸出格式為HLS和DASH,視頻點播目前僅支持HLS多碼率自適應生成。
效果展示
模板類型
視頻點播目前支持的多碼率自適應模板分兩種類型:視頻多碼率和字幕多軌打包模板。更多信息,請參見轉碼模板配置 TranscodeTemplate。
字幕打包模板不能單獨創建使用,必須與視頻打包模板一同使用。
視頻流打包模板
視頻打包模板用于將視頻轉碼輸出成HLS格式碼流信息構建到自適應多碼率文件當中,可供播放器進行分辨率選擇和切換。
字幕打包模板
字幕打包模板用于將視頻多語言字幕文件的信息構建到自適應多碼率文件中,可用播放器進行語言字幕選擇和切換。
說明字幕文件僅支持VTT格式。
字幕打包如果需要動態替換模板中的字幕文件,可以調用SubmitTranscodeJobs接口進行參數替換。
如何使用
通過控制臺進行轉碼
步驟一:創建多碼率自適應轉碼模板組
您需要先創建多碼率自適應轉碼模板組,以便后續發起轉碼任務時選用。
具體操作,請參見配置普通轉碼模板。
步驟二(可選):創建工作流并關聯轉碼模板組
在工作流中將轉碼、審核、截圖等各種類型的媒體處理任務按一定流程進行編排,后續在上傳媒體或媒體處理環節觸發工作流時,可以自動按預先編排好的一系列任務流程對媒體文件發起處理。
您可以創建工作流,在工作流中添加媒體轉碼節點并關聯上一步創建的多碼率自適應轉碼模板組。具體操作,請參見工作流管理。
步驟三:發起轉碼
使用上一步創建的多碼率自適應轉碼模板組或者工作流對視頻進行轉碼,支持在上傳媒體時或上傳媒體后去觸發轉碼。
上傳時自動觸發轉碼
上傳后主動發起轉碼
該操作常用于對已有視頻的重新轉碼、標準加密、水印參數覆蓋等。
登錄視頻點播控制臺。
在點播控制臺左側導航欄選擇媒資庫 > 音/視頻。
在音/視頻列表頁面,在需要發起轉碼的音視頻的操作列單擊媒體處理。
根據需要選擇用轉碼模板組處理或用工作流處理,并指定為上一步創建的多碼率自適應轉碼模板組或工作流。
單擊確定。
步驟三:查看轉碼結果
發起轉碼后,您可以通過以下兩種方式查看轉碼狀態及轉碼后的視頻地址等信息。您可以獲取視頻地址,使用阿里云播放器或其他第三方播放器播放轉碼后的視頻。
若視頻點播中未配置加速域名,則通過視頻地址播放或下載視頻會產生存儲流出流量費用,詳情請參見存儲流出流量計費。
方式一:控制臺查看
登錄視頻點播控制臺。
在點播控制臺左側導航欄選擇媒資庫 > 音/視頻。
在音/視頻列表頁面,查看轉碼音視頻的狀態。
狀態為正常,表示轉碼完成并成功,其他狀態的釋義請參見Status:視頻狀態。
單擊轉碼音視頻操作列的管理,進入視頻地址頁簽。
轉碼成功的音視頻會生成1路自適應流和多路轉碼流,并生成對應的視頻地址。
方式二:事件通知
視頻點播支持HTTP回調和MNS回調兩種方式的事件通知,通過提前配置事件通知,當媒體文件處理完成(如上傳完成、轉碼完成等)后,視頻點播服務會根據您配置的回調方式及時通知您。您可以從接收到的回調結果中獲取到轉碼任務的狀態及轉碼后的視頻地址等信息。配置方法,請參見事件通知。
轉碼相關的事件如下:
通過OpenAPI進行轉碼
使用說明
如需調用API,請參見視頻點播API概覽。建議您使用阿里云的在線命令行工具OpenAPI Explorer進行調試,您可以在OpenAPI Explorer中直接運行視頻點播的接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
步驟一:創建多碼率自適應轉碼模板組
您需要先創建多碼率自適應轉碼模板組,以便后續發起轉碼任務時選用。
調用AddTranscodeTemplateGroup - 創建轉碼模板組接口,通過
TranscodeTemplate
參數來配置打包模板。此處僅列舉打包模板相對特殊的配置參數進行說明,更多詳細參數,請參見TranscodeTemplate:轉碼模板配置。
視頻打包參數
API參數
控制臺參數
描述
PackageType
打包類型
自適應多碼率打包類型,輸出HLS或DASH格式。取值:HLSPackage(HLS打包)、DASHPackage(DASH打包)。
說明目前僅支持HLSPackage。
BandWidth
帶寬閾值
帶寬閾值,提供給播放器根據當前網絡帶寬環境判斷需要選擇播放的碼流,單位:bps。
說明該參數為視頻打包模板參數。
字幕打包參數
參數
控制臺參數
描述
Language
語言
字幕語言類型,例如:ja(日文)、en-US(英文)等,需要符合RFC5646描述規范。
說明該參數為字幕打包模板參數。
Name
顯示名稱
字幕語言類型在播放器上的顯示名稱,例如:中文、英文等。
Format
字幕格式
字幕文件的后綴名,目前HLS打包僅支持vtt格式。
示例:
subtitle.vtt
SubtitleUrlList
字幕地址
完整的OSS地址,不支持CDN域名地址和HTTPS地址,且字幕文件僅支持存儲在點播分配的系統Bucket上。
示例:
http://example-bucket-****.oss-cn-shanghai.aliyuncs.com/subtitles/4dba87c2-a787-42cd-8328-2369aeb8****-cn.vtt
說明該參數為字幕打包模板參數。
步驟二:(可選)創建工作流并關聯轉碼模板組
在工作流中將轉碼、審核、截圖等各種類型的媒體處理任務按一定流程進行編排,后續在上傳媒體或媒體處理環節觸發工作流時,可以使媒體文件按預先編排好的一系列任務流程自動發起處理。
當前僅支持通過視頻點播控制臺創建工作流,具體操作請參見工作流管理。
步驟三:發起轉碼
使用上一步創建的轉碼模板組或者工作流對視頻進行轉碼,支持在上傳媒體時或上傳媒體后去觸發轉碼。
上傳時自動觸發轉碼
CreateUploadVideo - 獲取音視頻上傳地址和憑證接口僅用于獲取上傳地址和憑證以及創建媒資基礎信息,并非上傳文件,需要開發者自行實現所有上傳邏輯。通過接口上傳的完整示例,請參見通過視頻點播API上傳媒資文件。
調用CreateUploadVideo - 獲取音視頻上傳地址和憑證或UploadMediaByURL - URL批量拉取上傳接口上傳音視頻時,在
TemplateGroupId
參數指定轉碼模板組ID,或在WorkflowId
參數指定包含媒體轉碼節點的工作流ID,則音視頻上傳完成后,點播系統將根據您指定的轉碼模板組或工作流自動進行轉碼處理。
上傳后主動發起轉碼
該操作常用于對已有視頻的重轉碼、標準加密、水印參數覆蓋等。
調用SubmitTranscodeJobs - 提交媒體轉碼作業接口在
TemplateGroupId
參數指定轉碼模板組ID,或調用SubmitWorkflowJob - 提交點播工作流作業接口在WorkflowId
參數指定包含媒體轉碼節點的工作流ID,手動發起轉碼后,則點播系統將根據您設置的轉碼模板組或工作流立即對音視頻進行轉碼處理。
步驟四:查看轉碼結果
發起轉碼后,您可以通過以下兩種方式查看轉碼狀態及轉碼后的視頻地址等信息。您可以獲取視頻地址,使用阿里云播放器或其他第三方播放器播放轉碼后的視頻。
若視頻點播中未配置加速域名,則通過視頻地址播放或下載視頻會產生存儲流出流量費用,詳情請參見存儲流出流量計費。
方式一:調用API查詢
調用SubmitTranscodeJobs - 提交媒體轉碼作業接口提交的轉碼任務會返回轉碼任務IDTranscodeTaskId
,您可以調用GetTranscodeTask - 查詢轉碼任務詳情接口來查詢指定轉碼任務的執行狀態及轉碼輸出的視頻地址等信息。
方式二:事件通知
視頻點播支持HTTP回調和MNS回調兩種方式的事件通知,通過提前配置事件通知,當媒體文件處理完成(如上傳完成、轉碼完成等)后,視頻點播服務會根據您配置的回調方式及時通知您。您可以從接收到的回調結果中獲取到轉碼任務的狀態及轉碼后的視頻地址等信息。配置方法,請參見事件通知。
轉碼相關的事件如下:
后續操作
播放器配置自適應功能后,將轉碼生成的自適應視頻流,傳遞給播放器進行播放,方能實現視頻播放時可根據網絡環境自適應切換視頻清晰度,或手動進行清晰度和字幕的切換。
如何在阿里云播放器SDK配置自適應功能,請參見:
Android播放器SDK:網絡自適應切換視頻清晰度
iOS播放器SDK:網絡自適應切換視頻清晰度
Web播放器SDK:多碼率HLS網絡自適應切換