omniture

七牛數(shù)據(jù)推出實(shí)時(shí)流式轉(zhuǎn)碼和多碼率自適應(yīng)轉(zhuǎn)碼功能

視頻分發(fā)不用愁:基于HLS的實(shí)時(shí)流式轉(zhuǎn)碼、多碼率自適應(yīng)支持
2016-10-24 13:43 10818
為了幫助用戶節(jié)省帶寬、快速分發(fā)視頻內(nèi)容、保證在網(wǎng)絡(luò)不好的情況下流暢播放,七牛數(shù)據(jù)處理產(chǎn)品推出了實(shí)時(shí)流式轉(zhuǎn)碼和多碼率自適應(yīng)轉(zhuǎn)碼這兩個(gè)功能。

北京2016年10月24日電 /美通社/ -- 隨著互聯(lián)網(wǎng)帶寬的不斷提升,視頻內(nèi)容的分發(fā)與播放,在新聞娛樂、在線教育、社交網(wǎng)絡(luò)和自媒體場景下越來越普遍。在滿足成本預(yù)算的情況下、保證視頻的快速分發(fā)與播放,也成了各家視頻內(nèi)容提供商不斷優(yōu)化的方向。為了幫助用戶節(jié)省帶寬、快速分發(fā)視頻內(nèi)容、保證在網(wǎng)絡(luò)不好的情況下流暢播放,七牛數(shù)據(jù)處理產(chǎn)品推出了實(shí)時(shí)流式轉(zhuǎn)碼和多碼率自適應(yīng)轉(zhuǎn)碼這兩個(gè)功能。

1. 實(shí)時(shí)流式轉(zhuǎn)碼

目前國內(nèi)外主流的基礎(chǔ)音視頻云服務(wù),都是使用的異步轉(zhuǎn)碼模式,而異步轉(zhuǎn)碼有很多的問題。

異步轉(zhuǎn)碼的問題

異步轉(zhuǎn)碼通常要經(jīng)過上傳-轉(zhuǎn)碼-分發(fā)-播放的流程。使用異步轉(zhuǎn)碼,往往會(huì)給開發(fā)者和終端用戶帶來一定的局限性。

首先,視頻轉(zhuǎn)碼需要一定時(shí)間,片源清晰度越高轉(zhuǎn)碼耗費(fèi)的時(shí)間越是長久。異步轉(zhuǎn)碼方案決定了視頻內(nèi)容生產(chǎn)者必須要等待視頻完全轉(zhuǎn)碼完畢后才能進(jìn)行內(nèi)容分發(fā)播放,這會(huì)為視頻內(nèi)容的生產(chǎn)和消費(fèi)之間帶來一定延遲效應(yīng)。

其次,無論是開發(fā)者使用視頻服務(wù) SDK 輪詢,或者自建回調(diào)服務(wù)接受回調(diào)結(jié)果,還是直接通過人工方式定期查詢轉(zhuǎn)碼結(jié)果,都會(huì)給開發(fā)者帶來一定的心智負(fù)擔(dān)。同時(shí),基礎(chǔ)視頻服務(wù)與上層業(yè)務(wù)產(chǎn)生了一定的耦合,任何使用變動(dòng)都會(huì)影響上層業(yè)務(wù)。

再者,開發(fā)者需要預(yù)先設(shè)定轉(zhuǎn)碼參數(shù),分辨率碼率等相對固定。任何對轉(zhuǎn)碼參數(shù)的修改,都需要重新請求轉(zhuǎn)碼才能完成,無法由終端用戶設(shè)置參數(shù)或者自適應(yīng)用戶請求場景。

此外,從業(yè)務(wù)上看,視頻生產(chǎn)者無法預(yù)測視頻播放情況,會(huì)有視頻轉(zhuǎn)碼完卻沒有終端用戶播發(fā)的情況,為此開發(fā)者需要付出多余的視頻服務(wù)和存儲(chǔ)花費(fèi)。

七牛實(shí)時(shí)流式轉(zhuǎn)碼

針對上述異步轉(zhuǎn)碼的局限性,七牛推出了實(shí)時(shí)轉(zhuǎn)碼服務(wù)。與異步轉(zhuǎn)碼相比,實(shí)時(shí)轉(zhuǎn)碼僅需上傳-分發(fā)-播放的流程,將轉(zhuǎn)碼和播放合二為一,即邊轉(zhuǎn)邊播,按需轉(zhuǎn)碼。實(shí)時(shí)轉(zhuǎn)碼使用流媒體協(xié)議(目前支持 HLS 協(xié)議)進(jìn)行網(wǎng)絡(luò)分發(fā),使用七牛多媒體處理服務(wù)進(jìn)行分布式轉(zhuǎn)碼,使用七牛對象存儲(chǔ)服務(wù)作為基礎(chǔ)存儲(chǔ),結(jié)合七牛CDN服務(wù)進(jìn)行網(wǎng)絡(luò)加速,構(gòu)建了完整的轉(zhuǎn)碼播放方案。

實(shí)時(shí)流式轉(zhuǎn)碼
實(shí)時(shí)流式轉(zhuǎn)碼

云端收到用戶播放請求,讀取源視頻,根據(jù)播放參數(shù)將源視頻快速分割成子視頻分塊,向多媒體處理集群分發(fā)任務(wù),并生成相應(yīng)的播放索引(如 m3u8)返回給用戶。并發(fā)執(zhí)行的轉(zhuǎn)碼任務(wù)結(jié)果將緩存在云端,或者按用戶需求進(jìn)行持久化存儲(chǔ)。通常,用戶按照索引依次請求視頻分塊,按序播放;而當(dāng)遇到快捷或者拖拽時(shí)間軸時(shí),云端會(huì)相應(yīng)進(jìn)行實(shí)時(shí)加速轉(zhuǎn)碼和任務(wù)二次調(diào)度,降低用戶播放卡頓。

七牛實(shí)時(shí)流式轉(zhuǎn)碼服務(wù)有如下優(yōu)點(diǎn):

  • 視頻生產(chǎn)者無須理解轉(zhuǎn)碼過程,無須等待轉(zhuǎn)碼任務(wù)完成,上傳完視頻后僅需按約定API協(xié)議編輯URL即可進(jìn)行內(nèi)容分發(fā),轉(zhuǎn)碼參數(shù)直接包含在鏈接中。
  • 開發(fā)者解耦視頻轉(zhuǎn)碼服務(wù)和自身業(yè)務(wù)開發(fā),降低心智負(fù)擔(dān),加速業(yè)務(wù)開發(fā)。
  • 轉(zhuǎn)碼請求和播放請求合二為一。終端用戶能夠按需發(fā)起請求,所見即所得;視頻生產(chǎn)者,僅需為熱播視頻付費(fèi),無需額外付出冷視頻轉(zhuǎn)碼和存儲(chǔ)成本。
  • 音視頻分段并行轉(zhuǎn)碼,使用大規(guī)模多媒體計(jì)算集群進(jìn)行計(jì)算,讓轉(zhuǎn)碼任務(wù)在云端可任意調(diào)度、遷移、擴(kuò)展收縮,提高計(jì)算資源利用效率,降低成本。
  • 實(shí)時(shí)轉(zhuǎn)碼播放請求延遲低,首屏快速打開,減少播放緩沖。

2. 多碼率自適應(yīng)轉(zhuǎn)碼

單個(gè)碼率視頻分發(fā)的問題

在視頻分發(fā)之前,由于各個(gè)終端(iOS、Android、PC 端)的網(wǎng)絡(luò)帶寬、屏幕分辨率的不同,內(nèi)容提供者會(huì)為不同的客戶端生成固定碼率的視頻文件,這一定程度上保證了視頻的流暢性,但是這會(huì)帶來一定的問題。

由于端上播放的是某種碼率的視頻,在網(wǎng)絡(luò)帶寬、屏幕分辨率滿足的情況下,用戶無法選擇更高清晰度的碼率,沒法為用戶提供更好的播放體驗(yàn)。反之,如果網(wǎng)絡(luò)質(zhì)量不好,用戶也無法切換到更低碼率的視頻,從而導(dǎo)致播放卡頓。

七牛多碼率自適應(yīng)轉(zhuǎn)碼

單碼率視頻無法應(yīng)對客戶端網(wǎng)絡(luò)帶寬環(huán)境的變化,提供給客戶優(yōu)質(zhì)的播放體驗(yàn),但是HLS多碼率自適應(yīng)特性正好解決了這一問題。

HLS (全稱 HTTP Live Streaming),是由蘋果公司提出的基于 HTTP 的流媒體網(wǎng)絡(luò)傳輸協(xié)議。利用該協(xié)議,客戶端可以接收持續(xù)的多媒體流來自于一個(gè)普通的 web 服務(wù)器。并且支持客戶端在不同的網(wǎng)絡(luò)帶寬環(huán)境下,播放不同碼率、分辨率的視頻。

HLS 的實(shí)現(xiàn)原理是把整個(gè)多媒體文件切成一個(gè)個(gè)小的基于 HTTP 的資源 (MPEG-2 Transport Stream 格式的文件),生成一個(gè)包含元數(shù)據(jù)的擴(kuò)展 M3U (M3U8) Playlist 文件,每次只下載列表中的一些資源,客戶端根據(jù)帶寬環(huán)境可以選擇不同的的資源。M3U8 是一種播放多媒體列表的文件格式,可以指定一個(gè)或多個(gè)多媒體資源的位置,并且 M3U8 Playlist 中可以包含多個(gè)子 M3U8 文件。

七牛官方提供的 HLS 多碼率自適應(yīng)功能,幫助客戶從單一原視頻,一步生成多碼率自適應(yīng)的多媒體文件,只需要提供原始資源和操作命令。實(shí)現(xiàn)原理如下圖所示:

自適應(yīng)轉(zhuǎn)碼
自適應(yīng)轉(zhuǎn)碼

更多信息,請瀏覽:https://www.qiniu.com

消息來源:七牛云
China-PRNewsire-300-300.png
相關(guān)鏈接:
全球TMT
微信公眾號(hào)“全球TMT”發(fā)布全球互聯(lián)網(wǎng)、科技、媒體、通訊企業(yè)的經(jīng)營動(dòng)態(tài)、財(cái)報(bào)信息、企業(yè)并購消息。掃描二維碼,立即訂閱!
collection