音視頻一些概念


聲音

聲音是,靠物體的振動(dòng)產(chǎn)生。聲波有三要素:頻率或辖、振幅率挣、波形浩村。
頻率:頻率越高,波長就會(huì)越短.而低頻聲響的波長則較長.所以這樣的聲音更容易繞過障礙物,能量衰減就越小.聲音就會(huì)傳播的越遠(yuǎn).

數(shù)字音頻

模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)的過程,分別是

  • 采樣:在時(shí)間軸上對(duì)信號(hào)進(jìn)行數(shù)字化
  • 量化:在幅度軸上對(duì)信號(hào)進(jìn)行數(shù)字化
  • 編碼:按照一定格式記錄采樣和量化后的數(shù)據(jù).是為了壓縮編碼喘漏,去除人的肉眼很難察覺的冗余信息以更方便傳輸护蝶。

最常見的音頻編碼格式有AAC、MP3翩迈、WMA等持灰。


視頻

視頻的構(gòu)成:

  • 圖像視頻內(nèi)容本身就是一幀一幀的圖片構(gòu)成.人眼只要1秒鐘連續(xù)播放16張以上的圖片,就會(huì)認(rèn)為這是一段連貫的視頻.這種物理現(xiàn)象叫視覺暫留.
  • 音頻:視頻一定是由音頻+圖像內(nèi)容構(gòu)成的.所以音頻在視頻中是單獨(dú)的一個(gè)部分.
  • 元信息:用于描述信息的結(jié)構(gòu)\語義\用途\用法等.比如視頻元信息就包含了視頻的具體信息,比如編碼格式,分辨率等等

視頻封裝格式

視頻封裝格式相當(dāng)于一種儲(chǔ)存視頻信息的容器,包含了封裝視頻文件所需要的視頻信息负饲、音頻信息和相關(guān)的配置信息等堤魁。

一些公司會(huì)使用私有封裝格式,只有公司內(nèi)部播放器才能播放返十。

常見的視頻文件格式各自特點(diǎn)如下:

  • QuickTime File Format 格式:對(duì)應(yīng)的文件格式是 .mov妥泉,是 Apple 公司開發(fā)的一種視頻格式,默認(rèn)的播放器是蘋果的 QuickTime洞坑。這種封裝格式具有較高的壓縮比率和較完美的視頻清晰度等特點(diǎn)盼玄,并可以保存 alpha 通道仰禽。

  • Real Video 格式:對(duì)應(yīng)的文件格式是 .rm叫搁、.rmvb恬偷,是 Real Networks 公司所制定的音頻視頻壓縮規(guī)范稱為 Real Media。用戶可以使用 RealPlayer 根據(jù)不同的網(wǎng)絡(luò)傳輸速率制定出不同的壓縮比率逢慌,從而實(shí)現(xiàn)在低速率的網(wǎng)絡(luò)上進(jìn)行影像數(shù)據(jù)實(shí)時(shí)傳送和播放悠轩。

  • Audio Video Interleaved 格式:對(duì)應(yīng)的文件格式為 .avi ,是由 Microsoft 公司于 1992 年推出攻泼。這種視頻格式的優(yōu)點(diǎn)是圖像質(zhì)量好火架,無損 AVI 可以保存 alpha 通道。缺點(diǎn)是體積過于龐大忙菠,并且壓縮標(biāo)準(zhǔn)不統(tǒng)一何鸡,存在較多的高低版本兼容問題。

  • Windows Media Video 格式:對(duì)應(yīng)的文件格式是 .wmv牛欢,是微軟推出的一種采用獨(dú)立編碼方式并且可以直接在網(wǎng)上實(shí)時(shí)觀看視頻節(jié)目的文件壓縮格式骡男。在同等視頻質(zhì)量下,WMV 格式的文件可以邊下載邊播放傍睹,因此很適合在網(wǎng)上播放和傳輸隔盛。

  • Moving Picture Experts Group 格式:對(duì)應(yīng)的文件格式有 .mpg、.mpeg拾稳、.mpe吮炕、.dat、.vob访得、.asf龙亲、.3gp、.mp4 等等,是由運(yùn)動(dòng)圖像專家組制定的視頻格式鳄炉,該專家組于 1988 年組建杜耙,專門負(fù)責(zé)視頻和音頻標(biāo)準(zhǔn)制定,其成員都是視頻迎膜、音頻以及系統(tǒng)領(lǐng)域的技術(shù)專家泥技。MPEG 格式目前有三個(gè)壓縮標(biāo)準(zhǔn)浆兰,分別是 MPEG-1磕仅、MPEG-2、和 MPEG-4簸呈。MPEG-4 是現(xiàn)在用的比較多的視頻封裝格式榕订,它為了播放流式媒體的高質(zhì)量視頻而專門設(shè)計(jì)的,以求使用最少的數(shù)據(jù)獲得最佳的圖像質(zhì)量蜕便。

  • Matroska 格式:對(duì)應(yīng)的文件格式是 .mkv劫恒,Matroska 是一種新的視頻封裝格式,它可將多種不同編碼的視頻及 16 條以上不同格式的音頻和不同語言的字幕流封裝到一個(gè) Matroska Media 文件當(dāng)中轿腺。

  • Flash Video 格式:對(duì)應(yīng)的文件格式是 .flv两嘴,是由 Adobe Flash 延伸出來的一種網(wǎng)絡(luò)視頻封裝格式。這種格式被很多視頻網(wǎng)站所采用族壳。


音視頻編解碼

為什么需要編碼呢憔辫?因?yàn)樾枰獕嚎s。視頻編解碼的過程是指對(duì)數(shù)字視頻進(jìn)行壓縮或解壓縮的一個(gè)過程.

  • 最常見的視頻編碼格式有H.264仿荆、H.265贰您、MPEG-4等.

  • 最常見的音頻編碼格式有AAC、MP3拢操、WMA等锦亦。

  • 硬編碼: 使用GPU計(jì)算,獲取數(shù)據(jù)結(jié)果,優(yōu)點(diǎn)速度快,效率高,延長電量的使用.

  • 軟編碼: 使用CPU來進(jìn)行編碼計(jì)算,簡單令境,直接杠园,性能低

H.264最大的優(yōu)勢,具有很高的數(shù)據(jù)壓縮比率。H.265性能也很好舔庶,但會(huì)占用更多CPU抛蚁,手機(jī)端可能發(fā)熱,更耗電等栖茉。
AAC是目前比較熱門的有損壓縮編碼技術(shù),在小于128Kbit/s的碼率下表現(xiàn)優(yōu)異,并且多用于視頻中的音頻編碼篮绿。

視頻壓縮中的IBP幀

  • I幀,也叫關(guān)鍵幀,視頻的第一幀會(huì)被作為關(guān)鍵幀完整保存下來.而后面的幀會(huì)向前依賴。自身可以通過視頻解碼算法解壓成一張單獨(dú)的完整的視頻畫面.所以I幀去掉的是視頻幀在空間維度上的冗余信息.

  • P幀,需要參考前面的一個(gè)I幀或P幀解碼成一個(gè)完整的視頻畫面

  • B幀,雙向參考幀吕漂。需要參考前面的一個(gè)I幀或者P幀以及后面的一個(gè)P幀來生成一個(gè)完整的視頻畫面.對(duì)實(shí)時(shí)互動(dòng)的直播,一般不會(huì)使用B幀,因?yàn)樾枰昂髤⒖记着洹?duì)于壓縮比較高,可以接受一定延時(shí)的直播,可以用B幀

如果H264碼流中I幀錯(cuò)誤/丟失,就會(huì)導(dǎo)致錯(cuò)誤傳遞,P/B幀單獨(dú)是完成不了解碼工作吼虎。

花屏犬钢、卡頓

花屏是因?yàn)槟銇G了P幀或者I幀.導(dǎo)致解碼錯(cuò)誤.
卡頓是因?yàn)闉榱伺禄ㄆ?將整組錯(cuò)誤的GOP數(shù)據(jù)扔掉了.直達(dá)下一組正確的GOP再重新刷屏.而這中間的時(shí)間差,就是我們所感受的卡頓.


色彩空間

RGB

開發(fā)場景中使用最多的應(yīng)該是RGB模型。
RGB色彩模式是工業(yè)界的一種顏色標(biāo)準(zhǔn)思灰,是通過對(duì)紅(R)玷犹、綠(G)、藍(lán)(B)三個(gè)顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色的洒疚,RGB即是代表紅歹颓、綠、藍(lán)三個(gè)通道的顏色油湖,這個(gè)標(biāo)準(zhǔn)幾乎包括了人類視力所能感知的所有顏色巍扛,是目前運(yùn)用最廣的顏色系統(tǒng)之一。

YCbCr

還有一種更為廣泛的 YUV 模型,每一個(gè)顏色有一個(gè)亮度信號(hào) Y乏德,和兩個(gè)色度信號(hào) U 和V撤奸。亮度信號(hào)是強(qiáng)度的感覺,它和色度信號(hào)斷開喊括,這樣的話強(qiáng)度就可以在不影響顏色的情況下改變胧瓜。

一般所講的YUV大多是指YCbCr.

其中 YCbCr 是在計(jì)算機(jī)系統(tǒng)中應(yīng)用最多的成員,其應(yīng)用領(lǐng)域很廣泛郑什,JPEG府喳、MPEG均采用此格式。YCbCr其中Y是指亮度分量蹦误,Cb指藍(lán)色色度分量劫拢,而Cr指紅色色度分量。人的肉眼對(duì)視頻的Y分量更敏感强胰,因此在通過對(duì)色度分量進(jìn)行子采樣來減少色度分量后舱沧,肉眼將察覺不到的圖像質(zhì)量的變化。

YUV(YCbCr)采樣格式:

  • 主要的采樣格式有YCbCr 4:2:0偶洋、YCbCr 4:2:2熟吏、YCbCr 4:1:1YCbCr 4:4:4

  • 其中YCbCr4:1:1 比較常用玄窝,其含義為:每個(gè)點(diǎn)保存一個(gè) 8bit 的亮度值(也就是Y值), 每 2 x 2 個(gè)點(diǎn)保存一個(gè) Cr和Cb值,圖像在肉眼中的感覺不會(huì)起太大的變化牵寺。所以, 原來用 RGB(R,G,B 都是 8bit unsigned) 模型, 每個(gè)點(diǎn)需要8x3=24 bits, 而現(xiàn)在僅需要 8+(8/4)+(8/4)=12bits,平均每個(gè)點(diǎn)占12bits恩脂。這樣就把圖像的數(shù)據(jù)壓縮了一半帽氓。


直播

在直播項(xiàng)目中,一般常見有8個(gè)步驟:

  1. 音視頻采集:AVFoundation
  2. 視頻濾鏡:原生CoreImage,三方GPUImage
  3. 音視頻編碼:硬:VideoToolBox俩块、AudioToolBox 軟:FFmpeg黎休、fdk_aac
  4. 推流: 流媒體協(xié)議: RTMP\RTSP\HLS\FLV 視頻封裝格式: TS\FLV 音頻封裝格式: Mp3\AAC
  5. 流媒體服務(wù)器處理: 實(shí)時(shí)轉(zhuǎn)碼等
  6. 拉流: 協(xié)議有RTMP\RTSP\HLS\FLV
  7. 音視頻解碼 : 同編碼
  8. 音視頻播放 : ijkplayer,kxmovie 都是基于FFmpeg框架封裝的

對(duì)實(shí)時(shí)互動(dòng)的直播,一般不會(huì)使用B幀,因?yàn)樾枰昂髤⒖寂臁?duì)于壓縮比較高,可以接受一定延時(shí)的直播势腮,可以用B幀

直播間里一般不會(huì)用H265联贩。,因?yàn)樗膲嚎s比更高,它占用的CPU也是非常高的.在直播里,如果用X265的話,CPU就抖然就上去了。

VideoToolBox框架的流程

  1. 創(chuàng)建session
  2. 設(shè)置編碼相關(guān)參數(shù)
  3. 開始編碼
  4. 循環(huán)獲取采集數(shù)據(jù)
  5. 獲取編碼后數(shù)據(jù)
  6. 將數(shù)據(jù)寫入H264文件

開發(fā)者必須將原始圖像數(shù)據(jù)封裝為CVPixelBuufer的數(shù)據(jù)結(jié)構(gòu).該數(shù)據(jù)結(jié)構(gòu)是使用VideoToolBox的核心.

我們使用任何硬件設(shè)備都要使用對(duì)應(yīng)的session,麥克風(fēng)就要使用AudioSession,使用Camera就要使用AVCaptureSession,使用編碼則需要使用VTCompressionSession.解碼時(shí),要使用VTDecompressionSessionRef.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載捎拯,如需轉(zhuǎn)載請(qǐng)通過簡信或評(píng)論聯(lián)系作者泪幌。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市署照,隨后出現(xiàn)的幾起案子祸泪,更是在濱河造成了極大的恐慌,老刑警劉巖藤树,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浴滴,死亡現(xiàn)場離奇詭異拓萌,居然都是意外死亡岁钓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門微王,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屡限,“玉大人,你說我怎么就攤上這事炕倘【螅” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵罩旋,是天一觀的道長啊央。 經(jīng)常有香客問我,道長涨醋,這世上最難降的妖魔是什么瓜饥? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮浴骂,結(jié)果婚禮上乓土,老公的妹妹穿的比我還像新娘。我一直安慰自己溯警,他們只是感情好趣苏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梯轻,像睡著了一般食磕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喳挑,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天彬伦,我揣著相機(jī)與錄音萄金,去河邊找鬼。 笑死媚朦,一個(gè)胖子當(dāng)著我的面吹牛氧敢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播询张,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼孙乖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了份氧?” 一聲冷哼從身側(cè)響起唯袄,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜗帜,沒想到半個(gè)月后恋拷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡厅缺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年蔬顾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片湘捎。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡诀豁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出窥妇,到底是詐尸還是另有隱情舷胜,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布活翩,位于F島的核電站烹骨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏材泄。R本人自食惡果不足惜沮焕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望脸爱。 院中可真熱鬧遇汞,春花似錦、人聲如沸簿废。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽族檬。三九已至歪赢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間单料,已是汗流浹背埋凯。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國打工点楼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人白对。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓掠廓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親甩恼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蟀瞧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

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