5G 的商用,使高效高清的直播和视频成为刚需,短视频、娱乐直播等都与音视频联系紧密,各大互联网公司都在储备音视频方向的开发者。但是,网络上关于音视频的学习资料非常少,且几乎没有系统讲解音视频的入门课程。于是这门课应运而生。它系统讲解音视频基础原理,并实战如何从0构建一套可商用的娱乐直播系统。无论你从事哪个方向的开发工作,只要对音视频感兴趣,这门课程便能满足你的需求。
适合人群
对音视频感兴趣的同学
想转行音视频领域的开发者
技术储备要求
对Linux有一定了解
至少掌握一门开发语言基础
第1章 课程導學與準備工作本章主要引見爲何要帶大家學習一個音視頻初級入門课程,本课程中不只係統的解說了音視頻到底是如何工作的,還會將音視頻原理與實戰相分離,解說學習階梯和完成思緒,之後會爲大家引見本课程内容詳細佈置,最後給出如何學好這門课程的一些學習倡議。希望大家都能經過這門课程,學有所成,學有所歸。...1-1 课前必讀(不看會錯過一個億)1-2 课程引見及學習指導 試看第2章 音視頻環境根底本章會解說學習音視頻课程之前必要的根底學問,如Linux常見命令以及環境變量的設置等。在之前的课程中,有很多同窗提出的問題都是Linux的根底學問問題,特別是在Windows下工作的同窗,因而這局部學問關於 Windows 同窗來說至關重要。...2-1 音視頻應用的場景2-2 推流中缀與畫質不精晰的處理方法 試看2-3 Linux根底學問-12-4 Linux根底學問-22-5 穩固Linux根本命令(純熟可跳過)2-6 穩固vim的简單運用(純熟可跳過) 試看2-7 Macinux環境變量的含義與設置第3章 在不同的係統上編译 ffmpeg本章會解說在不同操作係統下如何編译裝置ffmpeg,重點是解說 Windows下編译 ffmpeg的辦法等。實践上,在Windows上編译 ffmpeg 不斷是一個難點,有很多同窗都卡在這個問題上,因而經過本章節的内容就能夠輕鬆處理妳的問題。3-1 Mac或Linux下編译裝置ffmpeg3-2 Windows下編译ffmpeg的幾種方式3-3 Cygwin環境的搭建3-4 Cygwin下裝置ffmpeg3-5 msys2環境的搭建3-6 msys2+mingw編译ffmpeg3-7 msys2+vs編译ffmpeg第4章 C言语回憶本章會率領大家回憶C言语必要的根底學問,重點解說C言语中的指針等難點内容,協助大家爲後續學習開發做好準備。4-1 C言语的HelloWorld4-2 C言语中的根本類型和逻輯運算4-3 C言语中的高級類型:數組、構造體和枚舉類型4-4 C言语中的指針4-5 C言语中指針的運用4-6 内存管理與分配4-7 條件判別與循環4-8 C言语中的函數4-9 C言语如何操作文件第5章 音頻根底學問本章將帶大家學習音頻的根本原理(如聲音是如何產生的,模仿信號是如何轉爲數字信號、音頻的三要素等信息)。這些信息的控製,對大家今後處置音頻相關的問題時有實在的協助,如當妳播放PCM數據時聲音不對,那一定是採樣率、採樣大小或通道數沒有設置正確的缘由。...5-1 音視頻處置流程5-2 聲音是如何被聽到的5-3 聲音的三要素5-4 模數轉換5-5 PCM與WAV第6章 【實戰】音頻採集本章向妳引見了如何經過ffmpeg API停止音視頻數據採集。在解說過程中,將手把手的帶著妳編寫每一行代码,並對每個用到的 API 參數做了細致引見。在本章的最後,妳還將看到如何將採集到的音頻數據錄製成文件。置信這對有錄製請求的同窗也會有很大協助。...6-1 經過命令方式採集音頻數據6-2 swift语法一6-3 swift语法二6-4 創立Mac App6-5 創立 Button6-6 swift調用C言语6-7 Mac App中引入ffmpeg庫6-8 翻開音頻設備6-9 從音頻設備中讀取音頻數據6-10 代码優化6-11 錄製音頻數據6-12 經過界面來控製開啟或關閉錄製第7章 音頻編码原理本章向妳引見多種音頻編码器(如 AAC, OPUS, speex等),並對各種不同的編码器停止比擬,並在眾多的編码器中重點向妳引見了 AAC 編码的以及它的不同級別的特性,同時還向妳引見了 AAC 數據頭(ADTS) 的細致格式。7-1 音頻有损緊缩技術7-2 音頻無损緊缩技術7-3 幾種常見編解码器的比擬7-4 AAC編码器引見7-5 ADTS格式7-6 經過ffmpeg生成AAC數據第8章 【實戰】音頻編码本章以AAC編码爲例,向妳細致引見了如何對PCM數據停止重採樣以到達AAC 編码的請求,然後解說了如何經過ffmpeg獲取AAC編码器,如何設置編码參數,並最終完成編码的過程。在本章的最後,還將向妳細致的引見如何對代码停止優化以到達更好的編码作風。...8-1 什麼是音頻重採樣8-2 實戰音頻重採樣18-3 實戰音頻重採樣28-4 創立AAC編码器18-5 創立AAC編码器28-6 編码運用的輸入輸出數據8-7 AAC編码器編码18-8 AAC編码器編码28-9 代码優化18-10 代码優化28-11 代码優化3第9章 視頻根底學問本章將解說視頻的根底學問(像素、RGB、分辨率等)、視頻帧(圖像)與顯現器之間的關係。重點解說YUV數據格式(如YUV4:4:4、YUV4:2:2、YUV4:2:0等),並讓妳控製 YUV 與RGB 之間的轉換以及視頻未編码码流該如何計算。9-1 圖像的根本概念9-2 屏幕顯現器9-3 码流的計算9-4 圖像的顯現9-5 什麼是YUV9-6 YUV的常見格式9-7 YUV的存儲格式9-8 YUV實戰9-9 實戰從視頻設備上採集數據19-10 實戰從視頻設備上採集數據2第10章 H264編码原理本章將引見H264 的編码原理,這局部是本門课中最關键的學問點,經過本章的内容妳不只能夠晓得H264是如何對視頻停止編码的,還能夠理解H264的數據構造。經過這些學問的學習,妳就能夠處理很多常見的視頻疑問問題,例如爲什麼播放器能夠晓得視頻的分辨率,爲什麼視頻會呈現花屏,爲什麼會呈現卡頓等等。...10-1 H264緊缩码率與GOP10-2 H264中的I帧P帧和B帧10-3 H264中的宏塊10-4 帧内緊缩技術10-5 帧間緊缩技術10-6 H264無损緊缩及編解码處置流程10-7 H264码流構造第11章 【實戰】視頻編码/解码本章將重點引見如何對採集到的視頻數據停止H264編码。同理,只需妳學會了如何停止 H264編码,就會晓得 H265/VP8/VP9如何停止編码。除此之外,妳還將理解一些H264的重要編码參數,在不同的應用場景中控製該用怎樣的參數,這在我們實践工作中是至關重要的。...11-1 H264中的profile和level11-2 H264SPS中的重要參數11-3 H264PPS與Slice-Header11-4 H264剖析工具111-5 H264剖析工具211-6 實戰翻開視頻編码器111-7 實戰翻開視頻編码器211-8 實戰準備要編码的數據11-9 實戰NV12轉YUV420P11-10 實戰H264編码111-11 實戰H264編码211-12 x264參數詳解第12章 【實戰】RTMP傳輸在本章中妳將首先細致理解 RTMP/FLV協議,然後應用librtmp 開源庫將之前編码好的音頻數據(AAC)與 編码好的視頻數據(H264)生成 RTMP 流並推送到 CDN 流媒體效勞器上,從而完成真正的文娱直播。12-1 RTMP衔接的樹立12-2 創立RTMP流12-3 RTMP音訊12-4 RTMP抓包剖析12-5 FLV協議12-6 FLV協議剖析器12-7 推流程序的骨架12-8 翻開FLV文件12-9 衔接RTMP流媒體效勞器12-10 向流媒體效勞器推流12-11 從FLV文件中讀取tag數據112-12 從FLV文件中讀取tag數據212-13 調試與優化第13章 【實戰】CDN 完成商業文娱直播在本章中我們將依照由浅入難的次第,即先引見nginx完成流媒體效勞器,然後解說 SRS 完成流媒體服器,最後解說在真正的商用產品中是如何經過 CDN雲效勞來完成大並發,經過本章的學習,妳開發的產品將從 Demo 晋級爲真正可用的產品。...13-1 泛文娱化直播係統架構引見13-2 本機搭建RTMP效勞13-3 SRS流媒體效勞器简介13-4 SRS單機佈署13-5 RTMP中的URL與VHOST13-6 SRS完成集群佈署13-7 CDN網络13-8 阿里雲視頻直播13-9 真實的直播架構是怎樣的第14章 课程總結本章將帶大家回憶總結课程重點難點,在课程問答區李超教師等著與妳進一步交流,有問題歡送大家到课程問答區發問。14-1 课程總結本课程已結束