直播轉(zhuǎn)碼
直播轉(zhuǎn)碼可以解決推流端碼率較高或較低而導(dǎo)致播放效果不好等問(wèn)題。通過(guò)閱讀本文,您可以快速了解直播轉(zhuǎn)碼的使用場(chǎng)景、使用限制、轉(zhuǎn)碼功能、模板參數(shù)、轉(zhuǎn)碼規(guī)則和寬度自適應(yīng)等功能。
使用場(chǎng)景
當(dāng)推流端碼率較高而客戶端帶寬資源有限會(huì)導(dǎo)致視頻播放卡頓;當(dāng)推流端碼率較低時(shí)會(huì)導(dǎo)致視頻播放效果不好。使用直播轉(zhuǎn)碼服務(wù)可以快速幫您解決這些問(wèn)題。
播放器插件需要實(shí)現(xiàn)多碼率切換。前端播放器插件設(shè)置碼率切換,需要同一路推流同時(shí)提供多種碼率的播流地址。視頻直播的實(shí)時(shí)轉(zhuǎn)碼功能為同一路推流同時(shí)提供多種碼率的播流地址服務(wù)。
使用H.264編碼進(jìn)行推流,實(shí)時(shí)轉(zhuǎn)碼成H.265編碼直播流進(jìn)行播放,可以降低帶寬。
使用H.265編碼進(jìn)行推流,實(shí)時(shí)轉(zhuǎn)碼成低碼率H.265編碼的直播流進(jìn)行播放。
為了解決H.265在瀏覽器不兼容問(wèn)題需要實(shí)時(shí)轉(zhuǎn)碼成H.264編碼的直播流進(jìn)行播放。
使用直播轉(zhuǎn)碼功能會(huì)產(chǎn)生轉(zhuǎn)碼費(fèi)用,按轉(zhuǎn)碼標(biāo)準(zhǔn)、分辨率規(guī)格及對(duì)應(yīng)總轉(zhuǎn)碼時(shí)長(zhǎng)計(jì)費(fèi)。計(jì)費(fèi)規(guī)則詳見(jiàn)直播轉(zhuǎn)碼費(fèi)用。
使用限制
根據(jù)域名+AppName進(jìn)行轉(zhuǎn)碼模板設(shè)置時(shí),同一個(gè)模板里轉(zhuǎn)碼模板類(lèi)型不能同時(shí)配置標(biāo)準(zhǔn)模板和窄帶高清TM模板。
按AppName配置轉(zhuǎn)碼模板,推流地址中的 AppName 名稱(chēng)和轉(zhuǎn)碼模板對(duì)應(yīng)時(shí),轉(zhuǎn)碼模板生效。子播流域名復(fù)用主播流域名轉(zhuǎn)碼模板,子播流域名配置無(wú)效。
直播中心為北京、上海、深圳時(shí),每個(gè)域名下最多支持300路轉(zhuǎn)碼并發(fā)流。其他直播中心每個(gè)域名下最多支持50路轉(zhuǎn)碼并發(fā)流。如果一路高清分辨率直播流輸入,同時(shí)轉(zhuǎn)碼成標(biāo)清和流暢分辨率進(jìn)行輸出播放,算2路轉(zhuǎn)碼流。當(dāng)達(dá)到上限后,轉(zhuǎn)碼超限的播放連接會(huì)播放原始流。可前往播放域名中基本配置 > 基礎(chǔ)信息中了解當(dāng)前用量以及提升配額。
當(dāng)提供的直播服務(wù)不能滿足您當(dāng)前業(yè)務(wù)需求時(shí),請(qǐng)聯(lián)系您的阿里云客戶經(jīng)理或通過(guò)阿里云其它渠道咨詢(xún)。
功能說(shuō)明
目前轉(zhuǎn)碼功能分為通用轉(zhuǎn)碼、自定義轉(zhuǎn)碼、多碼率轉(zhuǎn)碼和H5自動(dòng)轉(zhuǎn)碼。
通用轉(zhuǎn)碼:可引用系統(tǒng)預(yù)設(shè)模板,包括轉(zhuǎn)碼模板的ID和轉(zhuǎn)碼輸出分辨率。轉(zhuǎn)碼輸出的碼率都是系統(tǒng)預(yù)設(shè)置不支持修改。
自定義轉(zhuǎn)碼:自定義轉(zhuǎn)碼配置支持編碼格式、分辨率、碼率、幀率、視頻GOP、觸發(fā)轉(zhuǎn)碼、轉(zhuǎn)碼模板ID的設(shè)置。
多碼率轉(zhuǎn)碼:一個(gè)轉(zhuǎn)碼模板可以同時(shí)包含多個(gè)轉(zhuǎn)碼配置 ,配置多碼率轉(zhuǎn)碼后,播放器可根據(jù)終端網(wǎng)絡(luò)帶寬環(huán)境,自動(dòng)播放相應(yīng)碼率的直播流,從而提高播放體驗(yàn)。
H5自動(dòng)轉(zhuǎn)碼:用于解決原生瀏覽器超低延時(shí)直播(artc://)不支持視頻B幀和AAC編碼等問(wèn)題。
系統(tǒng)預(yù)設(shè)模板
標(biāo)準(zhǔn)模板
轉(zhuǎn)碼模板 | 畫(huà)質(zhì)優(yōu)先模板ID-H264 | 畫(huà)質(zhì)優(yōu)先模板ID-H265 | 時(shí)延優(yōu)先模板ID-H264 | 時(shí)延優(yōu)先模板ID-H265 | 分辨率 | 碼率 |
流暢(橫屏) | lld | lld265 | lld-ll | lld265-ll | 寬度自適應(yīng),高度:360 | ≤470 |
標(biāo)清(橫屏) | lsd | lsd265 | lsd-ll | lsd265-ll | 寬度自適應(yīng),高度:432 | ≤680 |
高清(橫屏) | lhd | lhd265 | lhd-ll | lhd265-ll | 寬度自適應(yīng),高度:648 | ≤1500 |
超清(橫屏) | lud | lud265 | lud-ll | lud265-ll | 寬度自適應(yīng),高度:1080 | ≤2500 |
標(biāo)清(橫屏) | lsd540 | lsd265-540 | lsd540-ll | lsd265-540-ll | 寬度自適應(yīng),高度:540 | ≤680 |
流暢(豎屏) | lld-v | lld265-v | lld-v-ll | lld265-v-ll | 寬度:360,高度自適應(yīng) | ≤470 |
標(biāo)清(豎屏) | lsd-v | lsd265-v | lsd-v-ll | lsd265-v-ll | 寬度:432,高度自適應(yīng) | ≤680 |
高清(豎屏) | lhd-v | lhd265-v | lhd-v-ll | lhd265-v-ll | 寬度:648,高度自適應(yīng) | ≤1500 |
超清(豎屏) | lud-v | lud265-v | lud-v-ll | lud265-v-ll | 寬度:1080,高度自適應(yīng) | ≤2500 |
標(biāo)清(豎屏) | lsd540-v | lsd265-540-v | lsd540-v-ll | lsd265-540-v-ll | 寬度:540,高度自適應(yīng) | ≤680 |
原畫(huà)-僅轉(zhuǎn)音頻 | oriopus | |||||
原畫(huà)-僅轉(zhuǎn)音頻 | oriaac |
窄帶高清模板
轉(zhuǎn)碼模板 | 畫(huà)質(zhì)優(yōu)先模板ID-H264 | 畫(huà)質(zhì)優(yōu)先模板ID-H265 | 時(shí)延優(yōu)先模板ID-H264 | 時(shí)延優(yōu)先模板ID-H265 | 分辨率 | 碼率 |
流暢(橫屏) | ld | ld265 | ld-ll | ld265-ll | 寬度自適應(yīng),高度:360 | ≤450 |
標(biāo)清(橫屏) | sd | sd265 | sd-ll | sd265-ll | 寬度自適應(yīng),高度:432 | ≤480 |
高清(橫屏) | hd | hd265 | hd-ll | hd265-ll | 寬度自適應(yīng),高度:648 | ≤1200 |
超清(橫屏) | ud | ud265 | ud-ll | ud265-ll | 寬度自適應(yīng),高度:1080 | ≤1300 |
標(biāo)清(橫屏) | sd540 | sd265-540 | sd540-ll | sd265-540-ll | 寬度自適應(yīng),高度:540 | ≤480 |
流暢(豎屏) | ld-v | ld265-v | ld-v-ll | ld265-v-ll | 寬度:360,高度自適應(yīng) | ≤450 |
標(biāo)清(豎屏) | sd-v | sd265-v | sd-v-ll | sd265-v-ll | 寬度:432,高度自適應(yīng) | ≤480 |
高清(豎屏) | hd-v | hd265-v | hd-v-ll | hd265-v-ll | 寬度:648,高度自適應(yīng) | ≤1200 |
超清(豎屏) | ud-v | ud265-v | ud-v-ll | ud265-v-ll | 寬度:1080,高度自適應(yīng) | ≤1300 |
標(biāo)清(豎屏) | sd540-v | sd265-540-v | sd540-v-ll | sd265-540-v-ll | 寬度:540,高度自適應(yīng) | ≤480 |
模板ID不一定和轉(zhuǎn)碼賬單規(guī)格對(duì)應(yīng),實(shí)際轉(zhuǎn)碼賬單規(guī)格與轉(zhuǎn)碼后視頻的分辨率有關(guān)。如配置流暢(ld)轉(zhuǎn)碼,轉(zhuǎn)碼后視頻短邊≤480,且長(zhǎng)邊≤640,轉(zhuǎn)碼賬單則會(huì)按LD規(guī)格輸出。如配置流暢(ld)轉(zhuǎn)碼,但轉(zhuǎn)碼后視頻分辨率為700*360,則會(huì)按照SD規(guī)格進(jìn)行賬單輸出,詳細(xì)信息請(qǐng)參見(jiàn)直播轉(zhuǎn)碼費(fèi)用。
轉(zhuǎn)碼采用分辨率自適應(yīng)的算法,根據(jù)橫屏或豎屏自適應(yīng)轉(zhuǎn)碼后的分辨率,詳情請(qǐng)參見(jiàn)分辨率自適應(yīng)。
轉(zhuǎn)碼規(guī)則
視頻直播默認(rèn)支持延時(shí)轉(zhuǎn)碼,系統(tǒng)監(jiān)測(cè)到某一路直播轉(zhuǎn)碼流無(wú)人觀看時(shí),不會(huì)執(zhí)行轉(zhuǎn)碼。檢測(cè)到播放端首次播放觀看后啟動(dòng)轉(zhuǎn)碼,轉(zhuǎn)碼過(guò)程中5分鐘內(nèi)檢測(cè)到無(wú)人觀看即會(huì)停止轉(zhuǎn)碼。
每一路轉(zhuǎn)碼流僅執(zhí)行一次轉(zhuǎn)碼。
轉(zhuǎn)碼不是必須服務(wù),可按需配置。
轉(zhuǎn)碼協(xié)議目前支持FLV、RTMP、HLS、RTS。
分辨率自適應(yīng)
轉(zhuǎn)碼根據(jù)橫屏或豎屏采用分辨率自適應(yīng)的算法。
若是橫屏自適應(yīng)轉(zhuǎn)碼,轉(zhuǎn)碼后視頻將根據(jù)模板高度自適應(yīng)寬度。
若是豎屏自適應(yīng)轉(zhuǎn)碼,轉(zhuǎn)碼后視頻將根據(jù)模板寬度自適應(yīng)高度。
寬度自適應(yīng)計(jì)算說(shuō)明如下:
例如將1920*1080視頻進(jìn)行流暢橫屏(模板ID:ld)轉(zhuǎn)碼,分辨率寬度自適應(yīng),高度:360,轉(zhuǎn)碼后分辨率為:640*360。
例如將1920*1080視頻進(jìn)行流暢豎屏(模板ID:ld-v)轉(zhuǎn)碼,分辨率寬度:360,高度自適應(yīng),轉(zhuǎn)碼后分辨率為:360*203。
目前只有通用轉(zhuǎn)碼和自定義轉(zhuǎn)碼支持自適應(yīng)分辨率。
功能配置
通用轉(zhuǎn)碼
視頻直播目前可通過(guò)兩種方式進(jìn)行通用轉(zhuǎn)碼配置:
- 登錄視頻直播控制臺(tái)。
單擊功能管理>直播轉(zhuǎn)碼,進(jìn)入直播轉(zhuǎn)碼頁(yè)面。
選擇您所需要配置的域名,單擊通用轉(zhuǎn)碼頁(yè)簽,單擊添加,配置轉(zhuǎn)碼模板。
轉(zhuǎn)碼模板參數(shù)及說(shuō)明如下表所示。
參數(shù)
說(shuō)明
AppName
AppName匹配存在優(yōu)先級(jí):優(yōu)先匹配推流地址AppName一樣的轉(zhuǎn)碼模板。如果不存在則會(huì)匹配域名內(nèi)AppName配置為單個(gè)星號(hào)(*)的轉(zhuǎn)碼模板。
觸發(fā)轉(zhuǎn)碼
開(kāi)啟時(shí):首次拉流時(shí)才啟動(dòng)轉(zhuǎn)碼。
關(guān)閉時(shí):只要有推流就啟動(dòng)轉(zhuǎn)碼,與是否有拉流無(wú)關(guān)。
轉(zhuǎn)碼模板類(lèi)型
提供標(biāo)準(zhǔn)模板和窄帶高清?模板。標(biāo)準(zhǔn)模板和窄帶高清?模板質(zhì)量和性能不同,價(jià)格也不同。標(biāo)準(zhǔn)模板提供原畫(huà)-僅轉(zhuǎn)音頻轉(zhuǎn)碼模板。轉(zhuǎn)碼模板類(lèi)型一次僅能選擇一個(gè)。
轉(zhuǎn)碼模板可以一次選擇多個(gè)。
在使用轉(zhuǎn)碼模板時(shí),模板ID是拼接轉(zhuǎn)碼地址的參數(shù),拼接方式可參見(jiàn)生成推流地址和播放地址。模板ID以及其他說(shuō)明請(qǐng)參見(jiàn)系統(tǒng)預(yù)設(shè)模板。轉(zhuǎn)碼模式分為畫(huà)質(zhì)優(yōu)先、時(shí)延優(yōu)先,時(shí)延優(yōu)先模式下轉(zhuǎn)碼流的延時(shí)較低。
同一個(gè)域名下AppName與模板ID以復(fù)合主鍵的形式存在。
直播加密
開(kāi)啟后可選擇配置阿里云視頻加密或DRM加密。
說(shuō)明DRM加密僅支持上海、新加坡直播中心。
阿里云視頻加密
阿里云視頻加密僅支持輸出HLS和FLV格式。
KMS主密鑰:KMS密鑰的區(qū)域需要和域名的直播中心保持一致。如果沒(méi)有密鑰,請(qǐng)先前往KMS服務(wù)創(chuàng)建一個(gè)密鑰, 具體操作請(qǐng)參見(jiàn)購(gòu)買(mǎi)和啟用KMS實(shí)例。
換Key周期:取值范圍為60~3600內(nèi)的整數(shù)。
更多阿里云視頻加密功能使用可參見(jiàn)阿里云視頻加密。
DRM加密
開(kāi)啟前,需要先配置DRM密鑰。具體操作請(qǐng)參見(jiàn)配置DRM加密。
支持播放協(xié)議為HLS下Widevine和Fairplay的DRM加密,其中Fairplay需要在DRM證書(shū)管理中上傳從Apple獲取的證書(shū)。具體操作請(qǐng)參見(jiàn)申請(qǐng)F(tuán)airplay證書(shū)。
完成配置后,單擊確定。
//需要<>內(nèi)容替換成實(shí)際使用的值
DefaultProfile profile = DefaultProfile.getProfile("<regionId>", "<ALIBABA_CLOUD_ACCESS_KEY_ID>", "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>");
IAcsClient client = new DefaultAcsClient(profile);
AddLiveStreamTranscodeRequest addLiveStreamTranscodeRequest = new AddLiveStreamTranscodeRequest();
addLiveStreamTranscodeRequest.setDomain("<DomainName>");
addLiveStreamTranscodeRequest.setApp("<AppName>");
addLiveStreamTranscodeRequest.setTemplate("<ld>");
addLiveStreamTranscodeRequest.setLazy("<true>");
try {
AddLiveStreamTranscodeResponse addLiveStreamTranscodeResponse = client.getAcsResponse(addLiveStreamTranscodeRequest);
System.out.println(new Gson().toJson(addLiveStreamTranscodeResponse));
// todo something.
} catch (ServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
以上示例實(shí)現(xiàn)了對(duì)AppName為<AppName>的直播流進(jìn)行轉(zhuǎn)碼配置,轉(zhuǎn)碼參數(shù)使用系統(tǒng)預(yù)設(shè)模板<ld>,關(guān)于系統(tǒng)預(yù)設(shè)模板說(shuō)明請(qǐng)參見(jiàn)本文檔系統(tǒng)預(yù)設(shè)模板。
setLazy("<true>")表示拉流才會(huì)觸發(fā)轉(zhuǎn)碼,如果您需要在推流時(shí)就觸發(fā)轉(zhuǎn)碼,可以設(shè)置setLazy("false")。
更多API說(shuō)明請(qǐng)參見(jiàn)AddLiveStreamTranscode。
您可以登錄視頻直播控制臺(tái),選擇流管理,在對(duì)應(yīng)的推流記錄中點(diǎn)擊操作列直播地址查看轉(zhuǎn)碼流地址。
直播地址中包含原畫(huà)(Original)地址和轉(zhuǎn)碼流地址。
您可在原播流地址
StreamName
后加_轉(zhuǎn)碼模板ID
進(jìn)行自定義拼接轉(zhuǎn)碼流地址,詳情可參見(jiàn)生成推流地址和播放地址。
自定義轉(zhuǎn)碼
如果通用轉(zhuǎn)碼模板不能滿足您的要求,您可以使用自定義轉(zhuǎn)碼配置,自定義轉(zhuǎn)碼配置支持編碼格式、分辨率、碼率、幀率、視頻GOP、觸發(fā)轉(zhuǎn)碼、轉(zhuǎn)碼模板ID的設(shè)置。
視頻直播目前可通過(guò)兩種方式進(jìn)行自定義轉(zhuǎn)碼配置:
- 登錄視頻直播控制臺(tái)。
單擊功能管理>直播轉(zhuǎn)碼,進(jìn)入直播轉(zhuǎn)碼頁(yè)面。
選擇您所需要配置的域名,單擊自定義轉(zhuǎn)碼頁(yè)簽,單擊添加,配置轉(zhuǎn)碼模板。
轉(zhuǎn)碼模板參數(shù)及說(shuō)明如下表所示。
參數(shù)
說(shuō)明
AppName
AppName匹配存在優(yōu)先級(jí):優(yōu)先匹配推流地址AppName一樣的轉(zhuǎn)碼模板。如果不存在則會(huì)匹配域名內(nèi)AppName配置為單個(gè)星號(hào)(*)的轉(zhuǎn)碼模板。
模板ID
在使用轉(zhuǎn)碼模板時(shí),模板ID是拼接轉(zhuǎn)碼地址的參數(shù),拼接方式可參見(jiàn)生成推流地址和播放地址。
請(qǐng)勿設(shè)置與系統(tǒng)預(yù)設(shè)模板相同的模板ID。系統(tǒng)預(yù)設(shè)模板ID說(shuō)明可參見(jiàn)系統(tǒng)預(yù)設(shè)模板。
同一個(gè)域名下AppName與模板ID以復(fù)合主鍵的形式存在。
轉(zhuǎn)碼模板類(lèi)型
分為標(biāo)準(zhǔn)模板、窄帶高清?模板和純音頻轉(zhuǎn)碼模板。標(biāo)準(zhǔn)模板和窄帶高清?模板質(zhì)量和性能不同,價(jià)格也不同。
純音頻轉(zhuǎn)碼模板刪除視頻只輸出音頻流。
編碼格式
支持H.264和H.265。
推薦模板參數(shù)
流暢、標(biāo)清、超清、高清四種推薦參數(shù),選中不同的檔位對(duì)應(yīng)的幀率、碼率、分辨率會(huì)根據(jù)系統(tǒng)默認(rèn)的值進(jìn)行填入,可在此基礎(chǔ)上進(jìn)行調(diào)整。
分辨率
視頻輸出的分辨率,單位:像素。可選擇固定分辨率或分辨率隨源.
分辨率隨源:若源流分辨率寬高尺寸小于自適應(yīng)尺寸寬高,按源流輸出。若源流分辨率寬高尺寸大于自適應(yīng)尺寸寬高,按自適應(yīng)尺寸輸出。可選擇不同的自適應(yīng)方式:
短邊自適應(yīng)
長(zhǎng)邊自適應(yīng)
橫豎屏自適應(yīng)
固定分辨率:按指定分辨率輸出,不同的分辨率檔位對(duì)應(yīng)不同的價(jià)格,分辨率檔位如下所示:
LD:(640×480)及以下。
SD:(1280×720)及以下。
HD:(1920×1080)及以下。
2K:(2560×1440)及以下。
4K:(3840×2160)及以下。
說(shuō)明
轉(zhuǎn)碼計(jì)費(fèi)根據(jù)分辨率檔位(LD、SD、HD、2K、4K)決定。分辨率檔位與通用模板中標(biāo)準(zhǔn)模板的模板ID(包括lld、lsd、lhd、lud)和窄帶高清?模板的模板ID(包括ld、sd、hd、ud)無(wú)關(guān),模板ID僅作為業(yè)務(wù)調(diào)用時(shí)的標(biāo)識(shí)使用,請(qǐng)勿混淆。
控制臺(tái)不支持分辨率超過(guò)1080P的自定義設(shè)置,如果您的場(chǎng)景需要2K、4K規(guī)格分辨率,可以提交工單申請(qǐng)。
關(guān)于如何提交工單,請(qǐng)參見(jiàn)聯(lián)系我們。
分辨率檔位判定規(guī)則:輸出規(guī)格按輸出視頻分辨率的長(zhǎng)邊和短邊是否屬于輸出規(guī)格劃定的范圍進(jìn)行判定。
以輸出SD(1280×720)規(guī)格為例:
如果輸出視頻的分辨率長(zhǎng)邊小于等于1280且短邊小于等于720,則該視頻屬于該輸出規(guī)格。
如果輸出視頻的長(zhǎng)邊大于1280或輸出視頻的短邊大于720,則該輸出視頻屬于更高的輸出規(guī)格。
視頻幀率
幀率隨源:若幀率在限制范圍內(nèi),按源幀率輸出,超過(guò)上限按上限輸出,低于下限按下限輸出
固定幀率:輸出指定的視頻幀率,單位:FPS。數(shù)值低于或等于輸入幀率。
視頻碼率
碼率隨源:若碼率在限制范圍內(nèi),按源碼率輸出,超過(guò)上限按上限輸出,低于下限按下限輸出,同時(shí)支持按倍率輸出。
固定碼率:使用指定的碼率,單位:kbps。分辨率檔位指定的碼率如下所示:
LD:100~800。
SD:200~1500。
HD:500~4000。
2K:2000~8000。
4K:4000~30000。
視頻GOP
輸出視頻GOP即Group of picture(圖像組),指兩個(gè)I幀之間的間隔,數(shù)值低于或等于輸入值。為了保障低延時(shí)效果不能大于3秒。
音頻碼率(純音頻轉(zhuǎn)碼)
轉(zhuǎn)碼模板類(lèi)型選擇純音頻轉(zhuǎn)碼模板時(shí)顯示。單位:kbps。取值范圍:8~1000。
編碼檔次(純音頻轉(zhuǎn)碼)
轉(zhuǎn)碼模板類(lèi)型選擇純音頻轉(zhuǎn)碼模板時(shí)顯示。
LC-AAC:低復(fù)雜性高級(jí)音頻編碼。轉(zhuǎn)碼效率較高。
HE-AAC:高效性高級(jí)音頻編碼。在低音頻碼率(通常128 kbps以下)時(shí)音效要高于LC-AAC。
采樣率(純音頻轉(zhuǎn)碼)
轉(zhuǎn)碼模板類(lèi)型選擇純音頻轉(zhuǎn)碼模板時(shí)顯示音頻采樣率。取值:22050、32000、44100、48000、96000。
聲道數(shù)(純音頻轉(zhuǎn)碼)
轉(zhuǎn)碼模板類(lèi)型選擇純音頻轉(zhuǎn)碼模板時(shí)顯示,聲音軌道的個(gè)數(shù),取值:1或2。
轉(zhuǎn)碼模式(高級(jí)配置)
支持畫(huà)質(zhì)優(yōu)先和時(shí)延優(yōu)先,時(shí)延優(yōu)先模式下轉(zhuǎn)碼流的延時(shí)較低。
觸發(fā)轉(zhuǎn)碼(高級(jí)配置)
開(kāi)啟時(shí):首次拉流時(shí)才啟動(dòng)轉(zhuǎn)碼。
關(guān)閉時(shí):只要有推流就啟動(dòng)轉(zhuǎn)碼,與是否有拉流無(wú)關(guān)。
視頻加密(高級(jí)配置)
開(kāi)啟后可選擇配置阿里云視頻加密或DRM加密。
說(shuō)明DRM加密僅支持上海、新加坡直播中心。
阿里云視頻加密
阿里云視頻加密僅支持輸出HLS和FLV格式。
KMS主密鑰:KMS密鑰的區(qū)域需要和域名的直播中心保持一致。如果沒(méi)有密鑰,請(qǐng)先前往KMS服務(wù)創(chuàng)建一個(gè)密鑰, 具體操作請(qǐng)參見(jiàn)購(gòu)買(mǎi)和啟用KMS實(shí)例。
換Key周期:取值范圍為60~3600內(nèi)的整數(shù)。
更多阿里云視頻加密功能使用可參見(jiàn)阿里云視頻加密。
DRM加密
開(kāi)啟前,需要先配置DRM密鑰。具體操作請(qǐng)參見(jiàn)配置DRM加密。
支持播放協(xié)議為HLS下Widevine和Fairplay的DRM加密,其中Fairplay需要在DRM證書(shū)管理中上傳從Apple獲取的證書(shū)。具體操作請(qǐng)參見(jiàn)申請(qǐng)F(tuán)airplay證書(shū)。
透?jìng)魉蓄?lèi)型SEI(高級(jí)配置)
開(kāi)啟后,可透?jìng)魉蓄?lèi)型SEI,不開(kāi)啟則不透?jìng)鱏EI。
關(guān)鍵幀隨源(高級(jí)配置)
開(kāi)啟后,轉(zhuǎn)碼輸出流關(guān)鍵幀與原始流關(guān)鍵幀一致。
pts隨源(高級(jí)配置)
開(kāi)啟后,轉(zhuǎn)碼輸出流pts與原始流pts一致。
單擊確定添加。
由于自定義轉(zhuǎn)碼參數(shù)設(shè)置較為復(fù)雜,我們建議您使用API時(shí)結(jié)合控制臺(tái)進(jìn)行自定義轉(zhuǎn)碼配置。
首先,您通過(guò)控制臺(tái)添加一個(gè)自定義轉(zhuǎn)碼配置。
控制臺(tái)支持分辨率尺寸效果預(yù)覽以及快捷填入流暢,標(biāo)清,高清,超清模板參數(shù)。
完成各項(xiàng)參數(shù)調(diào)整后,通過(guò)調(diào)用DescribeLiveStreamTranscodeInfoAPI查詢(xún)轉(zhuǎn)碼配置信息。
Java SDK查詢(xún)轉(zhuǎn)碼配置信息示例代碼如下:
//需要<>內(nèi)容替換成實(shí)際使用的值
DefaultProfile profile = DefaultProfile.getProfile("<regionId>", "<ALIBABA_CLOUD_ACCESS_KEY_ID>", "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>");
IAcsClient client = new DefaultAcsClient(profile);
DescribeLiveStreamTranscodeInfoRequest describeLiveStreamTranscodeInfoRequest=new DescribeLiveStreamTranscodeInfoRequest();
describeLiveStreamTranscodeInfoRequest.setAppName("<AppName>");
describeLiveStreamTranscodeInfoRequest.setDomainTranscodeName("<DomainName>");
DescribeLiveStreamTranscodeInfoResponse describeLiveStreamTranscodeInfoResponse = null;
try {
describeLiveStreamTranscodeInfoResponse = client.getAcsResponse(describeLiveStreamTranscodeInfoRequest);
} catch (ClientException e) {
e.printStackTrace();
}
System.out.println(new Gson().toJson(describeLiveStreamTranscodeInfoResponse));
您可以將查詢(xún)出的自定義轉(zhuǎn)碼配置信息在您的業(yè)務(wù)系統(tǒng)內(nèi)保存成模板。
返回參數(shù)說(shuō)明請(qǐng)參見(jiàn)DescribeLiveStreamTranscodeInfoAPI。
然后調(diào)用AddCustomLiveStreamTranscodeAPI根據(jù)域名和AppName添加自定義轉(zhuǎn)碼配置信息。
AddCustomLiveStreamTranscodeRequest addCustomLiveStreamTranscodeRequest=new AddCustomLiveStreamTranscodeRequest();
addCustomLiveStreamTranscodeRequest.setDomain("<DomainName>");
addCustomLiveStreamTranscodeRequest.setApp("<AppName>");
/**
* 轉(zhuǎn)碼參數(shù)設(shè)置
*/
AddCustomLiveStreamTranscodeResponse addCustomLiveStreamTranscodeResponse = null;
try {
addCustomLiveStreamTranscodeResponse = client.getAcsResponse(addCustomLiveStreamTranscodeRequest);
} catch (ClientException e) {
e.printStackTrace();
}
System.out.println(new Gson().toJson(addCustomLiveStreamTranscodeResponse));
轉(zhuǎn)碼參數(shù)說(shuō)明請(qǐng)參見(jiàn)AddCustomLiveStreamTranscodeAPI。
其他說(shuō)明:
重新推流后配置才可生效。
App取值必須與推流地址中的AppName名稱(chēng)一樣,轉(zhuǎn)碼模板才能生效。取值不超過(guò)255字符,支持?jǐn)?shù)字、大小寫(xiě)字母、短劃線(-)、下劃線(_),不能以短劃線(-)、下劃線(_)開(kāi)頭。
App也支持取值為星號(hào)(*)字符,表示匹配任意字符串(包括空字符串)。
轉(zhuǎn)碼模板匹配存在優(yōu)先級(jí),優(yōu)先匹配和推流地址中AppName名稱(chēng)相同的轉(zhuǎn)碼模板配置,若不存在和推流地址中AppName名稱(chēng)一樣的轉(zhuǎn)碼模板配置,則會(huì)匹配App為星號(hào)(*)的轉(zhuǎn)碼模板配置。
模板ID與AppName以“復(fù)合主鍵”的形式存在。
您可以登錄視頻直播控制臺(tái),選擇流管理,在對(duì)應(yīng)的推流記錄中點(diǎn)擊操作列直播地址查看轉(zhuǎn)碼流地址。
直播地址中包含原畫(huà)(Original)地址和轉(zhuǎn)碼流地址。
您可在原播流地址
StreamName
后加_轉(zhuǎn)碼模板ID
進(jìn)行自定義拼接轉(zhuǎn)碼流地址,詳情可參見(jiàn)生成推流地址和播放地址。
多碼率轉(zhuǎn)碼
多碼率轉(zhuǎn)碼可以在一個(gè)轉(zhuǎn)碼模板內(nèi)配置多種轉(zhuǎn)碼模式。部分地區(qū)網(wǎng)絡(luò)環(huán)境差異較大,網(wǎng)絡(luò)波動(dòng)會(huì)影響終端的播放體驗(yàn),因此業(yè)務(wù)方需要配置多碼率來(lái)匹配帶寬情況。配置多碼率轉(zhuǎn)碼后,播放器可根據(jù)終端網(wǎng)絡(luò)帶寬環(huán)境,自動(dòng)播放相應(yīng)碼率的直播流,從而提高播放體驗(yàn)。
目前多碼率轉(zhuǎn)碼只能通過(guò)視頻直播控制臺(tái)進(jìn)行配置。
- 登錄視頻直播控制臺(tái)。
單擊功能管理>直播轉(zhuǎn)碼,進(jìn)入直播轉(zhuǎn)碼頁(yè)面。
選擇您所需要配置的域名,單擊多碼率轉(zhuǎn)碼頁(yè)簽,單擊添加,添加多碼率轉(zhuǎn)碼模板組。
單擊基本信息,編輯多碼率轉(zhuǎn)碼模板組基本信息。
參數(shù)及說(shuō)明如下表:
參數(shù)
說(shuō)明
AppName
AppName必須與推流地址中的AppName名稱(chēng)對(duì)應(yīng),轉(zhuǎn)碼模板才能生效。同一個(gè)域名下AppName與模板組ID以復(fù)合主鍵的形式存在。
模板組ID
轉(zhuǎn)碼模板組ID。模板組ID是拼接多碼率轉(zhuǎn)碼地址的參數(shù),支持?jǐn)?shù)字、大小寫(xiě)字母、短橫線,添加不超過(guò)10個(gè)字符。
封裝格式
目前僅支持HLS。
觸發(fā)轉(zhuǎn)碼
目前僅支持推流時(shí)觸發(fā)轉(zhuǎn)碼。會(huì)產(chǎn)生轉(zhuǎn)碼費(fèi)用,暫不支持播流時(shí)觸發(fā)轉(zhuǎn)碼。
時(shí)間戳對(duì)齊
開(kāi)啟后每個(gè)模板的GOP項(xiàng)不可設(shè)置,采用源視頻的GOP。
單擊+添加模板,會(huì)添加一條模板信息。
單擊添加的模板,可以編輯模板參數(shù)。不同模板類(lèi)型需填寫(xiě)的參數(shù)可能不同,參數(shù)及說(shuō)明如下表:
參數(shù)
說(shuō)明
模板ID
轉(zhuǎn)碼模板組內(nèi)單個(gè)模板的ID。同一個(gè)模板組內(nèi)的模板ID不能重復(fù)。
轉(zhuǎn)碼模板類(lèi)型
標(biāo)準(zhǔn)模板、窄帶高清?模板和純音頻轉(zhuǎn)碼模板。
純音頻轉(zhuǎn)碼模板刪除視頻只輸出音頻流。
編碼格式(標(biāo)準(zhǔn)模板)
支持H.264和H.265。
分辨率
視頻輸出的分辨率,單位:像素。不同的分辨率檔位對(duì)應(yīng)不同的價(jià)格,分辨率檔位如下所示:
LD:(640×480)及以下。
SD:(1280×720)及以下。
HD:(1920×1080)及以下。
2K:(2560×1440)及以下。
4K:(3840×2160)及以下。
說(shuō)明轉(zhuǎn)碼計(jì)費(fèi)根據(jù)分辨率檔位(LD、SD、HD、2K、4K)決定,與通用模板中標(biāo)準(zhǔn)模板的模板ID(包括lld、lsd、lhd、lud)和窄帶高清?模板的模板ID(包括ld、sd、hd、ud)無(wú)關(guān),請(qǐng)勿混淆。
分辨率檔位判定規(guī)則:輸出規(guī)格按輸出視頻分辨率的長(zhǎng)邊和短邊是否屬于輸出規(guī)格劃定的范圍進(jìn)行判定。
以輸出SD(1280×720)規(guī)格為例:
如果輸出視頻的分辨率長(zhǎng)邊小于等于1280且短邊小于等于720,則該視頻屬于該輸出規(guī)格。
如果輸出視頻的長(zhǎng)邊大于1280或輸出視頻的短邊大于720,則該輸出視頻屬于更高的輸出規(guī)格。
視頻碼率
分辨率使用指定的碼率,單位:kbps。分辨率檔位指定的碼率如下所示:
LD:100~800。
SD:200~1500。
HD:500~4000。
2K:2000~8000。
4K:4000~30000。
視頻幀率
輸出視頻幀率,單位:FPS。數(shù)值低于或等于輸入幀率。
視頻GOP
輸出視頻GOP即Group of picture(圖像組),指兩個(gè)I幀之間的間隔,數(shù)值低于或等于輸入值。為了保障低延時(shí)效果不能大于3秒。
編碼格式(純音頻轉(zhuǎn)碼)
目前僅支持AAC編碼格式。
編碼檔次(純音頻轉(zhuǎn)碼)
LC-AAC:低復(fù)雜性高級(jí)音頻編碼。轉(zhuǎn)碼效率較高。
HE-AAC:高效性高級(jí)音頻編碼。在低音頻碼率(通常128 kbps以下)時(shí)音效要高于LC-AAC。
碼率(純音頻轉(zhuǎn)碼)
音頻碼率,取值范圍:8~1000。
聲道數(shù)(純音頻轉(zhuǎn)碼)
聲音軌道的個(gè)數(shù),取值:1或2。
帶寬上限閾值
可支持100Kbps~100Mbps范圍內(nèi)的整數(shù)或小數(shù),保留兩位小數(shù),建議設(shè)置為視頻碼率的1.2~1.5倍。
配置完成后,單擊確定。
目前多碼率轉(zhuǎn)碼流只能提供原畫(huà)地址以及HLS轉(zhuǎn)碼流地址。
播放多碼率轉(zhuǎn)碼流,需要增加
aliyunols=on
參數(shù),aliyunols=on
為必填的固定字段。
示例地址如下:
http://<DomainName>/<AppName>/<StreamName>_<轉(zhuǎn)碼模板組ID>.m3u8?aliyunols=on&auth_key=1234****
以下示例將向您展示多碼率轉(zhuǎn)碼在實(shí)際業(yè)務(wù)中的使用:
例如現(xiàn)在添加一個(gè)如下圖所示的多碼率轉(zhuǎn)碼配置。
在該模板組中自定義了四個(gè)級(jí)別的轉(zhuǎn)碼配置,不同級(jí)別參數(shù)值設(shè)置可參考本文檔系統(tǒng)預(yù)設(shè)模板。
然后進(jìn)行推流,使用Web端阿里云播放器進(jìn)行播放,通過(guò)調(diào)試可以發(fā)現(xiàn),播放器自動(dòng)根據(jù)終端網(wǎng)絡(luò)帶寬環(huán)境,播放了相應(yīng)碼率的轉(zhuǎn)碼流。
使用阿里云播放器,請(qǐng)參見(jiàn)播放器SDK。
H5自動(dòng)轉(zhuǎn)碼
超低延時(shí)直播RTS是以WebRTC信令交互方式為基礎(chǔ)的,原生瀏覽器WebRTC不支持視頻B幀和AAC編碼,H5播放自動(dòng)轉(zhuǎn)碼將為您實(shí)現(xiàn)自適應(yīng)的轉(zhuǎn)碼保障流暢播放。
在開(kāi)通超低延時(shí)直播時(shí)可以開(kāi)通H5自動(dòng)轉(zhuǎn)碼功能,具體操作請(qǐng)參見(jiàn)開(kāi)通超低延時(shí)直播功能。
H5自動(dòng)轉(zhuǎn)碼是在原生瀏覽器超低延時(shí)直播(artc://)下處理視頻B幀和AAC編碼等問(wèn)題,如需對(duì)視頻內(nèi)容進(jìn)行轉(zhuǎn)碼(如調(diào)整碼率,幀率,分辨率等)還是需要通過(guò)通用轉(zhuǎn)碼或自定義轉(zhuǎn)碼進(jìn)行配置。
H5自動(dòng)轉(zhuǎn)碼可以和通用轉(zhuǎn)碼或自定義轉(zhuǎn)碼功能疊加使用。
當(dāng)使用H5自動(dòng)轉(zhuǎn)碼時(shí)會(huì)產(chǎn)生純音頻轉(zhuǎn)碼類(lèi)型的費(fèi)用,詳見(jiàn)直播轉(zhuǎn)碼費(fèi)用。
視頻加密
在配置通用轉(zhuǎn)碼或自定義轉(zhuǎn)碼的過(guò)程中,您可能已注意到視頻加密相關(guān)字段,通過(guò)轉(zhuǎn)碼配置可以實(shí)現(xiàn)阿里云視頻加密功能,關(guān)于阿里云視頻加密功能說(shuō)明以及實(shí)現(xiàn)方式請(qǐng)參見(jiàn)阿里云視頻加密。
相關(guān)文檔
轉(zhuǎn)碼配置相關(guān)API,請(qǐng)參見(jiàn)直播轉(zhuǎn)碼。
使用Java SDK,可參見(jiàn)Java SDK使用說(shuō)明。