FFmpeg是一套可以用来转换数字音频、视频的开源代码工程,能够编译出SDK(库)和命令行工具。用户可以使用SDK开发程序实现音视频的操作,也可以使用命令行工具ffmpeg实现音视频的操作。
一、常用参数
-
-i inputfile
指定输入文件
-
-ss position
指定开始处理的时间点,例如 -ss 00:01:29 表示从1分29秒开始
-
-t duration
指定处理的持续时间,例如 -t 60 表示处理60秒
-
-vf filters
设置视频过滤器,用于对视频进行处理,例如 -vf "scale=1280:720" 表示将视频缩放为640x480
-
-af filters
设置音频过滤器,用于对音频进行处理,例如 -af "volume=3" 表示将音量增大两倍
-
-c:v codec
指定视频编解码器
-
-c:a codec
指定音频编解码器。
-
-b:v bitrate
指定视频的比特率
-
-b:a bitrate
指定音频的比特率
-
-r framerate
指定视频的帧率
-
-s resolution
指定视频的分辨率
-
-f format
指定输出的文件格式
-
-map
选择指定的流进行处理,例如 -map 0:0 表示选择第一个输入文件的第一个流进行处理
-
-y
覆盖已存在的输出文件
二、常用命令
- 转码视频: mp4转avi
bash
ffmpeg -i input.mp4 output.avi
- 转码音频:mp3转wav
bash
ffmpeg -i input.mp3 output.wav
- 改变视频尺寸
bash
ffmpeg -i input.mp4 -vf scale=640:480 output.mp4
- 改变视频帧率
bash
ffmpeg -i input.mp4 -r 30 output.mp4
- 按时间裁剪视频
bash
ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:30 -c:v copy -c:a copy output.mp4
- mp4中提取音频
bash
ffmpeg -i input.mp4 -vn -acodec copy output.aac
- 改变音量
bash
ffmpeg -i input.mp4 -af volume=2 output.mp4
- 合并视频
bash
ffmpeg -i "concat:input1.mp4|input2.mp4" -c copy output.mp4
- 添加字幕
bash
ffmpeg -i input.mp4 -vf "subtitles=test.srt" output.mp4
- 转换GIF图像
bash
ffmpeg -ss 00:00:05 -t 3 -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" output.gif
- 静音
bash
ffmpeg -i video_input.mp4 -an -video_output.mp4
- 录屏
bash
ffmpeg -i /dev/video0 output.mkv
- 查看版本
bash
ffmpeg -version
- 提取某一帧
bash
ffmpeg -i input.mp4 -ss 00:00:30 -frames:v 1 output-30.png
- 查看支持的格式
bash
ffmpeg -formats
- 查看支持的像素格式
bash
ffmpeg -pix_fmts
- 查看支持的采样格式
bash
ffmpeg -sample_fmts
- 查看支持的过滤器
bash
ffmpeg -filters