命令格式
ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...
ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
参数选项
(1) -an: 去掉音频
(2) -vn: 去掉视频
(3) -acodec: 设定音频的编码器,未设定时则使用与输入流相同的编解码器。音频解复用在一般后面加copy表示拷贝
(4) -vcodec: 设定视频的编码器,未设定时则使用与输入流相同的编解码器,视频解复用一般后面加copy表示拷贝
(5) –f: 输出格式(视频转码)
(6) -bf: B帧数目控制
(7) -g: 关键帧间隔控制(视频跳转需要关键帧)
(8) -s: 设定画面的宽和高,分辨率控制(352*278)
(9) -i: 设定输入流
(10) -ss: 指定开始时间(0:0:05)
(11) -t: 指定持续时间(0:05)
(12) -b: 设定视频流量,默认是200Kbit/s
(13) -aspect: 设定画面的比例
(14) -ar: 设定音频采样率
(15) -ac: 设定声音的Channel数
(16) -r: 提取图像频率(用于视频截图)
(17) -c:v: 输出视频格式
(18) -c:a: 输出音频格式
(18) -y: 输出时覆盖输出目录已存在的同名文件
-vcoder 设定视频的编码器,未设定时则使用与输入流相同的编解码器
直接使用
$ ffmpeg -i input.mp4 output.avi
1. -i 输入文件路径
2. 命令行最后是输出文件路径
修改视频帧率
$ ffmpeg -i input.avi -r 24 output.avi // 强制把输出视频文件帧率改为 24 fps:
-r 帧率
截图命令
截取一张352x240尺寸大小,格式为jpg的图片
$ ffmpeg -i input_file -y -f image2 -t 0.001 -s 352x240 output.jpg
多图合并
多张截图合并到一个文件里(2x3)每隔一千帧(秒数=1000/fps25)即40s截一张图
ffmpeg -i out.mp4 -frames 3 -vf "select=not(mod(n\,1000)),scale=320:240,tile=2x3" out.png