1. 程式人生 > 其它 >音視訊學習路線!

音視訊學習路線!

前言:

大家假期好,之前有幾個粉絲朋友聯絡我私底下說,能不能寫一篇有關音視訊學習的路線;

這幾天我也思前想後,我該怎樣寫一篇關於音視訊的學習路線,音視訊學習資料再網上本來就少,而且系統的資料更少,就像上次我說的書籍推薦,我至今在知乎和csdn上,找的書籍大都大同小異。

同時也提前說一下,我本人目前不是專門做音視訊相關的崗位開發,但是由於業餘時間對這塊非常感興趣,也在公眾號上寫了一些學習總結,期間不斷有朋友過來相互交流,非常感謝他們,讓我開闊了視野,更加對音視訊這塊有了一個清晰的認識!

下面我寫這篇文章的時候,我會結合一些實際企業招聘的要求來結合寫,其實最近一段時間,我也抽時間去面試了一些流媒體崗位(這裡說一下,嵌入式端和網際網路的音視訊差別不是很大,很多音視訊知識互通的!),給大家提示一下,網路基礎知識非常重要,裡面會設計到很多網路協議!(下面是和一位粉絲朋友交流的最多的對話,他做的是一個奧運會專案,壓力特別大,進度特別趕,不容易!)

一、看看實際音視訊招聘要求:

我們可以開啟Boss直聘軟體來看一些音視訊的企業招聘要求:

這幾個招聘要求應該是比較有代表性的,有大廠的也有小廠的;通過上面要求,我們可以發現以下幾點是我們在平時學習過程必須要去認真學習的:

  • ffmpeg

  • h264、h265

  • rtsp(這裡面更多的是rtp和rtcp)、rtmp

  • 常見的封裝格式(ts、flv、mp4等)

  • 音訊、視訊,關於它的解碼和編碼

  • webrtc,這個更多的是在流媒體這塊更偏向網際網路方向,當然現在很多嵌入式崗位也會要求這個。

這裡也外加一點硬性的基本要求:c/c++、資料結構、網路基礎知識,這裡不乏要學習go(當然這塊偏向網際網路,對於嵌入式崗位的朋友,可以不用去學習,但是c和c++這最基本的要求)

不知道大家看完這些,內心是什麼感受哈,如果你是一個對音視訊這塊安全是剛接觸的話,可以從基本的一些基礎知識開始,比如說,大部分書籍上寫的基礎知識點:

  • 幀率、解析度、重新整理率

  • 編碼格式和封裝格式

  • 位元速率和畫質

  • DTS和PTS

  • 時間戳

當你對上面的一些概念有了一個大概的瞭解後,就可以去學習一下ffmpeg的使用,比如說它的常用命令使用,剛開始學習,我建議你到它的官網學習哈(當然在這之前,你要搭建一個ffmpeg環境,不然光看,不動手,肯定是學不會的,這裡建議可以不用去看書,直接看手冊一定可以學會的):

https://www.ffmpeg.org/ffmpeg.html

然後接著你可以學會使用ffmpeg常用介面,剛學這個ffmpeg,建議不要去研究它的原始碼(這個東西比較耗時間,等你有了一定知識量或者基礎更紮實了,你再來研究裡面的原理也不遲,現階段你要的就是使用起來,可以做一些簡單的東西出來,比如播放器等等),關於ffmpeg開源專案,可以在學習ffmpeg的時候,可以參考雷霄驊前輩的學習總結:

https://blog.csdn.net/leixiaohua1020?spm=1001.2014.3001.5509

接著往下,你可以去學習rtsp、rtmp相關協議,學習這些協議的時候,更多的是動手寫程式碼實踐,因為關於協議的文件裡面的知識點很多,你不可能一下記住,只有使用起來,才能理解和掌握的更深。

最後,我個人建議,你可以學習一下開源的流媒體伺服器srs:

https://github.com/ossrs/srs

一些該支援的都支援了:

二、個人看法:

這裡的學習路線,我沒有去展開具體知識去分享,我覺得把大體的方向給大家列出來就行,具體的細節知識點,你在學習這些大方向的時候,自然而然的就會遇到!其實音視訊資料我這裡有很多,有需要的朋友可以私下找我拿:

同時我這裡也有視訊教程,也可以私底下找我拿。

總體來說,上面的分享都是對音視訊入門最為基本的要求了,其實裡面更多的是要實踐!

最後希望以上的分享對大家有幫助!

三、總結:

大家在學習完這些,可能會問,有沒有開源專案啊,想練練手,當然是有的,暫時你先把基礎的知識學習完吧,如果要的話,可以私聊我!