FFmpeg命令行一览表:从基础操作到高级转码实战指南
·
为什么需要这份FFmpeg备忘录?
每次处理音视频都要翻文档查参数?组合命令时总报错却找不到原因?作为一款强大的多媒体处理工具,FFmpeg的参数复杂度常常让人望而生畏。记得刚入门时,我为了剪一段10秒的视频,居然花了半小时查-crf和-preset的区别。本文把踩过的坑和实战经验整理成速查表,帮你节省30%的调试时间。

一、基础命令分类速查
1. 格式转换(万能模板)
# 通用转码示例(MP4转MOV)
ffmpeg -i input.mp4 -c:v copy -c:a copy output.mov
-c:v copy表示视频流直接复制不重编码- 同理
-c:a处理音频流,适合单纯改格式的场景
2. 视频压缩(平衡质量与体积)
# H.264编码示例(推荐参数)
ffmpeg -i input.mp4 -c:v libx264 -preset slow -crf 23 -c:a aac output.mp4
-preset:越慢压缩率越高(可选:ultrafast/slow/veryslow)-crf:18-28之间质量可接受,值越小画质越好

二、高级操作实战
1. 精准剪辑(避免黑帧问题)
# 截取00:01:00到00:02:30的视频段
ffmpeg -ss 00:01:00 -to 00:02:30 -i input.mp4 -c copy clip.mp4
关键点: 1. -ss放在-i前可加速定位(关键帧搜索) 2. 精确到帧需要加-avoid_negative_ts 1
2. 画中画特效(滤镜链应用)
ffmpeg -i main.mp4 -i overlay.mp4 -filter_complex \
"[1:v]scale=iw/4:ih/4 [pip]; [0:v][pip] overlay=W-w-10:H-h-10" \
output.mp4
scale调整子画面大小overlay控制位置(示例为右下角留10像素边距)
三、性能优化与避坑
CPU占用对比测试(同一段4K视频)
| 参数组合 | 耗时 | CPU峰值 | 输出大小 | |-------------------|-------|--------|----------| | -preset ultrafast | 38s | 90% | 258MB | | -preset slow | 2m12s | 60% | 187MB |
常见问题排查: - 音画不同步:检查输入文件是否带B帧,尝试-fflags +genpts - 绿屏问题:确认解码器支持(如HEVC需要libx265)
安全注意事项
- 处理用户上传文件时,务必先验证文件头
- 避免直接拼接用户输入到命令中,推荐使用:
ffmpeg -safe 0 -i user_input.mp4 ...
进阶挑战
尝试用两个视频源+字幕流生成画中画带字幕的成品,推荐组合: 1. 用subtitles滤镜加载ASS字幕 2. 通过-map指令精确控制流映射 3. 使用-threads参数控制多核利用率
下次遇到媒体处理需求时,不妨先来这份速查表找找灵感~
更多推荐


所有评论(0)