視頻技術基礎

在線直播可以說從去年開始變成了一個火爆的創(chuàng)業(yè)領域,一下子出來了很多做視頻直播的公司伪嫁。但說實話這方面的技術書籍實在是非常的少,網(wǎng)上的資料也很零散,所以我決定寫一些列介紹視頻技術的文章爱只。今天這篇文章先對視頻技術中的基礎概念做一些簡單的總結。

你所能看到的視頻

現(xiàn)在可能大部分人都直接用瀏覽器在視頻網(wǎng)站上看視頻了招刹,已經(jīng)不太能看到視頻的后綴名之類的東西了恬试。但是如果是把視頻下載到本地觀看的話,是可以看到視頻文件的后綴的疯暑。這也就是我們平時所說的視頻格式训柴。目前比較主流的視頻格式有下面這幾種:avi,rmvb,mp4,flv尼夺,mkv等等。這里面作為的視頻格式實際上是指視頻的封裝格式指的是以什么方式把視頻和音頻數(shù)據(jù)打包成一個文件仗嗦,所一個這個封裝格式其實與視頻和音頻采用什么方式編碼沒有什么關系「势荆總的來說稀拐,不同的封裝格式之間差距不大,各有優(yōu)劣对蒲。

注:有些封裝格式支持的視音頻編碼標準十分廣泛钩蚊,應該算比較優(yōu)秀的封裝格式贡翘,比如MKV;而有些封裝格式支持的視音頻編碼標準很少砰逻,應該屬于落后的封裝格式鸣驱,比如RMVB。

封裝格式

封裝格式的主要作用是把視頻碼流和音頻碼流按照一定的格式存儲在一個文件中◎鹋兀現(xiàn)如今流行的封裝格式如下表所示:

| 格式 | 推出機構 | 流媒體 |支持的視頻編碼|支持音頻編碼格式|應用領域|
|:----|:----|:----|:----|:----|
|AVI|Mirosoft Inc.|不支持|幾乎所有|幾乎所有|下載的視頻文件(現(xiàn)在可能很少見到)|
|MP4|MPEG|支持|MPEG-2踊东、MPEG-4、H.264|AAC刚操,MPEG-1 Layers I, II, III闸翅、AC-3等|互聯(lián)網(wǎng)視頻|
|TS|MPEG|支持|MPEG-2、MPEG-4菊霜、H.264|AAC坚冀,MPEG-1 Layers I, II, III|互聯(lián)網(wǎng)視頻、IPTV鉴逞、數(shù)字電視|
|FLV|Adobe Inc.|支持|Sorenson记某、VP6、H264|MP3构捡,ADPCM液南,Linear PCM、AAC等|互聯(lián)網(wǎng)視頻
|MKV|CoreCodec Inc.|支持|幾乎所有|幾乎所有|互聯(lián)網(wǎng)視頻|
|RMVB|Real Networks Inc.|支持|RealVideo 8勾徽,9滑凉,10|AAC、Cook Codec喘帚、RealAudio Lossless|下載的視頻文件|

除了AVI之外畅姊,幾乎所有的封裝格式都支持流媒體播放,也就是“邊下邊播放”啥辨。什么叫封裝可能現(xiàn)在理解起來比較抽象涡匀,下面我會詳細講解什么是封裝以及什么是編碼,以及他們之間的關系溉知。

視頻編碼格式

了解了視頻的封裝格式后,如果剝離視頻的封裝格式后腕够,就可以看到真正的視頻數(shù)據(jù)级乍,這些視頻數(shù)據(jù)會有不同的編碼格式。什么是編碼格式呢帚湘?

我們平時所看到的視頻玫荣,理論上就是一幀幀的圖片連續(xù)的播放,形成動畫效果大诸。那么完整的保存所有圖片捅厂,一部電影可能就要上百G的空間贯卦。視頻編碼就是為了壓縮這些圖片,以節(jié)省空間焙贷。我先講一下簡單的理論撵割,比如一秒鐘的視頻通常有24幀,這24張圖畫大部分區(qū)域可能都比較相近辙芍,那么我們是不是可以找到一種方法啡彬,只保存一張完整圖片(我們稱為關鍵幀),不保存其他圖片故硅,只保存和這個完整圖片的不同(通過某種數(shù)學建模表達)庶灿,這樣就會節(jié)省很多空間,在播放的時候吃衅,通過和關鍵幀與每一幀的不同逆向恢復成一張完整的圖片往踢,這樣就得到了24張完整的圖片。(這里只是舉例徘层,實際應用中并不一定是每24幀圖像被設定一個關鍵幀)菲语。OK,那么所謂編碼格式就指的一種壓縮視頻圖像的算法惑灵。主流的視頻編碼格式一覽表如下:

格式 推出機構 推出時間 發(fā)展狀況
HEVC(H265) MPEG/ITU-T 2013 不普及
H264 MPEG/ITU-T 2003 各個領域
MPEG4 MPEG 2003 不溫不火
MPEG2 MPEG 2001 數(shù)字電視
VP9 Google 2013 不普及
VP8 Google 2008 不普及
VC-1 Microsoft Inc. 2006 微軟平臺

其實這里H264已經(jīng)成為事實的視頻領域的行業(yè)編碼標準山上。目前主流的視頻都采用H264格式進行視頻編碼,H265可能對目前的計算機硬件資源來說計算量還是過大英支,還沒有普及(只是猜測)佩憾。MPEG4、MPEG2和H264都師出同門干花,只不過H264在圖像質量和壓縮率上更勝一籌妄帘,其他幾種編碼格式基本跟H264差不多,只是出自不同公司或者組織池凄,并且沒有H264普及抡驼。

音頻編碼

這里在稍微講一下音頻編碼吧。同樣音頻編碼和視頻編碼一樣肿仑,指的是通過一定的手段將音頻數(shù)據(jù)進行壓縮致盟。音頻數(shù)據(jù)在視頻文件中占用空間跟視頻數(shù)據(jù)比非常的小,我們這里就不重討論尤慰,目前主要的音頻編碼格式有AAC馏锡、AC-3、MP3伟端、WMA杯道。其中AAC應該是視頻文件中最主流的編碼格式。

視頻播放原理

比如我們在網(wǎng)站上看一個視頻的時候责蝠,需要經(jīng)過這幾個步驟:解協(xié)議党巾,解封裝萎庭,解碼視音頻,視音頻同步齿拂。如果播放本地文件則不需要解協(xié)議驳规,為以下幾個步驟:解封裝,解碼視音頻创肥,視音頻同步达舒。他們的過程如圖所示。

Paste_Image.png

這張圖表示的是從網(wǎng)絡流媒體下載到播放的整個過程叹侄,流媒體的協(xié)議有很多種巩搏,比如HTTP,RTMP或者MMS等趾代,這里我們先不展開討論(以后抽時間專門寫一篇流媒體協(xié)議的文章介紹)贯底。我們從解協(xié)議的結果封裝格式數(shù)據(jù)開始討論。

解封裝的作用撒强,就是將輸入的封裝格式的數(shù)據(jù)禽捆,分離成為音頻流壓縮編碼數(shù)據(jù)和視頻流壓縮編碼數(shù)據(jù)。封裝格式種類很多飘哨,例如MP4胚想,MKV,RMVB芽隆,TS浊服,F(xiàn)LV,AVI等等胚吁,它的作用就是將已經(jīng)壓縮編碼的視頻數(shù)據(jù)和音頻數(shù)據(jù)按照一定的格式放到一起牙躺。例如,F(xiàn)LV格式的數(shù)據(jù)腕扶,經(jīng)過解封裝操作后孽拷,輸出H.264編碼的視頻碼流和AAC編碼的音頻碼流。

解碼的作用半抱,就是將視頻/音頻壓縮編碼數(shù)據(jù)脓恕,解碼成為非壓縮的視頻/音頻原始數(shù)據(jù)。音頻的壓縮編碼標準包含AAC代虾,MP3进肯,AC-3等等,視頻的壓縮編碼標準則包含H.264棉磨,MPEG2,VC-1等等学辱。解碼是整個系統(tǒng)中最重要也是最復雜的一個環(huán)節(jié)乘瓤。通過解碼环形,壓縮編碼的視頻數(shù)據(jù)輸出成為非壓縮的顏色數(shù)據(jù),例如YUV420P衙傀,RGB等等抬吟;壓縮編碼的音頻數(shù)據(jù)輸出成為非壓縮的音頻抽樣數(shù)據(jù),例如PCM數(shù)據(jù)统抬。

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

為什么要分封裝格式和視頻編碼格式呢? 這個其實跟網(wǎng)絡分七層模型一個原理金麸。解耦和擎析,降低依賴,底層給上層提供基礎功能挥下,底層和上層都都可以單獨擴展揍魂,可以以多種方案組合編碼與封裝,比如MP4與H264棚瘟、MP4與MPEG现斋、TS與H264等等。比如這里面的這邊文章的編碼就只負責將最原始的音頻和視頻數(shù)據(jù)就行壓縮偎蘸,而壓縮完的數(shù)據(jù)要怎么組織就拜托給上層的封裝庄蹋,封裝接到視頻音頻數(shù)據(jù)負責給數(shù)據(jù)編號,指定同步協(xié)議禀苦,加入字幕等操作蔓肯。經(jīng)過封裝后,得到的就是可以播放的上面提到的視頻文件MP4或者MKV等等振乏。把這個過程反過來就是上圖描述的視頻播放的過程蔗包。

本文大部分內容抄自[總結]視音頻編解碼技術零基礎學習方法,一部分來源于自己的總結《[總結]視音頻編解碼技術零基礎學習方法》應該是國內視頻領域最系統(tǒng)的學習資料了慧邮。有興趣的朋友可以去仔細閱讀一下调限。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市误澳,隨后出現(xiàn)的幾起案子耻矮,更是在濱河造成了極大的恐慌,老刑警劉巖忆谓,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件裆装,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機哨免,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門茎活,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人琢唾,你說我怎么就攤上這事载荔。” “怎么了采桃?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵懒熙,是天一觀的道長。 經(jīng)常有香客問我普办,道長工扎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任泌豆,我火速辦了婚禮定庵,結果婚禮上,老公的妹妹穿的比我還像新娘踪危。我一直安慰自己蔬浙,他們只是感情好,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布贞远。 她就那樣靜靜地躺著畴博,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蓝仲。 梳的紋絲不亂的頭發(fā)上俱病,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音袱结,去河邊找鬼亮隙。 笑死,一個胖子當著我的面吹牛垢夹,可吹牛的內容都是我干的溢吻。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼果元,長吁一口氣:“原來是場噩夢啊……” “哼促王!你這毒婦竟也來了?” 一聲冷哼從身側響起而晒,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤蝇狼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后倡怎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迅耘,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡贱枣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了豹障。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冯事。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡焦匈,死狀恐怖血公,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情缓熟,我是刑警寧澤累魔,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站够滑,受9級特大地震影響垦写,放射性物質發(fā)生泄漏。R本人自食惡果不足惜彰触,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一梯投、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧况毅,春花似錦分蓖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至味廊,卻和暖如春蒸甜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背余佛。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工柠新, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辉巡。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓恨憎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親红氯。 傳聞我的和親對象是個殘疾皇子框咙,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內容