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