关于-ffmpeg
工作模式
视频剪切与合并
剪切
主要用到两个参数: -ss
(seek start, 指定片段起始位置), -t
(duration, 指定处理时间).
1 |
|
这里用 hh:mm:ss
的格式指定时间.
注意 -ss
参数需放在 -i
之后.
也可以用 -to
(to) 替换 -t
指定片段终止位置.
合并
先将要合并的视频文件列举在一个文本中:
1 |
|
之后:
1 |
|
-f concat
指定输出文件的格式为concat
, 即一个拼接类型-c copy
指定编解码器为copy
, 直接复制输入而不进行重新编码
过滤器 filter
filter 可用于对图像进行变换, 如修改:
- 尺寸
- 颜色
- 旋转
- 增加滤镜
可以指定一系列的 filter.
指定 filter
-vf
(video filter) 指定视频过滤器.
-af
(audio filter) 指定音频过滤器.
修改尺寸
用 “scale” 这个 filter:
1 |
|
(1024 为宽, 576 为高, 值若为 -1 则有 ffmpeg 自行更具另一参数推断)
旋转视频
用 “transpose”:
1 |
|
常用选项:
- 0: 不进行旋转 (默认值)
- 1: 顺时针旋转90度
- 2: 逆时针旋转90度
- 3: 旋转180度
- clock:顺时针旋转90度和垂直翻转
- cclock:逆时针旋转90度和垂直翻转
- clock_flip:顺时针旋转90度和水平翻转
- cclock_flip: 逆时针旋转90度和水平翻转
组合 filter
1 |
|
裁剪
用 “crop=w:h:x:y”, w
为宽度, h
为高度, x
为左上角为原点的横坐标, y
为纵坐标.
1 |
|
也可以为表达式:
1 |
|
iw
: (input width)ih
: (input height)
调节音量大小
1 |
|
指定视频质量
-crf
(constant rate factor) 参数:
1 |
|
取值范围为 0-51
, 值越大表示图像质量越差. 0
表示无损压缩, 输出的文件较大. 常用到 19-28
指定编码速度 (关系到生成的文件大小)
用 -preset
指定编码器预设速度, 速度越快, 所生成的文件越大:
1 |
|
常见 option 有:
- ultrafast
- superfast
- veryfast
- faster
- fast
- medium
- slow
- slower
- veryslow
指定解码器
1 |
|
[stream_specifier]
可以为:
v
: videoa
: audios
: subtitled
: datat
: attachmentm
: metadatac
: complex
如:
1 |
|
libx264
为指定的解码器.
指定报错等级
1 |
|
flags 有:
repeat
, 同一级别的日志消息可以重复显示level
, 输出中显示日志等级
loglevel 可以为数字或 string:
quiet
, -8panic
, 0fatal
, 8error
, 16warning
, 24info
, 32verbose
, 40debug
, 48trace
, 56
如:
1 |
|
传入多个文件后引用
当给 -i
参数传入多个 options 时, 可以通过索引 (0-based) 来访问这些文件.
将一个视频文件转为 gif
如将 test.mp4
转为 test.gif
1 |
|
设置 output file 的 frame rate
如设置为 24 fps:
1 |
|
删除视频轨
-vn
:
1 |
|
删除音频轨
-an
:
1 |
|
删除字幕
-sn
1 |
|
删除数据流
-dn
1 |
|
输出视频缩略图
1 |
|
添加水印图片
1 |
|
过滤器 “overlay” 将水印图片 cat.jpg
叠加到原始视频之上. (100:100
指定水印的位置)
GIF 动图的转换
最好先剪切片段, 降低视频的帧率, 缩放视频大小之后再处理:
1 |
|
-1:256
表示保持原始视频的宽高比, 并根据指定高度 256 来自动计算相应宽度.
屏幕录像
1 |
|
(这段命令似乎不行)
常见参数
-i
-i
指定 input file url.
-y
表示覆盖输出文件.
-f
指定输出文件类型:
-f mp4
: 指定输出文件格式为MP4-f mov
: 指定输出文件格式为MOV-f avi
: 指定输出文件格式为AVI-f mkv
: 指定输出文件格式为MKV-f flv
: 指定输出文件格式为FLV-f mpeg
: 指定输出文件格式为MPEG-f wav
: 指定输出文件格式为WAV-f mp3
: 指定输出文件格式为MP3