首頁 > 軟體

FFmpeg/WebRTC/RTMP 音視訊流媒體高階開發知識點總結

2021-05-17 10:31:00

知識點概要

音視訊基礎知識開發環境支援 WIN/LINUX/MAC 三大平臺FFmpeg 命令FFmpeg APIFFmpeg 播放器FFmpeg 轉碼器RTMP/RTSP/HLS/HTTP-FLV 流媒體客戶端開 發SRS 流媒體伺服器源碼分析WebRTC 一對一通話WebRTC 多人通話Janus SFU(WebRTC)伺服器源碼分析

1、音視訊基礎知識

基礎知識:

PCM 格式、編碼原理等YUV 格式、IPB 幀原理等

Ffmpeg 環境搭建:

掌握Windows 平臺、Linux 平臺、 MAC 平臺 三個平臺的搭建

常用工具:

MediaInfo

2、FFmpeg 命令學習

2.1 命令幫助

如何查詢 Ffmpeg 命令幫助 Ffmpeg 命令分類

2.2 ffplay 命令

ffplay 播放控制ffplay 播放 pcm 、yuv 、使用 filter

2.3 ffmpeg 命令

pcm 、yuv 、aac、h264提取視訊錄製命令多媒體檔案的分解/複用命令裁剪與合併命令圖片/視訊互轉命令直播相關命令各種濾鏡命令

3、FFmpeg 程式設計實戰

3.1 音視訊渲染實戰

SDL 環境搭建 、事件處理 、執行緒處理YUV 視訊播放實戰PCM 聲音播放實戰

3.2 FFmpeg API

FFmpeg 框架分析 、記憶體模型分析、常用結構體

3.3 音視訊編解碼

FFmpeg 解碼流程分析AAC、H264 編解碼原理AAC、H264 解碼實戰MP3 轉 AAC 實戰

3.4 音視訊封裝格式

FLV、MP4 封裝格式分析 封裝格式分析多媒體解複用實戰多媒體複用實戰多媒體轉封裝格式實戰音訊重取樣視訊尺寸變換

3.5 音視訊過濾器

音視訊過濾器視訊過濾器過濾器實際項目實現

3.6 ffplay 播放器

掌握 ffplay.c 的意義ffplay 框架分析音視訊解碼 、控制 、同步參數機制

3.7 播放器開發實戰

播放器框架分析模組劃分音視訊解碼播放器控制音視訊同步

3.8 ffmpeg 錄製轉 碼

掌握 ffmpeg.c 的意義ffmpeg 框架分析 音視訊編碼封裝格式轉換提取音訊 、視訊 logo 疊加 音視訊檔案拼接 filter 機制

4、流媒體客戶端實戰

4.1 RTMP 流媒體

RTMP 協議分析wireshark 抓包分析H264 RTMP 、AAC RTMP封裝RTMP 拉流實戰H264 RTMP 、AAC RTMP解析RTMP 推流實戰

4.2 HLS 流媒體

HLS 、HTTP協議、TS 格式分析 、wireshark 抓包、FFmpeg HLS 源碼分析HLS 拉流實戰、多位元速率機制

4.3 HTTP-FLV 流媒體

HTTP-FLV 協議分析 、wireshark 抓包分析 、http chunk 機制分析HTTP-FLV 拉流實戰FFmpeg HTTP-FLV 源碼分析

4.4 RTSP 流媒體實戰

RTSP 、RTP、RTCP協議分析H264 RTP封裝、 解析AAC RTP封裝 、解析RTSP流媒體伺服器搭建、推流、拉流實戰wireshark 抓包分析

FFmpeg視訊私信獲取、備註FFmpeg資料。

5、SRS 流媒體伺服器

SRS 4.0 源碼剖析

整體框架分析RTMP 推流分析、拉流分析HLS 拉流分析HTTP-FLV 拉流分析FFmpeg 轉碼分析首屏秒開技術分析forward 叢集源碼分析edge 叢集源碼分析負載均衡部署方式

6、WebRTC 實戰

6.1 WebRTC 中級開發

WebRTC 通話原理分析WebRTC 開發環境搭建coturn 最佳搭建方法如何採集音視訊資料一對一通話時序分析信令伺服器設計SDP 分析Candidate 類型分析Web 一對一通話Web 和 Android 通話AppRTC 快速演示

6.2 WebRTC 高階開發

自定義攝像頭解析度位元速率限制調整編碼器順序Mesh 模型多方通話Janus 框架分析Janus Web、Android、Windows客戶端源碼分析Janus 信令設計基於 Janus 實現會議系統WebRTC 源碼編譯擁塞控制演算法FEC jitter buffer

6.3 Janus 伺服器源碼分析

源碼結構插件機制執行緒分析信令互動過程videoroom 分析sdp、rtp、srtp、rtcp 、stun、turn 分析

7、Android NDK 開發

音視訊開發

So 庫適配總結JNI Native 層構建 Java 物件JNI 異常處理編譯 FFmpeg、ijkplayer基於 ijkplayer 二次開發OpenSL ES 播放音訊資料MediaCodec 硬體解碼OpenGL ES Shader 顯示視訊RTMP 推流直播

ps:音視訊學習知識體系


IT145.com E-mail:sddin#qq.com