目錄
- 為什么要學習音視頻比吭?
- 如何學習系統(tǒng)性音視頻?
- 音視頻相關的資料
- 學習實踐的輸出文章分類聚合
- 收獲
最近有朋友問想學習音視頻严肪,應該怎么學史煎,有什么資料嗎?
這個問題也困擾我很久驳糯,幾年前就想開始音視頻相關的學習篇梭,但是一直找不到門道,堅持不過兩周酝枢√裢担回看這個系列文章,到目前寫了30+篇帘睦,雖還不敢說已入門袍患,因為越學越發(fā)現 不會的知識坦康、需要學的東西就越多。但為什么相比過去幾年的幾次嘗試诡延,這次持續(xù)時間更長滞欠、不斷有文章輸出呢?
這篇文章就和對自己進行檢視反思肆良,希望對想學習音視頻的朋友也有所幫助筛璧。
為什么要學習音視頻?
我是做android應用開發(fā)妖滔,android本身也是有很多需要深入學習的內容隧哮,越是底層的、基礎的東西越是通用座舍,比如說設計模式沮翔、數據結構、算法曲秉、通信機制采蚀、多線程機制、JVM虛擬機等等承二。把上面這些內容結合具體業(yè)務和場景學好應用好榆鼠,對自己的提升也是十分有裨益。我的一個學習榜樣就是在這方面有很深的認知和能力亥鸠。
對于我個人而言妆够,音視頻的情懷,4-5年前已經埋下负蚊,當時做了一款直播點播的體育類app神妹,接觸到一些音視頻相關的知識,當時還寫過一篇有頭無尾的文章[android音視頻點/直播模塊開發(fā)]: https://blog.csdn.net/u011570979/article/details/51205401,但是后面由于工作方向的外部原因家妆,以及更重要的是自己認知不足鸵荠,對音視頻的學習和發(fā)展道路還沒有比較強烈的渴望,就不了了之了伤极。
在2020年國慶期間蛹找,重新檢視了下自己的規(guī)劃和年度目標,發(fā)現最重要的個人目標“音視頻開發(fā)上道”哨坪,竟然還沒有具體邁出第一步庸疾。和自己認真對話之后想清楚了兩個問題
- 為什么要學習音視頻
- 如何系統(tǒng)性的學習音視頻
然后就開始了這一系列的學習實踐,主要還是認知的提升齿税、著眼長遠彼硫、系統(tǒng)性的思維。
隨著近些年以抖/快為代表的短視頻、以B站為代表的長視頻的快速發(fā)展拧篮,對16年左右比較火熱的直播進行了一次變化词渤,但是還是在音視頻領域,我們來看下來在“Trustdata大數據”最新的數據
上述內容來源于 [Trustdata大數據] : https://mp.weixin.qq.com/s/otGI_yvvF_Q0L2mDrhtxyg
通過上面的Top20排行榜串绩,我們可以清晰的看到直接和音視頻相關的app有5個缺虐,更驚人的是這top20的app,幾乎都有音視頻相關的內容礁凡,這就是行業(yè)現狀或者趨勢吧高氮。
現在音視頻都已經那么火了,現在學還有機會嗎顷牌?
右側追擊的理論同樣適用于我們的學習實踐剪芍。音視頻行業(yè)快速發(fā)展的底層是信息通信的越來越高效,芯片設備的越來要強大和智能窟蓝。隨著5G罪裹、6G的應用,相信未來音視頻不是什么發(fā)展方向运挫,而是像水電一樣的基礎功能状共。也是基于這個認知的改變,讓自己堅信了音視頻這條發(fā)展的道路谁帕。
代碼引用[FFmpeg 音視頻開發(fā) 20 年]中的一段文字
下一個10年峡继,技術還是那些技術,主角或許從移動App匈挖,變成了AI碾牌,邊緣計算。如果不是xx戰(zhàn)儡循,今年海思的AI芯片小染,4T算力的可能會在下探到10個美金以下。芯片的大規(guī)模量產贮折,價格下降,會帶動行業(yè)新一輪變革资盅。
軟件開發(fā)者调榄,也會有相應的全新的機會,音視頻呵扛,網絡通訊每庆,OpenGL/ES 都是必須要掌握的,從事相關開發(fā)今穿,加上OpenCV, Tensorflow-lite. 深度學習基礎缤灵。 個人一點看法,僅供參考。
所以單純聊 FFmpeg 已經沒有什么意義腮出,聊點音視頻帖鸦,數字圖像處理,網絡通訊胚嘲,跟 FFmpeg 相關的作儿,或許更有參考價值。FFmpeg 的未來在哪里馋劈? 一項技術只能在一個合適的時間段解決一個特定的問題攻锰。
編解碼都被硬件做了還需要軟件開發(fā)嗎?
編解碼無論硬解軟解代碼量都很少。幾十行代碼的事妓雾。在一個項目中占比很少娶吞。大量的代碼在于網絡通訊,圖像處理械姻,軟件自身的邏輯等妒蛇。
二、如何學習系統(tǒng)性音視頻策添?
項目管理的很重要的一環(huán)就是任務的拆解材部,然后逐步的實現。之前是想走捷徑唯竹,想一步就學成乐导,哪有什么速成之術,特別對于知識系統(tǒng)很龐大的體系浸颓,分布拆解物臂、逐步學習實踐是非常重要的。
也是在2020年國慶期間产上,通過搜索資料結合自己的思考棵磷,逐步形成了如下5個階段的學習
- 音視頻 android基礎
- OpenGL ES
- JNI&NDK系列
- FFmpeg、x264
- 開源項目(exoplayer晋涣、ijkplayer仪媒、gpuimage)
- 后續(xù)待定(暫未加入)… 比如openCV、 webRTC
這些非常重要谢鹊,這些階段是學習路上的關鍵節(jié)點算吩,構成了認知地圖,然后每個階段佃扼,去找對應的資料再把任務拆解成子任務偎巢,通過輸出倒逼輸入,不斷迭代自己的學習寫作系統(tǒng)兼耀。
三压昼、音視頻相關的資料
3.1 圖書類
《音視頻開發(fā)進階指南》
《FFmpeg從入門到精通》
《OpenGL ES應用開發(fā)實踐指南》
《OpenGL ES 3.0編程指南》
《OpenGL編程指南》
《計算機圖形學基礎(OpenGL版)》
《漫畫算法》
《編程珠璣》
《算法》
《Tinking in C++》
3.2 系統(tǒng)認知類
[FFmpeg 音視頻開發(fā) 20 年] : https://blog.csdn.net/chenchao_shenzhen/article/details/111532282?spm=1000.2115.3001.4373
[ Android 音視頻開發(fā)學習思路 ] : https://www.cnblogs.com/renhui/
[音視頻開發(fā)學習路線-字節(jié)流動] : https://mp.weixin.qq.com/s/u1MktZdId94bqoI-3DWosA
[Android 音視頻開發(fā)入門指南] : https://blog.51cto.com/ticktick/1956269
[從開發(fā)小白到音視頻專家] : https://blog.51cto.com/ticktick/2046899
[《ywl5320的專欄》]:https://blog.csdn.net/ywl5320
3.3 在線視頻資料
[音視頻開發(fā)工作經驗分享] : https://www.bilibili.com/video/BV1p54y1X7fY
[計算機圖形學OPENGL入門] : https://www.bilibili.com/video/BV1px41197A5
[尚硅谷Java數據結構與java算法(Java數據結構與算法)] : https://www.bilibili.com/video/BV1E4411H73v
[【C語言描述】《數據結構和算法》(小甲魚)] : https://www.bilibili.com/video/BV1jW411K7yg
[黑馬程序員匠心之作|C++教程從0到1入門編程,學習編程不再難] : https://www.bilibili.com/video/BV1et411b73Z
[Android設計進階篇-實戰(zhàn)NDK(中)] : https://www.bilibili.com/video/BV1Za4y1J7fQ
[基于FFmpeg+SDL的視頻播放器的制作——雷霄驊] : https://www.bilibili.com/video/BV14x411D7FD
四求冷、寫文章分類聚合
對自己已寫的文章進行聚類,也放在[github]: https://github.com/ayyb1988/mediajourney上窍霞,方便后續(xù)更新匠题,
階段一:andorid多媒體
音視頻開發(fā)之旅(二)AudioRecord錄制PCM音頻
音視頻開發(fā)之旅(三)AudioTrack播放PCM音頻
音視頻開發(fā)之旅(五)MediaExtractor MediaMuxer 實現視頻的解封裝與合成
音視頻開發(fā)之旅(六)MediaCodec硬編解流程與實踐
階段二: OpenGL ES
音視頻開發(fā)之旅(八)GLSL及Shader的渲染流程
音視頻開發(fā)之旅(九) OpenGL ES 繪制平面圖形
音視頻開發(fā)之旅(十) GLSurfaceView源碼解析&EGL環(huán)境
音視頻開發(fā)之旅(11) OpenGL ES矩陣變換與坐標系統(tǒng)
音視頻開發(fā)之旅(13) OpenGL ES 濾鏡 (篇一)
音視頻開發(fā)之旅(14) OpenGL ES 實時濾鏡
音視頻開發(fā)之旅(15) OpenGL ES粒子系統(tǒng) - 噴泉
音視頻開發(fā)之旅(16) OpenGL ES粒子效果-煙花爆炸
階段三: JNI&NDK
音視頻開發(fā)之旅(18) JNI - 引用類型、異常處理官撼、函數注冊
音視頻開發(fā)之旅(19)NDK構建方式 ndk-build與cmake
音視頻開發(fā)之旅(21)運算符重載傲绣、繼承掠哥、多態(tài)、模版
子系列 算法
音視頻開發(fā)之旅(26) 算法系列-選擇秃诵、插入排序以及STL中sort的實現
階段四 : FFmpeg
后續(xù)系列文章持續(xù)輸出中续搀,歡迎關注公眾號“音視頻開發(fā)之旅”,一起學習成長菠净。
五禁舷、收獲
通過互動,得知朋友的困擾毅往,也幫忙自己檢視和梳理自己
- 重新檢視了為什么要學習音視頻
- 學習音視頻的方法牵咙、資料
- 學習實踐的文章分類聚合梳理
感謝你的閱讀
下一篇我們學習實踐ffmpeg系列,歡迎關注公眾號“音視頻開發(fā)之旅”攀唯,一起學習成長洁桌。
歡迎交流