一部童年電影帶你搞懂,音視頻開發(fā)到底是個(gè)啥玩意
在一個(gè)夜黑風(fēng)高的晚上,一顆激動(dòng)的心,一雙顫抖的手,點(diǎn)開了那個(gè)神秘的網(wǎng)站。
進(jìn)去后,一股東京的熱浪撲面而來。那一刻,眼前電影的激情絲毫不遜色于好萊塢大片。
那狂野而又原始的咆哮,刺激著你身體的每一個(gè)細(xì)胞。
你也情不自禁的隨著電影動(dòng)了起來。
兩分鐘后,隨著身體的一陣顫抖,整部電影變得索然無味。
進(jìn)入了賢者模式的小馬開始思考,這么精彩的電影,是怎么呈現(xiàn)到我面前的呢?

假設(shè)電影的主角名叫小澤。那么小澤老師從拍電影,到你看電影這中間,發(fā)生了什么呢?

簡單來說,音視頻開發(fā)就是要掌握圖像、視頻、音頻的基本知識(shí),并對它們實(shí)施采集、渲染、處理、傳輸?shù)纫幌盗胁僮鳌?/span>
采集
首先,肯定得需要一臺(tái)攝像機(jī)....咳咳,沒錯(cuò),攝像機(jī)一秒鐘可以捕獲30張小澤的照片,也就是30幀。也就是我們所看到的:視頻
光看畫面肯定是不行的,怎么能沒有小澤老師甜美的聲音呢。所以,我們還需要麥克風(fēng),來采集小澤的聲音,也就是我們所聽到的:音頻
編碼
聲音和視頻的數(shù)據(jù)特別大,并且重復(fù)數(shù)據(jù)很多。為了傳輸和存儲(chǔ),需要將冗余數(shù)據(jù)去掉,這就需要編碼。什么h264,h265說的就是編碼的算法
原始數(shù)據(jù)為什么要編碼呢?直接保存不行么,其實(shí)主要是為了減小文件的大小,便于傳輸和保存。如果不經(jīng)過編解碼處理,那一部幾分鐘的電影可能就要幾個(gè)G大小。那么大的文件,想象一下你在偷偷下載或者拷貝的時(shí)候,是多么的焦慮。
封裝
編碼后的數(shù)據(jù)會(huì)被封裝起來。相當(dāng)于Java的容器,可以有hashmap,linkedList的,音視頻的格式類型可以有MP4、MKV等等封裝格式。
傳輸
傳輸解決的就是小澤老師的作品,是怎么通過播放器(平臺(tái))呈現(xiàn)到你面前的問題了。你既可以看小澤老師的直播,也可以看小澤老師的視頻。既可以在線看,也可以下載后離線觀看。甚至可以從隔壁小馬的U盤里拷貝過來,這都是傳輸路徑。數(shù)據(jù)共享最重要的一點(diǎn)就是傳輸協(xié)議。產(chǎn)生的帶寬不一樣,費(fèi)用也不同。
解封裝
播放器首先會(huì)解封裝,將小澤的身姿(視頻),甜美的聲音(音頻)等數(shù)據(jù)解析出來。
解碼
解析出來的數(shù)據(jù)不能夠被播放器直接使用,所以還需要視頻解碼(以前的播放器加載的時(shí)候會(huì)顯示解碼中,小伙伴們應(yīng)該都看到過,比如現(xiàn)在的bilibili)。回到主題,攝像機(jī)所采集的數(shù)據(jù)是需要通過編碼才可以封裝成MP4的,所以當(dāng)播放器將視頻提取出來的時(shí)候,也就需要解碼才可以播放出來。
渲染播放
無論是哪個(gè)平臺(tái)、哪個(gè)播放器。圖像、視頻最終都是要繪制到視圖上面,而音頻最終都是要輸出到揚(yáng)聲器。平臺(tái)(播放器)將解碼后的視頻、音頻同步后,分別交給視頻驅(qū)動(dòng)(顯卡)和音頻驅(qū)動(dòng)(揚(yáng)聲器)。就是最終呈現(xiàn)在你面前的小電影了。
用一張流程圖總結(jié)一下:

看到這里大家是不是覺得Android音視頻開發(fā)好像也就那么回事呢?理解起來也不難嘛。
為了要大家更輕松無痛的上手學(xué)習(xí)Android音視頻開發(fā)。我特邀前愛奇藝高級工程師Lance為大家?guī)怼禔ndroid--音視頻開發(fā)實(shí)戰(zhàn)》直播分享,兩天時(shí)間,秋名山車神帶你熟練掌握音視頻編碼實(shí)戰(zhàn)、泛娛樂直播系統(tǒng)分析和推流實(shí)戰(zhàn)!

前愛奇藝高級工程師,某游戲公司主程
專精領(lǐng)域:移動(dòng)平臺(tái)開發(fā),NDK、架構(gòu)、性能優(yōu)化;
具備移動(dòng)開發(fā)基礎(chǔ);
具備一定自學(xué)能力;
立志成為高級工程師、架構(gòu)師的安卓開發(fā)者;
3.15 Android音視頻編解碼實(shí)戰(zhàn)
音視頻編解碼原理
h264碼流分析
Android 編碼實(shí)踐
3.16 泛娛樂直播系統(tǒng)分析與推流實(shí)戰(zhàn)
直播系統(tǒng)組成與流媒體協(xié)議
RTMP協(xié)議規(guī)范
手機(jī)端推流器實(shí)踐
《Android音視頻開發(fā)入門進(jìn)階核心筆記》

音視頻知識(shí)龐雜,通俗易懂的資料非常少,目前也沒有比較系統(tǒng)的教程或者書籍,網(wǎng)上的博客文章也都是比較零散的,可能還充斥著大量的錯(cuò)誤信息,使得很多初學(xué)者掉到坑里就爬不出來了。有了這份學(xué)習(xí)筆記,可以助你在音視頻學(xué)習(xí)中節(jié)省大量時(shí)間。
文中福利免費(fèi)贈(zèng)給參加訓(xùn)練營的學(xué)員
加薇薇老師微信報(bào)名訓(xùn)練營
立即獲取
(如遇掃碼頻繁受限,點(diǎn)擊左下角的閱讀原文)
