音視頻開(kāi)發(fā)之旅(32)-音視頻學(xué)習(xí)資料
共 4035字,需瀏覽 9分鐘
·
2022-02-09 17:35
目錄
- 為什么要學(xué)習(xí)音視頻?
- 如何學(xué)習(xí)系統(tǒng)性音視頻?
- 音視頻相關(guān)的資料
- 學(xué)習(xí)實(shí)踐的輸出文章分類(lèi)聚合
- 收獲
最近有朋友問(wèn)想學(xué)習(xí)音視頻,應(yīng)該怎么學(xué),有什么資料嗎?
這個(gè)問(wèn)題也困擾我很久,幾年前就想開(kāi)始音視頻相關(guān)的學(xué)習(xí),但是一直找不到門(mén)道,堅(jiān)持不過(guò)兩周。回看這個(gè)系列文章,到目前寫(xiě)了30+篇,雖還不敢說(shuō)已入門(mén),因?yàn)樵綄W(xué)越發(fā)現(xiàn) 不會(huì)的知識(shí)、需要學(xué)的東西就越多。但為什么相比過(guò)去幾年的幾次嘗試,這次持續(xù)時(shí)間更長(zhǎng)、不斷有文章輸出呢?
這篇文章就和對(duì)自己進(jìn)行檢視反思,希望對(duì)想學(xué)習(xí)音視頻的朋友也有所幫助。
為什么要學(xué)習(xí)音視頻?
我是做android應(yīng)用開(kāi)發(fā),android本身也是有很多需要深入學(xué)習(xí)的內(nèi)容,越是底層的、基礎(chǔ)的東西越是通用,比如說(shuō)設(shè)計(jì)模式、數(shù)據(jù)結(jié)構(gòu)、算法、通信機(jī)制、多線(xiàn)程機(jī)制、JVM虛擬機(jī)等等。把上面這些內(nèi)容結(jié)合具體業(yè)務(wù)和場(chǎng)景學(xué)好應(yīng)用好,對(duì)自己的提升也是十分有裨益。我的一個(gè)學(xué)習(xí)榜樣就是在這方面有很深的認(rèn)知和能力。
對(duì)于我個(gè)人而言,音視頻的情懷,4-5年前已經(jīng)埋下,當(dāng)時(shí)做了一款直播點(diǎn)播的體育類(lèi)app,接觸到一些音視頻相關(guān)的知識(shí),當(dāng)時(shí)還寫(xiě)過(guò)一篇有頭無(wú)尾的文章[android音視頻點(diǎn)/直播模塊開(kāi)發(fā)]: https://blog.csdn.net/u011570979/article/details/51205401,但是后面由于工作方向的外部原因,以及更重要的是自己認(rèn)知不足,對(duì)音視頻的學(xué)習(xí)和發(fā)展道路還沒(méi)有比較強(qiáng)烈的渴望,就不了了之了。
在2020年國(guó)慶期間,重新檢視了下自己的規(guī)劃和年度目標(biāo),發(fā)現(xiàn)最重要的個(gè)人目標(biāo)“音視頻開(kāi)發(fā)上道”,竟然還沒(méi)有具體邁出第一步。和自己認(rèn)真對(duì)話(huà)之后想清楚了兩個(gè)問(wèn)題
- 為什么要學(xué)習(xí)音視頻
- 如何系統(tǒng)性的學(xué)習(xí)音視頻
然后就開(kāi)始了這一系列的學(xué)習(xí)實(shí)踐,主要還是認(rèn)知的提升、著眼長(zhǎng)遠(yuǎn)、系統(tǒng)性的思維。
隨著近些年以抖/快為代表的短視頻、以B站為代表的長(zhǎng)視頻的快速發(fā)展,對(duì)16年左右比較火熱的直播進(jìn)行了一次變化,但是還是在音視頻領(lǐng)域,我們來(lái)看下來(lái)在“Trustdata大數(shù)據(jù)”最新的數(shù)據(jù)
上述內(nèi)容來(lái)源于 [Trustdata大數(shù)據(jù)] : https://mp.weixin.qq.com/s/otGI_yvvF_Q0L2mDrhtxyg
通過(guò)上面的Top20排行榜,我們可以清晰的看到直接和音視頻相關(guān)的app有5個(gè),更驚人的是這top20的app,幾乎都有音視頻相關(guān)的內(nèi)容,這就是行業(yè)現(xiàn)狀或者趨勢(shì)吧。
現(xiàn)在音視頻都已經(jīng)那么火了,現(xiàn)在學(xué)還有機(jī)會(huì)嗎?
右側(cè)追擊的理論同樣適用于我們的學(xué)習(xí)實(shí)踐。音視頻行業(yè)快速發(fā)展的底層是信息通信的越來(lái)越高效,芯片設(shè)備的越來(lái)要強(qiáng)大和智能。隨著5G、6G的應(yīng)用,相信未來(lái)音視頻不是什么發(fā)展方向,而是像水電一樣的基礎(chǔ)功能。也是基于這個(gè)認(rèn)知的改變,讓自己堅(jiān)信了音視頻這條發(fā)展的道路。
代碼引用[FFmpeg 音視頻開(kāi)發(fā) 20 年]中的一段文字
下一個(gè)10年,技術(shù)還是那些技術(shù),主角或許從移動(dòng)App,變成了AI,邊緣計(jì)算。如果不是xx戰(zhàn),今年海思的AI芯片,4T算力的可能會(huì)在下探到10個(gè)美金以下。芯片的大規(guī)模量產(chǎn),價(jià)格下降,會(huì)帶動(dòng)行業(yè)新一輪變革。
軟件開(kāi)發(fā)者,也會(huì)有相應(yīng)的全新的機(jī)會(huì),音視頻,網(wǎng)絡(luò)通訊,OpenGL/ES 都是必須要掌握的,從事相關(guān)開(kāi)發(fā),加上OpenCV, Tensorflow-lite. 深度學(xué)習(xí)基礎(chǔ)。 個(gè)人一點(diǎn)看法,僅供參考。
所以單純聊 FFmpeg 已經(jīng)沒(méi)有什么意義,聊點(diǎn)音視頻,數(shù)字圖像處理,網(wǎng)絡(luò)通訊,跟 FFmpeg 相關(guān)的,或許更有參考價(jià)值。FFmpeg 的未來(lái)在哪里? 一項(xiàng)技術(shù)只能在一個(gè)合適的時(shí)間段解決一個(gè)特定的問(wèn)題。
編解碼都被硬件做了還需要軟件開(kāi)發(fā)嗎?
編解碼無(wú)論硬解軟解代碼量都很少。幾十行代碼的事。在一個(gè)項(xiàng)目中占比很少。大量的代碼在于網(wǎng)絡(luò)通訊,圖像處理,軟件自身的邏輯等。
二、如何學(xué)習(xí)系統(tǒng)性音視頻?
項(xiàng)目管理的很重要的一環(huán)就是任務(wù)的拆解,然后逐步的實(shí)現(xiàn)。之前是想走捷徑,想一步就學(xué)成,哪有什么速成之術(shù),特別對(duì)于知識(shí)系統(tǒng)很龐大的體系,分布拆解、逐步學(xué)習(xí)實(shí)踐是非常重要的。
也是在2020年國(guó)慶期間,通過(guò)搜索資料結(jié)合自己的思考,逐步形成了如下5個(gè)階段的學(xué)習(xí)
- 音視頻 android基礎(chǔ)
- OpenGL ES
- JNI&NDK系列
- FFmpeg、x264
- 開(kāi)源項(xiàng)目(exoplayer、ijkplayer、gpuimage)
- 后續(xù)待定(暫未加入)… 比如openCV、 webRTC
這些非常重要,這些階段是學(xué)習(xí)路上的關(guān)鍵節(jié)點(diǎn),構(gòu)成了認(rèn)知地圖,然后每個(gè)階段,去找對(duì)應(yīng)的資料再把任務(wù)拆解成子任務(wù),通過(guò)輸出倒逼輸入,不斷迭代自己的學(xué)習(xí)寫(xiě)作系統(tǒng)。
三、音視頻相關(guān)的資料
3.1 圖書(shū)類(lèi)
《音視頻開(kāi)發(fā)進(jìn)階指南》
《FFmpeg從入門(mén)到精通》
《OpenGL ES應(yīng)用開(kāi)發(fā)實(shí)踐指南》
《OpenGL ES 3.0編程指南》
《OpenGL編程指南》
《計(jì)算機(jī)圖形學(xué)基礎(chǔ)(OpenGL版)》
《漫畫(huà)算法》
《編程珠璣》
《算法》
《Tinking in C++》
3.2 系統(tǒng)認(rèn)知類(lèi)
[FFmpeg 音視頻開(kāi)發(fā) 20 年] : https://blog.csdn.net/chenchao_shenzhen/article/details/111532282?spm=1000.2115.3001.4373
[ Android 音視頻開(kāi)發(fā)學(xué)習(xí)思路 ] : https://www.cnblogs.com/renhui/
[音視頻開(kāi)發(fā)學(xué)習(xí)路線(xiàn)-字節(jié)流動(dòng)] : https://mp.weixin.qq.com/s/u1MktZdId94bqoI-3DWosA
[Android 音視頻開(kāi)發(fā)入門(mén)指南] : https://blog.51cto.com/ticktick/1956269
[從開(kāi)發(fā)小白到音視頻專(zhuān)家] : https://blog.51cto.com/ticktick/2046899
[《ywl5320的專(zhuān)欄》]:https://blog.csdn.net/ywl5320
3.3 在線(xiàn)視頻資料
[音視頻開(kāi)發(fā)工作經(jīng)驗(yàn)分享] : https://www.bilibili.com/video/BV1p54y1X7fY
[計(jì)算機(jī)圖形學(xué)OPENGL入門(mén)] : https://www.bilibili.com/video/BV1px41197A5
[尚硅谷Java數(shù)據(jù)結(jié)構(gòu)與java算法(Java數(shù)據(jù)結(jié)構(gòu)與算法)] : https://www.bilibili.com/video/BV1E4411H73v
[【C語(yǔ)言描述】《數(shù)據(jù)結(jié)構(gòu)和算法》(小甲魚(yú))] : https://www.bilibili.com/video/BV1jW411K7yg
[黑馬程序員匠心之作|C++教程從0到1入門(mén)編程,學(xué)習(xí)編程不再難] : https://www.bilibili.com/video/BV1et411b73Z
[Android設(shè)計(jì)進(jìn)階篇-實(shí)戰(zhàn)NDK(中)] : https://www.bilibili.com/video/BV1Za4y1J7fQ
[基于FFmpeg+SDL的視頻播放器的制作——雷霄驊] : https://www.bilibili.com/video/BV14x411D7FD
四、寫(xiě)文章分類(lèi)聚合
對(duì)自己已寫(xiě)的文章進(jìn)行聚類(lèi),也放在[github]: https://github.com/ayyb1988/mediajourney上,方便后續(xù)更新,
階段一:andorid多媒體
音視頻開(kāi)發(fā)之旅(二)AudioRecord錄制PCM音頻
音視頻開(kāi)發(fā)之旅(三)AudioTrack播放PCM音頻
音視頻開(kāi)發(fā)之旅(五)MediaExtractor MediaMuxer 實(shí)現(xiàn)視頻的解封裝與合成
音視頻開(kāi)發(fā)之旅(六)MediaCodec硬編解流程與實(shí)踐
階段二: OpenGL ES
音視頻開(kāi)發(fā)之旅(七) OpenGL ES 基本概念
音視頻開(kāi)發(fā)之旅(八)GLSL及Shader的渲染流程
音視頻開(kāi)發(fā)之旅(九) OpenGL ES 繪制平面圖形
音視頻開(kāi)發(fā)之旅(十) GLSurfaceView源碼解析&EGL環(huán)境
音視頻開(kāi)發(fā)之旅(11) OpenGL ES矩陣變換與坐標(biāo)系統(tǒng)
音視頻開(kāi)發(fā)之旅(12) OpenGL ES之紋理
音視頻開(kāi)發(fā)之旅(13) OpenGL ES 濾鏡 (篇一)
音視頻開(kāi)發(fā)之旅(14) OpenGL ES 實(shí)時(shí)濾鏡
音視頻開(kāi)發(fā)之旅(15) OpenGL ES粒子系統(tǒng) - 噴泉
音視頻開(kāi)發(fā)之旅(16) OpenGL ES粒子效果-煙花爆炸
階段三: JNI&NDK
音視頻開(kāi)發(fā)之旅(17) JNI與NDK的學(xué)習(xí)和使用
音視頻開(kāi)發(fā)之旅(18) JNI - 引用類(lèi)型、異常處理、函數(shù)注冊(cè)
音視頻開(kāi)發(fā)之旅(19)NDK構(gòu)建方式 ndk-build與cmake
音視頻開(kāi)發(fā)之旅(20) 指針、內(nèi)存模型、引用
音視頻開(kāi)發(fā)之旅(21)運(yùn)算符重載、繼承、多態(tài)、模版
子系列 算法
音視頻開(kāi)發(fā)之旅(23) 算法系列 - 冒泡排序
音視頻開(kāi)發(fā)之旅(24) 算法系列-快速排序
音視頻開(kāi)發(fā)之旅(26) 算法系列-選擇、插入排序以及STL中sort的實(shí)現(xiàn)
音視頻開(kāi)發(fā)之旅(27) 算法序列 - 二叉查找樹(shù)
音視頻開(kāi)發(fā)之旅(28) 算法序列 - 平衡二叉樹(shù)
音視頻開(kāi)發(fā)之旅(29) 算法序列 - 散列表
階段四 : FFmpeg
音視頻開(kāi)發(fā)之旅(30) -音視頻基礎(chǔ)知識(shí)
音視頻開(kāi)發(fā)之旅(31) -FFMPEG常用命令
后續(xù)系列文章持續(xù)輸出中,歡迎關(guān)注公眾號(hào)“音視頻開(kāi)發(fā)之旅”,一起學(xué)習(xí)成長(zhǎng)。
五、收獲
通過(guò)互動(dòng),得知朋友的困擾,也幫忙自己檢視和梳理自己
- 重新檢視了為什么要學(xué)習(xí)音視頻
- 學(xué)習(xí)音視頻的方法、資料
- 學(xué)習(xí)實(shí)踐的文章分類(lèi)聚合梳理
感謝你的閱讀
下一篇我們學(xué)習(xí)實(shí)踐ffmpeg系列,歡迎關(guān)注公眾號(hào)“音視頻開(kāi)發(fā)之旅”,一起學(xué)習(xí)成長(zhǎng)。
歡迎交流
