小視頻app開(kāi)發(fā)需要用到哪些編解碼知識(shí)
對(duì)于小視頻app開(kāi)發(fā)來(lái)說(shuō),視頻的編解碼工作是非常重要的一步。為什么說(shuō)它是非常重要的一步呢?因?yàn)橐曨l是需要經(jīng)過(guò)壓縮,也就是編解碼才能在app的前端進(jìn)行顯示的。如果編解碼出現(xiàn)問(wèn)題,就會(huì)導(dǎo)致在音視頻進(jìn)行重新編碼的過(guò)程中出現(xiàn)卡頓和不流暢的情況。接下來(lái),我們就簡(jiǎn)單來(lái)介紹一下有關(guān)于編解碼方面的相關(guān)知識(shí)。希望干貨類的文章能夠幫助到大家。
1. 編解碼器
指一個(gè)能夠?qū)σ粋€(gè)信號(hào)或者一個(gè)數(shù)據(jù)流進(jìn)行變換的設(shè)備或者程序。這里提到的變換既包括將信號(hào)或數(shù)據(jù)流進(jìn)行編碼或者提取得到編碼流的操作,也包括為了觀察或處理從這個(gè)編碼流中回復(fù)適合觀察或操作形式的操作。編解碼器經(jīng)常用于流媒體應(yīng)用之中,比如短視頻。
2. 容器
大多數(shù)的媒體數(shù)據(jù)流需要同時(shí)包含音頻數(shù)據(jù)和視頻數(shù)據(jù),通常會(huì)加入一些用于音頻和視頻數(shù)據(jù)同步的元數(shù)據(jù)。這幾種數(shù)據(jù)一般是會(huì)被封裝在一起的,這種封裝會(huì)通過(guò)視頻文件的格式來(lái)實(shí)現(xiàn)。比如我們常見(jiàn)的mov、mp4、avi等。
3. 采樣率
也可以叫做采樣速度或采樣頻率,可以定義每秒從連續(xù)信號(hào)中提取并組成離散信號(hào)的采樣個(gè)數(shù),(用赫茲來(lái)表示)。需要注意的是,不要將比特率與采樣率混在一起。
4.分辨率
泛指量測(cè)或顯示系統(tǒng)對(duì)細(xì)節(jié)的分辨能力。分辨率越高代表圖像品質(zhì)越好,越能表現(xiàn)出更多的細(xì)節(jié)。但相對(duì)的,因?yàn)榧o(jì)錄的信息越多,文件也就會(huì)越大。
(1)圖像分辨率:用以描述圖像細(xì)節(jié)分辨能力,同樣適用于數(shù)字圖像、膠卷圖像、及其他類型圖像。通常,“分辨率”被表示成每一個(gè)方向上的像素?cái)?shù)量,比如640x480等。
視頻分辨率 :數(shù)位視頻以像素為度量單位,而類比視頻以水平掃描線數(shù)量為度量單位。
5.壓縮方法
在進(jìn)行視頻的編解碼工作之前,需要先將視頻根據(jù)情況進(jìn)行壓縮。而視頻壓縮中存在兩種情況:即有損壓縮和無(wú)損壓縮。大多數(shù)的無(wú)損壓縮都采用了行程編碼算法,有損壓縮容易導(dǎo)致解壓縮后的數(shù)據(jù)和壓縮前的數(shù)據(jù)不同。所以在壓縮過(guò)程中丟失的信息是不可恢復(fù)的,幾乎所有高壓縮的算法都會(huì)采用有損壓縮,這樣一來(lái)才能達(dá)到低數(shù)據(jù)率的目標(biāo)。丟失的數(shù)據(jù)率與壓縮比有關(guān),壓縮比越小,丟失的數(shù)據(jù)越多,解壓縮后的效果就會(huì)越差。有損格式(例如mp3、WMA、AAC),無(wú)損格式(WAV)。
6.幀內(nèi)壓縮
也可以叫做空間壓縮。當(dāng)壓縮一幀圖像時(shí),只考慮本幀的數(shù)據(jù)而不考慮相鄰幀之間的冗余信息。一般采用有損壓縮的算法,因?yàn)閹瑑?nèi)壓縮時(shí)各個(gè)幀之間不存在相互關(guān)系,所以壓縮后的視頻數(shù)據(jù)依然可以以幀為單位進(jìn)行編輯。幀內(nèi)壓縮通常無(wú)法達(dá)到較高的壓縮。
7.幀間壓縮
是基于許多視頻或者動(dòng)畫(huà)的連續(xù)前后兩幀有很大的相關(guān)性,或者是前后兩幀信息變化很小。幀間壓縮又叫時(shí)間壓縮,可以通過(guò)比較時(shí)間軸上不同幀之間的數(shù)據(jù)進(jìn)行壓縮。幀間壓縮一半是無(wú)損的。
8.對(duì)稱和不對(duì)稱編碼
對(duì)稱性,是壓縮編碼的一個(gè)關(guān)鍵特征。對(duì)稱也意味著壓縮和解壓縮占用了相同的能力和時(shí)間,對(duì)稱算法適用于實(shí)時(shí)壓縮和傳送視頻,不過(guò)在短視頻應(yīng)用中,一般是先將視頻預(yù)先壓縮處理好之后再進(jìn)行播放,所以可采用不對(duì)稱編碼。不對(duì)稱編碼在進(jìn)行壓縮時(shí)需要耗費(fèi)大量的處理能力和時(shí)間,而解壓縮則能較好地實(shí)時(shí)回放,也可以通過(guò)不同的速度進(jìn)行壓縮和解壓縮。
可見(jiàn),在小視頻app開(kāi)發(fā)的過(guò)程中,為保證視頻能夠在前端正常播放,還需多注意視頻的編解碼方式,比如硬編解和軟編解如何選擇。只有這樣,才能真正的開(kāi)發(fā)出以用戶體驗(yàn)為主的app。