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