FFmpeg 是一个强大的多媒体处理工具,支持音视频转换、剪辑、合并、滤镜、压缩等操作。本文整理了 常见 FFmpeg 命令,并配有 详细说明,帮助你高效使用 FFmpeg。
1. FFmpeg 基础命令
1.1 查看 FFmpeg 版本
ffmpeg -version
查看 FFmpeg 版本、编译选项等信息。
1.2 查看支持的编解码器
ffmpeg -codecs
列出 FFmpeg 支持的所有编解码器(视频、音频、字幕)。
1.3 查看支持的格式
ffmpeg -formats
查看 FFmpeg 支持的输入/输出格式(如 MP4、MKV、MP3、AVI)。
1.4 查看详细的编码器信息
ffmpeg -encoders
列出 FFmpeg 支持的编码器。
1.5 查看详细的解码器信息
ffmpeg -decoders
列出 FFmpeg 支持的解码器。
1.6 查看滤镜(filters)
ffmpeg -filters
列出所有 可用的视频/音频滤镜。
2. 视频格式转换
2.1 转换视频格式
ffmpeg -i input.mp4 output.avi
将 MP4 转换为 AVI(FFmpeg 会自动选择合适的编解码器)。
2.2 指定编码格式
ffmpeg -i input.mp4 -c:v libx264 -preset fast -crf 23 -c:a aac -b:a 192k output.mp4
-c:v libx264
:使用 H.264 视频编码(适合 MP4)-preset fast
:设置 编码速度(可选ultrafast
superfast
veryfast
faster
fast
medium
slow
slower
veryslow
)-crf 23
:质量控制(0 = 无损,51 = 最差,默认 23,建议范围 18-28)-c:a aac -b:a 192k
:AAC 音频编码,比特率 192kbps
3. 视频压缩
3.1 降低视频比特率(减小体积)
ffmpeg -i input.mp4 -b:v 1000k -c:a copy output.mp4
-b:v 1000k
:将 视频比特率 降到 1000kbps-c:a copy
:音频直接拷贝,不重新编码
3.2 指定分辨率(缩小视频)
ffmpeg -i input.mp4 -vf "scale=1280:720" -c:a copy output.mp4
-vf "scale=1280:720"
:将 视频分辨率调整为 1280×720-c:a copy
:音频保持不变
4. 视频剪辑
4.1 裁剪视频(指定开始时间和时长)
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 -c copy output.mp4
-ss 00:00:10
:从第 10 秒开始-t 00:00:20
:截取 20 秒-c copy
:无损剪辑
4.2 截取某个时间段(精确模式)
ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:30 -c:v libx264 -c:a aac output.mp4
-ss 00:00:10
:从 10 秒开始-to 00:00:30
:截取 10 秒 ~ 30 秒- 需要重新编码,避免关键帧误差
5. 处理音频
5.1 提取音频(MP3)
ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
-q:a 0
:高质量 MP3-map a
:只提取音频
5.2 替换视频音轨
ffmpeg -i input.mp4 -i new_audio.mp3 -c:v copy -c:a aac -b:a 192k -map 0:v:0 -map 1:a:0 output.mp4
-map 0:v:0
:使用原视频-map 1:a:0
:使用新的音频
5.3 改变音量
ffmpeg -i input.mp3 -af "volume=1.5" output.mp3
volume=1.5
:音量放大 1.5 倍
6. 处理图片与视频
6.1 图片合成视频
ffmpeg -framerate 1 -i img%d.jpg -c:v libx264 -r 25 -pix_fmt yuv420p output.mp4
-framerate 1
:每张图片播放 1 秒img%d.jpg
:文件名格式img1.jpg
、img2.jpg
…-r 25
:设置 25 fps
6.2 视频转换为图片序列
ffmpeg -i input.mp4 -vf "fps=1" img%d.jpg
fps=1
:每秒截取 1 帧
7. 视频拼接
7.1 合并多个 MP4 文件(无损)
创建 filelist.txt
:
file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'
然后执行:
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
-f concat
:合并模式-safe 0
:允许特殊字符路径
8. 其他高级功能
8.1 添加字幕
ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt" output.mp4
subtitles=subtitle.srt
:嵌入 SRT 字幕
8.2 旋转视频
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
transpose=1
:顺时针 90° 旋转transpose=2
:逆时针 90°transpose=3
:180°
总结
操作 | FFmpeg 命令 |
---|---|
查看版本 | ffmpeg -version |
转换格式 | ffmpeg -i input.mp4 output.avi |
压缩视频 | ffmpeg -i input.mp4 -b:v 1000k output.mp4 |
剪辑视频 | ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 output.mp4 |
提取音频 | ffmpeg -i input.mp4 -q:a 0 output.mp3 |
替换音频 | ffmpeg -i input.mp4 -i new.mp3 -c:v copy -c:a aac output.mp4 |
图片转视频 | ffmpeg -framerate 1 -i img%d.jpg output.mp4 |
视频转图片 | ffmpeg -i input.mp4 -vf "fps=1" img%d.jpg |