流媒體(視頻直播技術(shù))學(xué)習(xí)1-相關(guān)概念

引言

在現(xiàn)在移動(dòng)互聯(lián)網(wǎng)如火如荼的時(shí)代戒突,流媒體業(yè)務(wù)在移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)中所占的比重越來越大,特別是今年直播業(yè)務(wù)的興起,使互聯(lián)網(wǎng)社交進(jìn)入了直播時(shí)代顾瞻,直播已經(jīng)成為很多APP特別是社交APP的標(biāo)配業(yè)務(wù)。站在一個(gè)程序員的角度(coding角度)來看德绿,直播業(yè)務(wù)其實(shí)就是流媒體業(yè)務(wù)荷荤。那么流媒體業(yè)務(wù)開發(fā)涉及到哪些方面的知識(shí)呢?下面我們來看看一個(gè)流媒體數(shù)據(jù)(音頻數(shù)據(jù)和圖像數(shù)據(jù))從采集 ->處理->編碼和格式封裝 -> 傳輸-> 解碼 -> 播放整個(gè)過程中所涉及到的知識(shí)點(diǎn)移稳。例如一個(gè)直播業(yè)務(wù)的流媒體數(shù)據(jù)從采集到播放是這樣的:

直播業(yè)務(wù)的流媒體數(shù)據(jù)從采集到播放.jpeg
采集

采集是整個(gè)過程中的第一個(gè)環(huán)節(jié)蕴纳,它從系統(tǒng)的采集設(shè)備中獲取原始視頻數(shù)據(jù),將其輸出到下一個(gè)環(huán)節(jié)个粱。視頻的采集涉及兩方面數(shù)據(jù)的采集:音頻采集和圖像采集古毛,它們分別對(duì)應(yīng)兩種完全不同的輸入源和數(shù)據(jù)格式。

  • 音頻采集

    1. 采集源:麥克風(fēng)几蜻、系統(tǒng)聲音或者本地音頻文件等

    2. 采集內(nèi)容:

      采集過程主要通過設(shè)備將環(huán)境中的模擬信號(hào)采集成 PCM 編碼的原始數(shù)據(jù)喇潘,然后編碼壓縮成 MP3 等格式的數(shù)據(jù)分發(fā)出去体斩。
      音頻采集和編碼主要面臨的挑戰(zhàn)在于:延時(shí)敏感、卡頓敏感颖低、噪聲消除(Denoise)絮吵、回聲消除(AEC)、靜音檢測(cè)(VAD)和各種混音算法等忱屑。

    在音頻采集階段蹬敲,參考的主要技術(shù)參數(shù)有 :

    • 采樣率(samplerate):采樣就是把模擬信號(hào)數(shù)字化的過程,采樣頻率越高莺戒,記錄這一段音頻信號(hào)所用的數(shù)據(jù)量就越大伴嗡,同時(shí)音頻質(zhì)量也就越高。

    • 位寬:每一個(gè)采樣點(diǎn)都需要用一個(gè)數(shù)值來表示大小从铲,這個(gè)數(shù)值的數(shù)據(jù)類型大小可以是:4bit瘪校、8bit、16bit名段、32bit 等等阱扬,位數(shù)越多,表示得就越精細(xì)伸辟,聲音質(zhì)量自然就越好麻惶,而數(shù)據(jù)量也會(huì)成倍增大。我們?cè)谝纛l采樣過程中常用的位寬是 8bit 或者 16bit信夫。

    • 聲道數(shù)(channels):由于音頻的采集和播放是可以疊加的窃蹋,因此,可以同時(shí)從多個(gè)音頻源采集聲音静稻,并分別輸出到不同的揚(yáng)聲器警没,故聲道數(shù)一般表示聲音錄制時(shí)的音源數(shù)量或回放時(shí)相應(yīng)的揚(yáng)聲器數(shù)量。聲道數(shù)為 1 和 2 分別稱為單聲道和雙聲道姊扔,是比較常見的聲道參數(shù)惠奸。

    • 音頻幀(frame):音頻跟視頻很不一樣,視頻每一幀就是一張圖像恰梢,而從上面的正玄波可以看出佛南,音頻數(shù)據(jù)是流式的,本身沒有明確的一幀幀的概念嵌言,在實(shí)際的應(yīng)用中嗅回,為了音頻算法處理/傳輸?shù)姆奖悖话慵s定俗成取 2.5ms~60ms 為單位的數(shù)據(jù)量為一幀音頻摧茴。這個(gè)時(shí)間被稱之為“采樣時(shí)間”绵载,其長(zhǎng)度沒有特別的標(biāo)準(zhǔn),它是根據(jù)編解碼器和具體應(yīng)用的需求來決定的。

    根據(jù)以上定義娃豹,我們可以計(jì)算一下一幀音頻幀的大小焚虱。假設(shè)某音頻信號(hào)是采樣率為 8kHz、雙通道懂版、位寬為 16bit鹃栽,20ms 一幀,則一幀音頻數(shù)據(jù)的大小為:

    size = 8000 x 2 x 16bit x 0.02s = 5120 bit = 640 byte

  • 圖像采集

    1. 采集源:攝像頭躯畴、屏幕錄制或者本地的視頻文件等

    2. 采集內(nèi)容:

      圖像采集圖像采集的圖片結(jié)果組合成一組連續(xù)播放的動(dòng)畫民鼓,即構(gòu)成視頻中可肉眼觀看的內(nèi)容。圖像的采集過程主要由攝像頭等設(shè)備拍攝成 YUV 編碼的原始數(shù)據(jù)蓬抄,然后經(jīng)過編碼壓縮成 H.264 等格式的數(shù)據(jù)分發(fā)出去丰嘉。

      圖像由于其直觀感受最強(qiáng)并且體積也比較大,構(gòu)成了一個(gè)視頻內(nèi)容的主要部分嚷缭。圖像采集和編碼面臨的主要挑戰(zhàn)在于:設(shè)備兼容性差饮亏、延時(shí)敏感、卡頓敏感以及各種對(duì)圖像的處理操作如美顏和水印等峭状。

      在圖像采集階段克滴,參考的主要技術(shù)參數(shù)有:

      • 圖像傳輸格式:通用影像傳輸格式(Common Intermediate Format)是視訊會(huì)議(video conference)中常使用的影像傳輸格式。

      • 圖像格式:通常采用 YUV 格式存儲(chǔ)原始數(shù)據(jù)信息优床,其中包含用 8 位表示的黑白圖像灰度值,以及可由 RGB 三種色彩組合成的彩色圖像誓焦。

      • 傳輸通道:正常情況下視頻的拍攝只需 1 路通道胆敞,隨著 VR 和 AR 技術(shù)的日漸成熟,為了拍攝一個(gè)完整的 360° 視頻杂伟,可能需要通過不同角度拍攝移层,然后經(jīng)過多通道傳輸后合成。

      • 分辨率:隨著設(shè)備屏幕尺寸的日益增多赫粥,視頻采集過程中原始視頻分辨率起著越來越重要的作用观话,后續(xù)處理環(huán)節(jié)中使用的所有視頻分辨率的定義都以原始視頻分辨率為基礎(chǔ)。視頻采集卡能支持的最大點(diǎn)陣反映了其分辨率的性能越平。

      • 采樣頻率:采樣頻率反映了采集卡處理圖像的速度和能力频蛔。在進(jìn)行高度圖像采集時(shí),需要注意采集卡的采樣頻率是否滿足要求秦叛。采樣率越高晦溪,圖像質(zhì)量越高,同時(shí)保存這些圖像信息的數(shù)據(jù)量也越大挣跋。

處理

視頻或者音頻完成采集之后得到原始數(shù)據(jù)三圆,為了增強(qiáng)一些現(xiàn)場(chǎng)效果或者加上一些額外的效果,我們一般會(huì)在將其編碼壓縮前進(jìn)行處理,比如打上時(shí)間戳或者公司 Logo 的水印舟肉,祛斑美顏和聲音混淆等處理

常見視頻處理功能:

  1. 美顏

    美顏的主要原理是通過「磨皮+美白」來達(dá)到整體美顏的效果修噪。磨皮的技術(shù)術(shù)語(yǔ)是「去噪」,也即對(duì)圖像中的噪點(diǎn)進(jìn)行去除或者模糊化處理路媚,常見的去噪算法有均值模糊黄琼、高斯模糊和中值濾波等。當(dāng)然磷籍, 由于臉部的每個(gè)部位不盡相同适荣,臉上的雀斑可能呈現(xiàn)出眼睛黑點(diǎn)的樣子,對(duì)整張圖像進(jìn)行「去噪」處理的時(shí)候不需要將眼睛也去掉院领,因此這個(gè)環(huán)節(jié)中也涉及到人臉和皮膚檢測(cè)技術(shù)

  2. 視頻水印

    水印是圖片和視頻內(nèi)容中常見的功能之一弛矛,它可用于簡(jiǎn)單是版權(quán)保護(hù),或者進(jìn)行廣告設(shè)置.也就是在視頻圖像上的某些位置添加上別的圖片或文字比然。

  3. 濾鏡

    濾鏡介紹

    在 iOS 端可以考慮使用 GPUImage 這個(gè)庫(kù)丈氓,這是一個(gè)開源的基于GPU的圖片或視頻的處理框架,內(nèi)置了多達(dá)120多種常見的濾鏡效果强法。

  4. 特效

    特效其實(shí)就是在視頻中添加一組動(dòng)態(tài)的圖片水印万俗。一般是基于人臉識(shí)別的。

編碼和格式封裝
  1. 編碼

    編碼是對(duì)從采集源獲取到的數(shù)據(jù)或者處理過的數(shù)據(jù)按照某種規(guī)范進(jìn)行壓縮的技術(shù)饮怯。例如:移動(dòng)端一般將從采集源獲取的音頻原始數(shù)據(jù)(PCM格式)編碼成AAC格式的數(shù)據(jù)闰歪,常見的音頻壓縮格式有:MP3,AAC蓖墅,HE-AAC库倘,Opus,F(xiàn)LAC论矾,Vorbis (Ogg)教翩,Speex 和 AMR等。從采集源獲取到的原始圖像數(shù)據(jù)(一般是YUV格式的)編碼成 h.264格式的數(shù)據(jù)贪壳。為什么要對(duì)這些原始數(shù)據(jù)進(jìn)行編碼饱亿,主要有兩個(gè)原因:

    • 存儲(chǔ)困難 :因?yàn)樵紨?shù)據(jù),體積很大闰靴。
    • 傳輸困難 :占帶寬彪笼, 費(fèi)流量。

    為什么可以壓縮传黄,主要是因?yàn)椋?/p>

    1. 空間冗余:圖像相鄰像素之間有較強(qiáng)的相關(guān)性
    2. 時(shí)間冗余:視頻序列的相鄰圖像之間內(nèi)容相似
    3. 編碼冗余:不同像素值出現(xiàn)的概率不同
    4. 視覺冗余:人的視覺系統(tǒng)對(duì)某些細(xì)節(jié)不敏感
    5. 知識(shí)冗余:規(guī)律性的結(jié)構(gòu)可由先驗(yàn)知識(shí)和背景知識(shí)得到

    數(shù)據(jù)壓縮一般分為 無損壓縮(Lossless)和 有損壓縮(Lossy)

    編碼方式:

    1. 軟件編碼 常用FFMpeg多媒體庫(kù)杰扫,利用CPU做視頻的編碼
    2. 硬件編碼 利用GPU或者專用處理器來對(duì)視頻流進(jìn)行編碼

    軟件編碼比較通用,但是占用CPU資源膘掰,編解碼效率不高章姓。硬件編碼效率很高佳遣。

  1. 封裝格式

    所謂封裝格式也稱多媒體容器 (Multimedia Container),也就是將所有的處理好的視頻凡伊、音頻都包裝到一個(gè)文件容器內(nèi)呈現(xiàn)給觀眾零渐,這個(gè)包裝的過程就叫封裝。常見的視頻封裝格式有:MP4系忙、3GP诵盼、AVI、MKV银还、WMV风宁、MPG、VOB蛹疯、FLV戒财、SWF、MOV捺弦、RMVB 和 WebM 等饮寞。

傳輸

傳輸是指:通過互聯(lián)網(wǎng),地面無線廣播列吼,衛(wèi)星等方式將將壓縮的視頻碼流從編碼端傳輸?shù)浇獯a端幽崩。

解碼

解碼是對(duì)已編碼的視頻數(shù)據(jù)進(jìn)行還原解碼操作。

解碼方式:
> 1. 軟件解碼 常用FFMpeg多媒體庫(kù)寞钥,利用CPU做視頻的解碼
> 2. 硬件解碼 利用GPU或者專用處理器來對(duì)視頻流進(jìn)行解碼

軟件解碼比較通用慌申,但是占用CPU資源,編解碼效率不高理郑。硬件解碼效率很高太示。

播放

播放就是將解碼后的音頻數(shù)據(jù)通過音響等播放, 將視頻圖像數(shù)據(jù)通過顯示器等顯示香浩。

總結(jié):以上是通過查相關(guān)資料整理后的一些個(gè)人理解【拭悖可能有誤敬請(qǐng)各位同學(xué)指導(dǎo)批判邻吭。后面還會(huì)分模塊詳解。其中參考了雷霄驊很多資料宴霸,在此向大神表示敬意囱晴。

未完待續(xù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瓢谢,一起剝皮案震驚了整個(gè)濱河市畸写,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌氓扛,老刑警劉巖枯芬,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件论笔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡千所,警方通過查閱死者的電腦和手機(jī)狂魔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淫痰,“玉大人最楷,你說我怎么就攤上這事〈恚” “怎么了籽孙?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)火俄。 經(jīng)常有香客問我犯建,道長(zhǎng),這世上最難降的妖魔是什么烛占? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任胎挎,我火速辦了婚禮,結(jié)果婚禮上忆家,老公的妹妹穿的比我還像新娘犹菇。我一直安慰自己,他們只是感情好芽卿,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布揭芍。 她就那樣靜靜地躺著,像睡著了一般卸例。 火紅的嫁衣襯著肌膚如雪称杨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天筷转,我揣著相機(jī)與錄音姑原,去河邊找鬼。 笑死呜舒,一個(gè)胖子當(dāng)著我的面吹牛锭汛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播袭蝗,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼唤殴,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了到腥?” 一聲冷哼從身側(cè)響起朵逝,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乡范,沒想到半個(gè)月后配名,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體啤咽,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年段誊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了闰蚕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡连舍,死狀恐怖没陡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情索赏,我是刑警寧澤盼玄,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站潜腻,受9級(jí)特大地震影響埃儿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜融涣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一童番、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧威鹿,春花似錦剃斧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至科雳,卻和暖如春根蟹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背糟秘。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工简逮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人尿赚。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓买决,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親吼畏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

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

  • [TOC] 音視頻&流媒體 是什么促使我要寫這一篇音視頻入門文章嘁灯?那是因?yàn)楹鸵幻米哟蛸€碼率的概念泻蚊,結(jié)果輸了;對(duì)一個(gè)...
    AllenWu閱讀 4,796評(píng)論 1 25
  • 前言 說到視頻没卸,大家自己腦子里基本都會(huì)想起電影、電視劇秒旋、在線視頻等等约计,也會(huì)想起一些視頻格式 AVI、MP4迁筛、RMV...
    ForestSen閱讀 22,821評(píng)論 10 202
  • 前言:每個(gè)成功者多是站在巨人的肩膀上煤蚌!在做直播開發(fā)時(shí) 碰到了很多問題,在收集了許多人博客的基礎(chǔ)上做出來了成功的直播...
    _方丈閱讀 23,360評(píng)論 35 330
  • 前言 大半年沒寫博客了细卧,但我一直關(guān)注著互聯(lián)網(wǎng)的動(dòng)向尉桩,最近會(huì)研究很多東西,并分享贪庙,今年移動(dòng)直播行業(yè)的興起蜘犁,誕生了一大...
    flyinskybiu閱讀 6,438評(píng)論 1 25
  • <轉(zhuǎn)> 一、個(gè)人見解(直播難與易) 直播難:個(gè)人認(rèn)為要想把直播從零開始做出來止邮,絕對(duì)是牛逼中的牛逼这橙,大牛中的大牛,因...
    XLsn0w閱讀 1,559評(píng)論 0 5