今天在收集視頻類的API信息的時(shí)候,收獲也是比較多的,一般來(lái)說(shuō),API開(kāi)發(fā)成本還是比較合適,對(duì)接也較簡(jiǎn)單,可以快速驗(yàn)證商業(yè)模式和用戶體驗(yàn),換一句話說(shuō)可以適用MVP產(chǎn)品,但同時(shí)API經(jīng)過(guò)對(duì)接平臺(tái),服務(wù)商也會(huì)獲取你平臺(tái)的相關(guān)數(shù)據(jù)。說(shuō)完了收獲,再說(shuō)一下,由于自己比較好奇,研究了一下視頻播放的邏輯。
其實(shí)視頻就是連續(xù)的圖像變化每秒超過(guò)24幀畫面以上時(shí),根據(jù)視覺(jué)暫留原理,人眼無(wú)法辨別單幅的靜態(tài)畫面;看上去是平滑連續(xù)的視覺(jué)效果,這樣連續(xù)的畫面叫就做視頻,概括其實(shí)視頻就是一幀一幀的圖片。
那么24幀指的是什么呢?就是幀率,指的是視頻格式每秒鐘播放的靜態(tài)畫面數(shù)量。典型的畫面更新率由早期的每秒6或8張,至現(xiàn)今的每秒120張不等。
我們儲(chǔ)存一部90分鐘沒(méi)壓縮的電影需要296GB的,2部電影便可占滿我們電腦整個(gè)硬盤,所以我們需要對(duì)視頻進(jìn)行壓縮,這種視頻壓縮技術(shù)就是我們所說(shuō)的編碼。解碼就是將編碼的視頻解壓縮處理。
封裝格式指的是壓縮過(guò)的視頻數(shù)據(jù)和音頻數(shù)據(jù)打包成一個(gè)文件的規(guī)范。我們常見(jiàn)的mp4,flv,avi,rmvb,mkv等,都是代表視頻的封裝格式。
以上就是視頻播放的基本要理解的知識(shí)點(diǎn)了,分別是視頻含義、幀率、解編碼、封裝格式,其實(shí)播放視頻的基本流程就是:解協(xié)議 → 解封裝 → 解碼 → 視音頻同步。
解協(xié)議:
就是將流媒體協(xié)議的數(shù)據(jù),解析為標(biāo)準(zhǔn)的相應(yīng)的封裝格式數(shù)據(jù)。視音頻在網(wǎng)絡(luò)上傳播的時(shí)候,常常采用各種流媒體協(xié)議,這些協(xié)議在傳輸視音頻數(shù)據(jù)的同時(shí),也會(huì)傳輸一些信令數(shù)據(jù)。這些信令數(shù)據(jù)包括對(duì)播放的控制(播放,暫停,停止),或者對(duì)網(wǎng)絡(luò)狀態(tài)的描述等。解協(xié)議的過(guò)程中會(huì)去除掉信令數(shù)據(jù)而只保留視音頻數(shù)據(jù)。
解封裝:
就是將輸入的封裝格式的數(shù)據(jù),分離成為音頻流壓縮編碼數(shù)據(jù)和視頻流壓縮編碼數(shù)據(jù)。它的作用就是將已經(jīng)壓縮編碼的視頻數(shù)據(jù)和音頻數(shù)據(jù)按照一定的格式放到一起。
解碼:
就是將視頻/音頻壓縮編碼數(shù)據(jù),解碼成為非壓縮的視頻/音頻原始數(shù)據(jù)。解碼是整個(gè)系統(tǒng)中最重要也是最復(fù)雜的一個(gè)環(huán)節(jié)。通過(guò)解碼,壓縮編碼的視頻數(shù)據(jù)輸出成為非壓縮的顏色數(shù)據(jù);壓縮編碼的音頻數(shù)據(jù)輸出成為非壓縮的音頻抽樣數(shù)據(jù)。
視音頻同步:
就是根據(jù)解封裝模塊處理過(guò)程中獲取到的參數(shù)信息,同步解碼出來(lái)的視頻和音頻數(shù)據(jù),并將視頻音頻數(shù)據(jù)送至系統(tǒng)的顯卡和聲卡播放出來(lái)。