一、概述
1.流媒體協(xié)議是服務器與客戶端之間通信遵循的規(guī)定。當前網(wǎng)絡上主要的流媒體協(xié)議如表所示。
2.封裝格式的主要作用是把視頻碼流和音頻碼流按照一定的格式存儲在一個文件中。
3.視頻編碼的主要作用是將視頻像素數(shù)據(jù)(RGB,YUV等)壓縮成為視頻碼流,從而降低視頻的數(shù)據(jù)量。如果視頻不經(jīng)過壓縮編碼的話,體積通常是非常大的,一部電影可能就要上百G的空間。視頻編碼是視音頻技術中最重要的技術之一。視頻碼流的數(shù)據(jù)量占了視音頻總數(shù)據(jù)量的絕大部分。高效率的視頻編碼在同等的碼率下,可以獲得更高的視頻質量。
4.音頻編碼的主要作用是將音頻采樣數(shù)據(jù)(PCM等)壓縮成為音頻碼流,從而降低音頻的數(shù)據(jù)量。音頻編碼也是互聯(lián)網(wǎng)視音頻技術中一個重要的技術。但是一般情況下音頻的數(shù)據(jù)量要遠小于視頻的數(shù)據(jù)量,因而即使使用稍微落后的音頻編碼標準,而導致音頻數(shù)據(jù)量有所增加,也不會對視音頻的總數(shù)據(jù)量產(chǎn)生太大的影響。高效率的音頻編碼在同等的碼率下,可以獲得更高的音質。

二、流媒體協(xié)議

三、封裝格式

除了AVI之外,其他封裝格式都支持流媒體,即可以“邊下邊播”。有些格式更“萬能”一些,支持的視音頻編碼標準多一些,比如MKV。而有些格式則支持的相對比較少,比如說RMVB。
四、視頻格式

不同編碼規(guī)則的對比


熵編碼:如果要求編碼過程中不丟失信息量,即要求保存信息熵(對信息量多少的度量),這種信息保持編碼叫熵編碼,是根據(jù)消息出現(xiàn)概率的分布特性而進行的,是無損數(shù)據(jù)壓縮編碼。
I.P.B:
I幀表示關鍵幀,你可以理解為這一幀畫面的完整保留;解碼時只需要本幀數(shù)據(jù)就可以完成(因為包含完整畫面) P幀表示的是這一幀跟之前的一個關鍵幀(或P幀)的差別,解碼時需要用之前緩存的畫面疊加上本幀定義的差別,生成最終畫面。(也就是差別幀,P幀沒有完整畫面數(shù)據(jù),只有與前一幀的畫面差別的數(shù)據(jù)) B幀是雙向差別幀,也就是B幀記錄的是本幀與前后幀的差別(具體比較復雜,有4種情況,但我這樣說簡單些,有興趣可以看看我上面提供的資料),換言之,要解碼B幀,不僅要取得之前的緩存畫面,還要解碼之后的畫面,通過前后畫面的與本幀數(shù)據(jù)的疊加取得最終的畫面。B幀壓縮率高,但是解碼時CPU會比較累。
去塊濾波:由于重構塊的邊緣像素與塊內(nèi)部像素相比恢復精度要低,塊效應是目前壓縮編碼最明顯的視覺失真之一(圖像相關性受到破壞)。
H.264 編碼技術:
1.更高的編碼效率:同H.263等標準的特率效率相比,能夠平均節(jié)省大于50%的碼率。
2.高質量的視頻畫面:H.264能夠在低碼率情況下提供高質量的視頻圖像,在較低帶寬上提供高質量的圖像傳輸是H.264的應用亮點。和MPEG2和 MPEG4 ASP等壓縮技術相比,在同等圖像質量下,采用H.264技術壓縮后的數(shù)據(jù)量只有MPEG2的1/8,MPEG4的1/3。顯然,H.264壓縮技術的采 用將大大節(jié)省用戶的下載時間和數(shù)據(jù)流量收費。
3.提高網(wǎng)絡適應能力:H.264可以工作在實時通信應用(如視頻會議)低延時模式下,也可以工作在沒有延時的視頻存儲或視頻流服務器中。
4.采用混合編碼結構:同H.263相同,H.264也使用采用DCT(離散余弦變換)變換編碼加DPCM的差分編碼的混合編碼結構,還增加了如多模式運動估計、幀內(nèi)預測、多幀預測、基于內(nèi)容的變長編碼、4x4二維整數(shù)變換等新的編碼方式,提高了編碼效率。
5.H.264的編碼選項較少:在H.263中編碼時往往需要設置相當多選項,增加了編碼的難度,而H.264做到了力求簡潔的“回歸基本”,降低了編碼時復雜度。
6.H.264可以應用在不同場合:H.264可以根據(jù)不同的環(huán)境使用不同的傳輸和播放速率,并且提供了豐富的錯誤處理工具,可以很好的控制或消除丟包和誤碼。
7.錯誤恢復功能:H.264提供了解決網(wǎng)絡傳輸包丟失的問題的工具,適用于在高誤碼率傳輸?shù)臒o線網(wǎng)絡中傳輸視頻數(shù)據(jù)。
8.較高的復雜度:264性能的改進是以增加復雜性為代價而獲得的。據(jù)估計,H.264編碼的計算復雜度大約相當于H.263的3倍,解碼復雜度大約相當于H.263的2倍。
較新的視頻格式
RM格式
Networks公司所制定的音頻視頻壓縮規(guī)范稱之為Real Media,用戶可以使用RealPlayer或RealOne Player對符合RealMedia技術規(guī)范的網(wǎng)絡音頻/視頻資源進行實況轉播,并且RealMedia還可以根據(jù)不同的網(wǎng)絡傳輸速率制定出不同的壓縮比率,從而實現(xiàn)在低速率的網(wǎng)絡上進行影像數(shù)據(jù)實時傳送和播放。這種格式的另一個特點是用戶使用RealPlayer或RealOne Player播放器可以在不下載音頻/視頻內(nèi)容的條件下實現(xiàn)在線播放。
RMVB格式
這是一種由RM視頻格式升級延伸出的新視頻格式,它的先進之處在于RMVB視頻格式打破了原先RM格式那種平均壓縮采樣的方式,在保證平均壓縮比的基礎上合理利用比特率資源,就是說靜止和動作場面少的畫面場景采用較低的編碼速率,這樣可以留出更多的帶寬空間,而這些帶寬會在出現(xiàn)快速運動的畫面場景時被利用。這樣在保證了靜止畫面質量的前提下,大幅地提高了運動圖像的畫面質量,從而圖像質量和文件大小之間就達到了微妙的平衡。
五、音頻格式

MP3(MPEG-1 audio layer 3) 類型:Audio 制定者:MPEG 所需頻寬:128~112kbps(壓縮10~12倍) 特性:編碼復雜,用于互聯(lián)網(wǎng)上的高質量聲音的傳輸,如MP3音樂壓縮10倍,2聲道。MP3是在綜合MUSICAM和ASPEC的優(yōu)點的基礎上提出的混合壓縮技術,在當時的技術條件下,MP3的復雜度顯得相對較高,編碼不利于實時,但由于MP3在低碼率條件下高水準的聲音質量,使得它成為軟解壓及網(wǎng)絡廣播的寵兒。 優(yōu)點:壓縮比高,適合用于互聯(lián)網(wǎng)上的傳播 缺點:MP3在128KBitrate及以下時,會出現(xiàn)明顯的高頻丟失 應用領域:voip 版稅方式:Free 備注:同MPEG-1 audio layer 1
WMA(Windows Media Audio)
類型:Audio
制定者:微軟公司
所需頻寬:320~112kbps(壓縮10~12倍)
特性:當Bitrate小于128K時,WMA幾乎在同級別的所有有損編碼格式中表現(xiàn)得最出色,但似乎128k是WMA一個檻,當Bitrate再往上提升時,不會有太多的音質改變。
優(yōu)點:當Bitrate小于128K時,WMA最為出色且編碼后得到的音頻文件很小。
缺點:當Bitrate大于128K時,WMA音質損失過大。WMA標準不開放,由微軟掌握。
應用領域:voip
版稅方式:按個收取
備注:WMA的全稱是Windows Media Audio,它是微軟公司推出的與MP3格式齊名的一種新的音頻格式。由于WMA在壓縮比和音質方面都超過了MP3,更是遠勝于RA(Real Audio),即使在較低的采樣頻率下也能產(chǎn)生較好的音質,再加上WMA有微軟的Windows Media Player做其強大的后盾,所以一經(jīng)推出就贏得一片喝彩。
較新的音頻格式
APE
一種新興的無損音頻編碼,可以提供50-70%的壓縮比,雖然比起有損編碼來太不值得一提了,但對于追求完美音質的朋友簡直是天大的福音。APE可以做到真正的無損,而不僅是聽起來無損,壓縮比也要比類似的無損格式要好。
六.代碼實現(xiàn)對編碼格式的控制
設置音頻編碼
MediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.xxx);
設置視頻編碼
MediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.xxx);
七.總結
要想得到小的壓縮體積,高質量的音頻視頻文件,要不斷優(yōu)化編碼算法也要有相應的硬件支持,不同的文件格式適用于不同的領域和情景,我們要根據(jù)應用場景選擇相應的文件類型,好的編碼格式終會發(fā)揚光大,落后的編碼格式終究會淘汰。
*本人從事Android Camera相關開發(fā)已有5年,
*目前在深圳上班,
*小伙伴記得點我頭像,看【個人介紹】進行關注哦,希望和更多的小伙伴一起交流 ~
-------- 2021.01.29 深圳 00:03