|
@@ -0,0 +1,139 @@
|
|
|
|
+## ffmpeg学习框架
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+### 三大场景
|
|
|
|
+
|
|
|
|
+RTC
|
|
|
|
+
|
|
|
|
+直播:推流/拉流
|
|
|
|
+
|
|
|
|
+短视频:UGC/播放器
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+### 三大工具
|
|
|
|
+
|
|
|
|
+ffmpeg
|
|
|
|
+
|
|
|
|
+ffplay
|
|
|
|
+
|
|
|
|
+ffprobe
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+### 媒体类型
|
|
|
|
+
|
|
|
|
+音频
|
|
|
|
+
|
|
|
|
+视频
|
|
|
|
+
|
|
|
|
+文本
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+### 通用流程
|
|
|
|
+
|
|
|
|
+```mermaid
|
|
|
|
+graph LR;
|
|
|
|
+ 输入----->处理;
|
|
|
|
+ 处理----->输出;
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+```mermaid
|
|
|
|
+graph LR;
|
|
|
|
+ 采集---->前处理---->编码---->存储/传输;
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+采集 = 输入
|
|
|
|
+
|
|
|
|
+前处理 + 编码 = 处理
|
|
|
|
+
|
|
|
|
+存储/传输 = 输出
|
|
|
|
+
|
|
|
|
+```mermaid
|
|
|
|
+graph LR;
|
|
|
|
+ 存储/传输---->解码---->后处理---->播放;
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+存储/传输 = 输入
|
|
|
|
+
|
|
|
|
+解码 + 后处理 = 处理
|
|
|
|
+
|
|
|
|
+播放 = 输出
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+### 数据格式
|
|
|
|
+
|
|
|
|
+为什么叫数据格式,跟工程上常说的数据结构有什么异同
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+原始数据
|
|
|
|
+
|
|
|
|
+编码后数据
|
|
|
|
+
|
|
|
|
+容器封装/流媒体协议
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+### ffmpeg整体框架
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+```mermaid
|
|
|
|
+graph LR;
|
|
|
|
+ 视频---->视频输入;
|
|
|
|
+ 视频输入---->采集;
|
|
|
|
+ 采集---->模拟/测试/null;
|
|
|
|
+ 采集---->摄像头;
|
|
|
|
+ 采集---->屏幕;
|
|
|
|
+ 视频输入---->文件input[文件];
|
|
|
|
+ 文件input[文件]---->抓包文件;
|
|
|
|
+ 文件input[文件]---->常见多媒体文件input[常见多媒体文件];
|
|
|
|
+ 视频输入---->流式input[流式];
|
|
|
|
+ 流式input[流式]---->协议input[rtp/rtmp/hls];
|
|
|
|
+ 视频---->视频处理;
|
|
|
|
+ 视频---->视频输出;
|
|
|
|
+ 视频输出---->播放;
|
|
|
|
+ 视频输出---->文件output[文件];
|
|
|
|
+ 文件output[文件]---->常见多媒体文件output[常见多媒体文件];
|
|
|
|
+ 视频输出---->流式output[流式];
|
|
|
|
+ 流式output[流式]---->协议output[rtp/rtmp/hls];
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+```mermaid
|
|
|
|
+graph LR;
|
|
|
|
+ 音频---->音频输入;
|
|
|
|
+ 音频输入---->采集;
|
|
|
|
+ 采集---->模拟/测试/null;
|
|
|
|
+ 采集---->麦克风;
|
|
|
|
+ 音频输入---->文件input[文件];
|
|
|
|
+ 文件input[文件]---->抓包文件;
|
|
|
|
+ 文件input[文件]---->常见多媒体文件input[常见多媒体文件];
|
|
|
|
+ 音频输入---->流式input[流式];
|
|
|
|
+ 流式input[流式]---->协议input[rtp/rtmp/hls];
|
|
|
|
+ 音频---->音频处理;
|
|
|
|
+ 音频---->音频输出;
|
|
|
|
+ 音频输出---->播放;
|
|
|
|
+ 音频输出---->文件output[文件];
|
|
|
|
+ 文件output[文件]---->常见多媒体文件output[常见多媒体文件];
|
|
|
|
+ 音频输出---->流式output[流式];
|
|
|
|
+ 流式output[流式]---->协议output[rtp/rtmp/hls];
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+### ffmpeg百宝箱 - help命令
|
|
|
|
+
|
|
|
|
+TODO
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|