|
@@ -1,21 +1,17 @@
|
|
## ffmpeg工具手册
|
|
## ffmpeg工具手册
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
// 常见功能应该可以快速链接到底下的详细功能模块
|
|
// 常见功能应该可以快速链接到底下的详细功能模块
|
|
|
|
|
|
### 常见功能及简介
|
|
### 常见功能及简介
|
|
|
|
|
|
#### 视频
|
|
#### 视频
|
|
|
|
|
|
-视频输入 - 采集:
|
|
|
|
|
|
+<a id="video-cap-title">[视频输入 - 采集](#video-cap)</a>
|
|
|
|
|
|
视频输入 - 文件:
|
|
视频输入 - 文件:
|
|
|
|
|
|
视频输入 - 流式:
|
|
视频输入 - 流式:
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
视频处理 - 提取:
|
|
视频处理 - 提取:
|
|
|
|
|
|
视频处理 - 转码:
|
|
视频处理 - 转码:
|
|
@@ -34,28 +30,20 @@
|
|
|
|
|
|
视频处理 - 抽帧:
|
|
视频处理 - 抽帧:
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
视频输出 - 播放:
|
|
视频输出 - 播放:
|
|
|
|
|
|
视频输出 - 文件:
|
|
视频输出 - 文件:
|
|
|
|
|
|
视频输出 - 流式:
|
|
视频输出 - 流式:
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
#### 音频
|
|
#### 音频
|
|
|
|
|
|
-音频输入 - 采集:
|
|
|
|
|
|
+<a id="audio-cap-title">[音频输入 - 采集](#audio-cap)</a>
|
|
|
|
|
|
音频输入 - 文件:
|
|
音频输入 - 文件:
|
|
|
|
|
|
音频输入 - 流式:
|
|
音频输入 - 流式:
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
音频处理 - 提取:
|
|
音频处理 - 提取:
|
|
|
|
|
|
音频处理 - 转码:
|
|
音频处理 - 转码:
|
|
@@ -68,53 +56,95 @@
|
|
|
|
|
|
音频处理 - 变速:
|
|
音频处理 - 变速:
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
音频输出 - 播放:
|
|
音频输出 - 播放:
|
|
|
|
|
|
音频输出 - 文件:
|
|
音频输出 - 文件:
|
|
|
|
|
|
音频输出 - 流式:
|
|
音频输出 - 流式:
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
### 功能详细介绍
|
|
### 功能详细介绍
|
|
|
|
|
|
-#### 视频输入 - 采集 TODO
|
|
|
|
-
|
|
|
|
-常用参数及参数含义
|
|
|
|
-
|
|
|
|
-参数常用取值
|
|
|
|
-
|
|
|
|
-常见实例:相较简单的场景
|
|
|
|
|
|
+#### 采集
|
|
|
|
|
|
-使用中常见的error,原因及解决方法
|
|
|
|
|
|
+mac: avfoundation
|
|
|
|
|
|
-不常用参数/不常用参数取值,如何通过help获取
|
|
|
|
|
|
+##### 常用参数
|
|
|
|
|
|
|
|
+1. `-list_devices <true|false>` 用于查看设备支持的采集设备列表
|
|
|
|
+ > 示例及输出:
|
|
|
|
+ > `ffmpeg_thin -f avfoundation -list_devices true -i ''`
|
|
|
|
+ > [AVFoundation indev @ 0x7fe5ae905a80] AVFoundation video devices:
|
|
|
|
+ > [AVFoundation indev @ 0x7fe5ae905a80] [0] FaceTime高清摄像头(内建)
|
|
|
|
+ > [AVFoundation indev @ 0x7fe5ae905a80] [1] Capture screen 0
|
|
|
|
+ > [AVFoundation indev @ 0x7fe5ae905a80] AVFoundation audio devices:
|
|
|
|
+ > [AVFoundation indev @ 0x7fe5ae905a80] [0] MacBook Pro麦克风
|
|
|
|
+2. `-capture_raw_data` 是否捕获原始设备数据。默认值为 0
|
|
|
|
+ > -c copy
|
|
|
|
+3. `-drop_late_frames` 是否丢弃比期望晚的视频帧,默认值为 true
|
|
|
|
+4. `-capture_cursor` 是否捕获鼠标指针,默认值为 0,即不捕获
|
|
|
|
+5. `-capture_mouse_clicks` 是否捕获屏幕鼠标点击。默认值为 0
|
|
|
|
|
|
|
|
+#### <a id="video-cap">[视频输入 - 采集](#video-cap-title)</a>
|
|
|
|
|
|
-#### 音频输入 - 采集
|
|
|
|
|
|
+##### 常用参数、参数含义及常用取值
|
|
|
|
|
|
|
|
+1. `-video_device_index` 指定视频采集设备
|
|
|
|
+2. `-fixel_format` 指定视频采集的像素格式,默认是 yuv420p,如果采集时没有指定,且采集设备不支持默认,会默认选择支持列表的第一条作为默认值
|
|
|
|
+ > [avfoundation @ 0x7fe78f204300] Supported pixel formats:
|
|
|
|
+ > [avfoundation @ 0x7fe78f204300] uyvy422
|
|
|
|
+ > [avfoundation @ 0x7fe78f204300] yuyv422
|
|
|
|
+ > [avfoundation @ 0x7fe78f204300] nv12
|
|
|
|
+ > [avfoundation @ 0x7fe78f204300] 0rgb
|
|
|
|
+ > [avfoundation @ 0x7fe78f204300] bgr0
|
|
|
|
+3. `-vframes` 视频帧数
|
|
|
|
+4. `-framerate` / `-r` 指定视频帧率, 默认是 ntsc, 60ifps
|
|
|
|
+ > i 代表隔行扫描,p 代表逐行扫描
|
|
|
|
+ > 
|
|
|
|
+5. `-video_size` / `-s` 指定视频帧宽高
|
|
|
|
+ > 
|
|
|
|
+6. `-vcodec` / `-codec:v` / `-c:v` 指定视频的编码格式,默认是 libx264
|
|
|
|
+7. `-b:v` 视频码率
|
|
|
|
+8. `-aspect` 设置宽高比例 (4:3, 16:9 or 1.3333, 1.7777)
|
|
|
|
+9. `-vf` 视频过滤器 (scale, crop, split)
|
|
|
|
+10. `-vn` 不处理视频
|
|
|
|
|
|
|
|
+##### 不常用参数/不常用参数取值,如何通过help获取
|
|
|
|
|
|
|
|
+##### 常见实例:相较简单的场景
|
|
|
|
|
|
-
|
|
|
|
-#### 视频输出 - 播放
|
|
|
|
|
|
+```Shell
|
|
|
|
+##### 将视频设备 0 中的视频和音频设备 0 中的音频录制到 out.avi 中
|
|
|
|
+ffmpeg -f avfoundation -i "0:0" out.avi
|
|
|
|
|
|
|
|
|
|
|
|
+##### 将视频设备 2 中的视频和音频设备 1 中的音频录制到 out.avi 中
|
|
|
|
+ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi
|
|
|
|
|
|
|
|
|
|
|
|
+##### 使用像素格式 bgr0 从系统默认视频设备录制视频,并且不将任何音频录制到 out.avi 中
|
|
|
|
+ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
|
|
|
|
+```
|
|
|
|
|
|
-#### 音频输出 - 播放
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+##### 使用中常见的error,原因及解决方法
|
|
|
|
|
|
|
|
+#### <a id="audio-cap">[音频输入 - 采集](#audio-cap-title)</a>
|
|
|
|
|
|
|
|
+##### 常用参数、参数含义及常用取值
|
|
|
|
|
|
|
|
+1. `-audio_device_index` 指定视频采集设备
|
|
|
|
+2. `-aframes` 音频帧率
|
|
|
|
+3. `-b:a` 音频码率
|
|
|
|
+4. `-ar` 采样率
|
|
|
|
+5. `-ac` 声道
|
|
|
|
+6. `-acodec` / `-codec:a` / `-c:a` 音频编码器 (libmp3lame, copy 保留原始编码方式)
|
|
|
|
+7. `-af` 音频过滤器
|
|
|
|
+8. `-an` 不处理音频
|
|
|
|
|
|
|
|
+##### 不常用参数/不常用参数取值,如何通过help获取
|
|
|
|
|
|
|
|
+#### 视频输出 - 播放
|
|
|
|
|
|
|
|
+#### 音频输出 - 播放
|
|
|
|
|
|
### 常见使用需求或复杂使用场景
|
|
### 常见使用需求或复杂使用场景
|
|
|
|
|
|
@@ -152,8 +182,6 @@ WAV格式音频转成PCM格式
|
|
|
|
|
|
推流,转推流,24小时循环文件推流
|
|
推流,转推流,24小时循环文件推流
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
#### 视频
|
|
#### 视频
|
|
|
|
|
|
录制一段摄像头视频
|
|
录制一段摄像头视频
|
|
@@ -206,8 +234,6 @@ mp4提取视频,格式YUV
|
|
|
|
|
|
直播添加水印
|
|
直播添加水印
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
#### ffprobe
|
|
#### ffprobe
|
|
|
|
|
|
查看视频关键帧间隔,查看pts,dts
|
|
查看视频关键帧间隔,查看pts,dts
|