shijing 1 ano atrás
pai
commit
b0074c43d5
6 arquivos alterados com 362 adições e 4 exclusões
  1. 1 0
      .gitignore
  2. 2 2
      ffmpeg_cmd_params.md
  3. 2 0
      ffmpeg_io.md
  4. 216 0
      ffmpeg工具手册.md
  5. 139 0
      ffmpeg整体学习框架.md
  6. 2 2
      ffplay_cmd.md

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+.idea

+ 2 - 2
ffmpeg_cmd_params.md

@@ -55,7 +55,7 @@
 
 -ac 声道
 
--acodec 音频编码器:libmp3lame / copy保留原始编码方式
+-acodec 音频编码器:libmp3lame / copy 保留原始编码方式
 
 -an 不处理音频
 
@@ -77,7 +77,7 @@
 
 -vn 不处理视频
 
--vcodec 视频编码器:libx264 / copy保留原始编码方式 
+-vcodec 视频编码器:libx264 / copy 保留原始编码方式 
 
 -vf 视频过滤器
 ```

+ 2 - 0
ffmpeg_io.md

@@ -1,5 +1,7 @@
 ## ffmpeg 输入输出
 
+https://segmentfault.com/a/1190000042391748
+
 ### 输入
 
 1. 文件输入

+ 216 - 0
ffmpeg工具手册.md

@@ -0,0 +1,216 @@
+## ffmpeg工具手册
+
+
+
+// 常见功能应该可以快速链接到底下的详细功能模块
+
+### 常见功能及简介
+
+#### 视频
+
+视频输入 - 采集:
+
+视频输入 - 文件:
+
+视频输入 - 流式:
+
+
+
+视频处理 - 提取:
+
+视频处理 - 转码:
+
+视频处理 - 拼接:
+
+视频处理 - 截取:
+
+视频处理 - 裁剪:
+
+视频处理 - 融合:
+
+视频处理 - 变速:
+
+视频处理 - 水印:
+
+视频处理 - 抽帧:
+
+
+
+视频输出 - 播放:
+
+视频输出 - 文件:
+
+视频输出 - 流式:
+
+
+
+
+
+#### 音频
+
+音频输入 - 采集:
+
+音频输入 - 文件:
+
+音频输入 - 流式:
+
+
+
+音频处理 - 提取:
+
+音频处理 - 转码:
+
+音频处理 - 拼接:
+
+音频处理 - 截取:
+
+音频处理 - 融合:
+
+音频处理 - 变速:
+
+
+
+音频输出 - 播放:
+
+音频输出 - 文件:
+
+音频输出 - 流式:
+
+
+
+### 功能详细介绍
+
+#### 视频输入 - 采集    TODO
+
+常用参数及参数含义
+
+参数常用取值
+
+常见实例:相较简单的场景
+
+使用中常见的error,原因及解决方法
+
+不常用参数/不常用参数取值,如何通过help获取
+
+
+
+#### 音频输入 - 采集
+
+
+
+
+
+#### 视频输出 - 播放
+
+
+
+
+
+#### 音频输出 - 播放
+
+
+
+
+
+
+
+
+
+### 常见使用需求或复杂使用场景
+
+// 应该有一个每个需求如何详细展示的例子,需要包含命令和其他什么?
+
+#### 音频
+
+录制一段音频
+
+播放一段音频
+
+播放PCM格式音频
+
+边采集边播放音频
+
+mp4提取音频,格式WAV
+
+WAV格式音频转成PCM格式
+
+音频变速
+
+播放抓包文件
+
+音频格式转码
+
+抽取pcm数据
+
+播放rtp流
+
+重采样pcm数据
+
+合并多个文件 - 转码
+
+合并多个文件 - 非转码
+
+推流,转推流,24小时循环文件推流
+
+
+
+#### 视频
+
+录制一段摄像头视频
+
+录制一段屏幕视频
+
+播放一段视频
+
+播放YUV格式视频
+
+播放h264格式视频
+
+边采集边播放视频
+
+mp4提取视频,格式YUV
+
+拼接视频片段
+
+视频变速
+
+间隔1s提取视频帧换面,保存为图片
+
+截取视频片段
+
+添加时间水印,自定义位置,颜色,大小
+
+视频指定分辨率转码
+
+加水印
+
+抽取264数据
+
+播放抓包文件
+
+视频格式转码
+
+播放rtp流
+
+视频文件加字幕
+
+合并多个文件 - 转码
+
+合并多个文件 - 非转码
+
+推流,转推流,24小时循环文件推流
+
+截取视频中的某些帧,并存储成图片
+
+截取直播流片段
+
+直播添加水印
+
+
+
+#### ffprobe
+
+查看视频关键帧间隔,查看pts,dts
+
+查看文件元信息
+

+ 139 - 0
ffmpeg整体学习框架.md

@@ -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
+
+
+

+ 2 - 2
ffplay_cmd.md

@@ -59,9 +59,9 @@ ffplay test.mp4 -af atempo=2 -vf setpts=PTS/2
 + ac: 设置音频声道
 
 ```Shell
-ffplay -pixel_format yuv420p -video_size 320*240 xxxx.yuv
+ffplay -pixel_format yuv420p -video_size 320x240 xxxx.yuv
 
-ffplay -pixel_format rgb24 -video_size 320*240 xxxx.rgb
+ffplay -pixel_format rgb24 -video_size 320x240 xxxx.rgb
 
 ffplay -ar 48000 -ac 2 -f s16le xxxx.pcm
 ```