整理雷神FFMPEG視音頻編解碼基礎(chǔ)知識

雷神CSDN:?雷霄驊(leixiaohua1020)的專欄 - CSDN博客

備注: 整理自雷霄驊CSDN蚊锹,雷神總結(jié)分享的非常好,因?yàn)樽约合爰由钣∠蠖鴮懼神旧鲜菑?fù)制粘貼牡昆,向雷神致敬!

一 音視頻基礎(chǔ)知識

? ? 1 封裝格式: 我們常見的視頻格式摊欠,例如:avi, rmvb, flv, mkv等等丢烘,這些格式就代表封裝格式。定義:把視頻數(shù)據(jù)和音頻數(shù)據(jù)打包成一個(gè)文件規(guī)范些椒。當(dāng)然我們僅僅通過文件后綴很難看出來具體使用了什么視音頻編碼標(biāo)準(zhǔn)铅协。

? ? 2. MediaInfo 工具: 專門查看視音頻格式的工具(MediaInfo使用簡介(新版本支持HEVC) - CSDN博客

? ? 3. 視頻播放器原理:視頻播放技術(shù)主要包含幾點(diǎn): 封裝技術(shù),視頻壓縮編碼技術(shù)及音頻壓縮編碼技術(shù)摊沉。如果考慮到網(wǎng)絡(luò)傳輸?shù)脑捄罚€包括流媒體協(xié)議技術(shù)。

? ??MPlayer源代碼分析 - CSDN博客

? ??Media Player Classic - HC 源代碼分析 1:整體結(jié)構(gòu) - CSDN博客

? ??FFplay源代碼分析

? ??XBMC源代碼分析

? ? 視頻播放器播放一個(gè)互聯(lián)網(wǎng)視頻文件,需要以下步驟:解協(xié)議骏全,解封裝苍柏,解碼視音頻,視音頻同步姜贡。如果播放本地文件則不需要解協(xié)議试吁。

? ? 此處添加流程圖:

? ? 1)解協(xié)議作用:就是將流媒體協(xié)議數(shù)據(jù)解析為標(biāo)準(zhǔn)的相應(yīng)的封裝格式數(shù)據(jù)。視音頻在網(wǎng)絡(luò)上傳播的時(shí)候常常采用各種流媒體協(xié)議楼咳,例如:HTTP, RTMP, 或MMS等熄捍。這些協(xié)議在傳輸音視頻數(shù)據(jù)的同事也會(huì)傳輸一些信令數(shù)據(jù)。這些信令數(shù)據(jù)包括對播放器的控制(播放母怜,暫停余耽,停止), 或者對網(wǎng)絡(luò)狀態(tài)的描述等苹熏。解協(xié)議的過程中會(huì)去掉信令數(shù)據(jù)而保留視音頻數(shù)據(jù)碟贾。例如,采用RTMP協(xié)議傳輸?shù)臄?shù)據(jù)轨域,經(jīng)過解協(xié)議操作后袱耽,輸出FLV格式的數(shù)據(jù)。

? ? 2) 解封裝作用:將輸入的封裝格式的數(shù)據(jù)分離成音頻流壓縮編碼數(shù)據(jù)和視頻壓縮編碼數(shù)據(jù)干发。例如:FLV格式數(shù)據(jù)經(jīng)過解封裝操作之后輸出H.264編碼的視頻碼流和AAC編碼的音頻碼流朱巨。

? ? 3)解碼作用:就是將視頻/音頻壓縮編碼數(shù)據(jù),解碼成非壓縮的視頻/音頻原始數(shù)據(jù)枉长。音頻的壓縮編碼標(biāo)準(zhǔn)包含:ACC, MP3, AC-3等蔬崩。視頻的壓縮編碼標(biāo)準(zhǔn)包含:H.264, MPEG2, VC-1等。解碼是整個(gè)系統(tǒng)中最重要的也是最復(fù)雜的一個(gè)環(huán)節(jié)搀暑。通過解碼, 壓縮編碼的視頻輸出成為非壓縮的顏色數(shù)據(jù)跨琳,例如YUV420P, RGB等自点。壓縮編碼的音頻數(shù)據(jù)輸出成為非壓縮的音頻抽樣數(shù)據(jù),例如PCM數(shù)據(jù)脉让。

? ? 4)視音頻同步作用:就是根據(jù)解封裝模塊處理過程中獲取到的參數(shù)信息桂敛,同步解碼出來的視頻和音頻數(shù)據(jù)。并將視頻音頻數(shù)據(jù)送至系統(tǒng)的顯卡和聲卡播放出來溅潜。


RTSP+RTP經(jīng)常用于IPTV領(lǐng)域术唬。因?yàn)槠洳捎肬DP傳輸視音頻,支持組播滚澜,效率較高粗仓。但其缺點(diǎn)是網(wǎng)絡(luò)不好的情況下可能會(huì)丟包,影響視頻觀看質(zhì)量。因而圍繞IPTV的視頻質(zhì)量的研究還是挺多的借浊。

因?yàn)榛ヂ?lián)網(wǎng)網(wǎng)絡(luò)環(huán)境的不穩(wěn)定性塘淑,RTSP+RTP較少用于互聯(lián)網(wǎng)視音頻傳輸÷旖铮互聯(lián)網(wǎng)視頻服務(wù)通常采用TCP作為其流媒體的傳輸層協(xié)議存捺,因而像RTMP,MMS曙蒸,HTTP這類的協(xié)議廣泛用于互聯(lián)網(wǎng)視音頻服務(wù)之中捌治。這類協(xié)議不會(huì)發(fā)生丟包,因而保證了視頻的質(zhì)量纽窟,但是傳輸?shù)男蕰?huì)相對低一些肖油。

此外RTMFP是一種比較新的流媒體協(xié)議,特點(diǎn)是支持P2P师倔。


由表可見构韵,除了AVI之外,其他封裝格式都支持流媒體趋艘,即可以“邊下邊播”疲恢。有些格式更“萬能”一些,支持的視音頻編碼標(biāo)準(zhǔn)多一些瓷胧,比如MKV显拳。而有些格式則支持的相對比較少,比如說RMVB搓萧。

這些封裝格式都有相關(guān)的文檔杂数,在這里就不一一例舉了。

輔助學(xué)習(xí)的小項(xiàng)目:

TS封裝格式分析器

FLV封裝格式分析器

視頻編碼

視頻編碼的主要作用是將視頻像素?cái)?shù)據(jù)(RGB瘸洛,YUV等)壓縮成為視頻碼流揍移,從而降低視頻的數(shù)據(jù)量。如果視頻不經(jīng)過壓縮編碼的話反肋,體積通常是非常大的那伐,一部電影可能就要上百G的空間。視頻編碼是視音頻技術(shù)中最重要的技術(shù)之一石蔗。視頻碼流的數(shù)據(jù)量占了視音頻總數(shù)據(jù)量的絕大部分罕邀。高效率的視頻編碼在同等的碼率下,可以獲得更高的視頻質(zhì)量养距。

視頻編碼的簡單原理可以參考:視頻壓縮編碼和音頻壓縮編碼的基本原理

注:視頻編碼技術(shù)在整個(gè)視音頻技術(shù)中應(yīng)該是最復(fù)雜的技術(shù)诉探。如果沒有基礎(chǔ)的話,可以先買一些書看一下原理棍厌,比如說《現(xiàn)代電視原理》《數(shù)字電視廣播原理與應(yīng)用》(本科的課本)中的部分章節(jié)


當(dāng)前使用最多的視頻編碼方案就是H.264

?主流編碼標(biāo)準(zhǔn)

H.264僅僅是一個(gè)編碼標(biāo)準(zhǔn)肾胯,而不是一個(gè)具體的編碼器竖席,H.264只是給編碼器的實(shí)現(xiàn)提供參照用的。

基于H.264標(biāo)準(zhǔn)的編碼器還是很多的阳液,究竟孰優(yōu)孰劣怕敬?可參考:MSU出品的?H.264編碼器比較(2011.5)

在學(xué)習(xí)視頻編碼的時(shí)候,可能會(huì)用到各種編碼器(實(shí)際上就是一個(gè)exe文件)帘皿,他們常用的編碼命令可以參考:各種視頻編碼器的命令行格式

學(xué)習(xí)H.264最標(biāo)準(zhǔn)的源代碼东跪,就是其官方標(biāo)準(zhǔn)JM了。但是要注意鹰溜,JM速度非常的慢虽填,是無法用于實(shí)際的:H.264參考軟件JM12.2RC代碼詳細(xì)流程

實(shí)際中使用最多的就是x264了,性能強(qiáng)悍(超過了很多商業(yè)編碼器)曹动,而且開源斋日。其基本教程網(wǎng)上極多,不再贅述墓陈。編碼時(shí)候可參考:x264編碼指南——碼率控制恶守。編碼后統(tǒng)計(jì)值的含義:X264輸出的統(tǒng)計(jì)值的含義(X264 Stats Output)

Google推出的VP8屬于和H.264同一時(shí)代的標(biāo)準(zhǔn)」北兀總體而言兔港,VP8比H.264要稍微差一點(diǎn)。有一篇寫的很好的VP8的介紹文章:深入了解?VP8仔拟。除了在技術(shù)領(lǐng)域衫樊,VP8和H.264在專利等方面也是打的不可開交,可參考文章:WebM(VP8) vs H.264

此外利花,我國還推出了自己的國產(chǎn)標(biāo)準(zhǔn)AVS科侈,性能也不錯(cuò),但目前比H.264還是要稍微遜色一點(diǎn)炒事。不過感覺我國在視頻編解碼領(lǐng)域還算比較先進(jìn)的臀栈,可參考:視頻編碼國家標(biāo)準(zhǔn)AVS與H.264的比較(節(jié)選)

近期又推出了AVS新一代的版本AVS+,具體的性能測試還沒看過挠乳。不過據(jù)說AVS+得到了國家政策上非常強(qiáng)力的支持权薯。

下一代編碼標(biāo)準(zhǔn)

下一代的編解碼標(biāo)準(zhǔn)就要數(shù)HEVC和VP9了。VP9是Google繼VP8之后推出的新一代標(biāo)準(zhǔn)欲侮。VP9和HEVC相比,要稍微遜色一些肋联。它們的對比可參考:(1)HEVC與VP9編碼效率對比?(2)HEVC威蕉,VP9,x264性能對比

HEVC在未來擁有很多大的優(yōu)勢橄仍,可參考:HEVC將會(huì)取代H.264的原因

學(xué)習(xí)HEVC最標(biāo)準(zhǔn)的源代碼韧涨,就是其官方標(biāo)準(zhǔn)HM了牍戚。其速度比H.264的官方標(biāo)準(zhǔn)代碼又慢了一大截,使用可參考:HEVC學(xué)習(xí)——?HM的使用

未來實(shí)際使用的HEVC開源編碼器很有可能是x265虑粥,目前該項(xiàng)目還處于發(fā)展階段如孝,可參考:x265(HEVC編碼器,基于x264)介紹娩贷。x265的使用可以參考:HEVC(H.265)標(biāo)準(zhǔn)的編碼器(x265第晰,DivX265)試用

主流以及下一代編碼標(biāo)準(zhǔn)之間的比較可以參考文章:視頻編碼方案之間的比較(HEVC,H.264彬祖,MPEG2等)

此外茁瘦,在碼率一定的情況下,幾種編碼標(biāo)準(zhǔn)的比較可參考:限制碼率的視頻編碼標(biāo)準(zhǔn)比較(包括MPEG-2储笑,H.263甜熔,?MPEG-4,以及?H.264)

結(jié)果大致是這樣的:

HEVC > VP9 > H.264> VP8 > MPEG4 > H.263 > MPEG2突倍。

截了一些圖腔稀,可以比較直觀的了解各種編碼標(biāo)準(zhǔn):

HEVC碼流簡析:HEVC碼流簡單分析

H.264碼流簡析:H.264簡單碼流分析

MPEG2碼流簡析:MPEG2簡單碼流分析

以上簡析使用的工具:視頻碼流分析工具

小工具:?H.264碼流分析器

?音頻編碼

音頻編碼的主要作用是將音頻采樣數(shù)據(jù)(PCM等)壓縮成為音頻碼流,從而降低音頻的數(shù)據(jù)量羽历。音頻編碼也是互聯(lián)網(wǎng)視音頻技術(shù)中一個(gè)重要的技術(shù)焊虏。但是一般情況下音頻的數(shù)據(jù)量要遠(yuǎn)小于視頻的數(shù)據(jù)量,因而即使使用稍微落后的音頻編碼標(biāo)準(zhǔn)窄陡,而導(dǎo)致音頻數(shù)據(jù)量有所增加炕淮,也不會(huì)對視音頻的總數(shù)據(jù)量產(chǎn)生太大的影響。高效率的音頻編碼在同等的碼率下跳夭,可以獲得更高的音質(zhì)涂圆。

音頻編碼的簡單原理可以參考:視頻壓縮編碼和音頻壓縮編碼的基本原理

主要音頻編碼一覽

名稱推出機(jī)構(gòu)推出時(shí)間目前使用領(lǐng)域


音頻編碼技術(shù)近期絕大部分的改動(dòng)都是在MP3的繼任者——AAC的基礎(chǔ)上完成的。

這些編碼標(biāo)準(zhǔn)之間的比較可以參考文章:音頻編碼方案之間音質(zhì)比較(AAC币叹,MP3润歉,WMA等)

結(jié)果大致是這樣的:

AAC+ > MP3PRO > AAC> RealAudio > WMA > MP3

AAC格式的介紹:AAC格式簡介

AAC幾種不同版本之間的對比:AAC規(guī)格(LC,HE颈抚,HEv2)及性能對比

AAC專利方面的介紹:AAC專利介紹

此外杜比數(shù)字的編碼標(biāo)準(zhǔn)也比較流行踩衩,但是貌似比最新的AAC稍為遜色:AC-3技術(shù)綜述

我自己做的小工具:AAC格式分析器

現(xiàn)有網(wǎng)絡(luò)視音頻平臺對比

現(xiàn)有的網(wǎng)絡(luò)視音頻服務(wù)主要包括兩種方式:點(diǎn)播和直播。點(diǎn)播意即根據(jù)用戶的需要播放相應(yīng)的視頻節(jié)目贩汉,這是互聯(lián)網(wǎng)視音頻服務(wù)最主要的方式驱富。絕大部分視頻網(wǎng)站都提供了點(diǎn)播服務(wù)。直播意即互聯(lián)網(wǎng)視音頻平臺直接將視頻內(nèi)容實(shí)時(shí)發(fā)送給用戶匹舞,目前還處于發(fā)展階段褐鸥。直播在網(wǎng)絡(luò)電視臺,社交視頻網(wǎng)站較為常見赐稽。

直播平臺參數(shù)對比

可以看出叫榕,直播服務(wù)普遍采用了RTMP作為流媒體協(xié)議浑侥,F(xiàn)LV作為封裝格式,H.264作為視頻編碼格式晰绎,AAC作為音頻編碼格式寓落。采用RTMP作為直播協(xié)議的好處在于其被Flash播放器支持。而Flash播放器如今已經(jīng)安裝在全球99%的電腦上荞下,并且與瀏覽器結(jié)合的很好伶选。因此這種流媒體直播平臺可以實(shí)現(xiàn)“無插件直播”,極大的簡化了客戶端的操作锄弱。封裝格式考蕾,視頻編碼,音頻編碼方面会宪,無一例外的使用了FLV + H.264 + AAC的組合肖卧。FLV是RTMP使用的封裝格式,H.264是當(dāng)今實(shí)際應(yīng)用中編碼效率最高的視頻編碼標(biāo)準(zhǔn)掸鹅,AAC則是當(dāng)今實(shí)際應(yīng)用中編碼效率最高的音頻編碼標(biāo)準(zhǔn)塞帐。視頻播放器方面,都使用了Flash播放器巍沙。

點(diǎn)播平臺參數(shù)對比


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末葵姥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子句携,更是在濱河造成了極大的恐慌榔幸,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矮嫉,死亡現(xiàn)場離奇詭異削咆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蠢笋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門拨齐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人昨寞,你說我怎么就攤上這事瞻惋。” “怎么了援岩?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵歼狼,是天一觀的道長。 經(jīng)常有香客問我享怀,道長羽峰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任凹蜈,我火速辦了婚禮限寞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仰坦。我一直安慰自己履植,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布悄晃。 她就那樣靜靜地躺著玫霎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪妈橄。 梳的紋絲不亂的頭發(fā)上庶近,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機(jī)與錄音眷蚓,去河邊找鬼鼻种。 笑死,一個(gè)胖子當(dāng)著我的面吹牛沙热,可吹牛的內(nèi)容都是我干的叉钥。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼篙贸,長吁一口氣:“原來是場噩夢啊……” “哼投队!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起爵川,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤敷鸦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后寝贡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扒披,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年兔甘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谎碍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡洞焙,死狀恐怖蟆淀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情澡匪,我是刑警寧澤熔任,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站唁情,受9級特大地震影響疑苔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜甸鸟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一惦费、第九天 我趴在偏房一處隱蔽的房頂上張望兵迅。 院中可真熱鬧,春花似錦薪贫、人聲如沸恍箭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扯夭。三九已至,卻和暖如春鞍匾,著一層夾襖步出監(jiān)牢的瞬間交洗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工橡淑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留构拳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓梁棠,卻偏偏與公主長得像隐圾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子掰茶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一直想把視音頻編解碼技術(shù)做一個(gè)簡單的總結(jié)暇藏,可是苦于時(shí)間不充裕,一直沒能完成濒蒋。今天有著很大的空閑盐碱,終于可以總結(jié)...
    視頻音頻小白閱讀 1,678評論 1 13
  • 在保證視頻圖像質(zhì)量的前提下,HEVC通過增加一定的計(jì)算復(fù)雜度沪伙,可以實(shí)現(xiàn)碼流在H.264/AVC的基礎(chǔ)上降低50%瓮顽。...
    加劉景長閱讀 7,823評論 0 6
  • 前言 說到視頻暖混,大家自己腦子里基本都會(huì)想起電影、電視劇翁授、在線視頻等等拣播,也會(huì)想起一些視頻格式 AVI、MP4收擦、RMV...
    ForestSen閱讀 22,821評論 10 202
  • 寫在最前面 我希望相比較最終獲得的好結(jié)果贮配,我更珍惜的是二十幾歲那幾年——外人看來清冷、寂寞塞赂,而我內(nèi)心卻是溫暖泪勒、充實(shí)...
    MissIslander7閱讀 354評論 0 1
  • 會(huì)計(jì)科目分類 有時(shí)候需要看一些會(huì)計(jì)分錄圆存,看看系統(tǒng)出的是不是正確叼旋,金融業(yè)務(wù)復(fù)雜且分的很細(xì),經(jīng)常讓我這會(huì)計(jì)門外漢搞不清...
    Ivysnow閱讀 722評論 0 5