一、基础信息查询
- 版本与支持查询
ffmpeg -version # 查看版本信息 ffmpeg -codecs # 列出所有编解码器 ffmpeg -formats # 查看支持的文件格式 ffmpeg -filters # 显示可用滤镜
- 文件信息分析
ffmpeg -i input.mp4 # 查看视频分辨率/编码/时长等元数据
二、格式转换与转码
- 封装格式转换(不重编码)
ffmpeg -i input.mp4 -c copy output.mkv # MP4转MKV ffmpeg -i input.mkv -c copy output.mp4 # MKV转MP4
- 编码格式转换
# 视频转H.265,音频转AAC ffmpeg -i input.mp4 -vcodec libx265 -acodec aac output.mp4
- 裸流提取
ffmpeg -i input.mp4 -an -c:v copy output.h264 # 提取H264视频裸流 ffmpeg -i input.mp4 -vn -acodec copy output.aac # 提取AAC音频
️ 三、视频参数调整
- 分辨率与帧率
ffmpeg -i input.mp4 -s 640x480 output.mp4 # 强制分辨率 ffmpeg -i input.mp4 -vf "scale=1280:-1" out.mp4 # 宽度1280,高度等比缩放 ffmpeg -i input.mp4 -r 30 output.mp4 # 修改帧率为30fps
- 码率控制
ffmpeg -i input.mp4 -b:v 1M output.mp4 # 视频码率1Mbps
- 剪裁与分段
ffmpeg -i input.mp4 -ss 00:01:00 -t 30 -c copy clip.mp4 # 截取1分00秒起30秒片段
️ 四、高级处理功能
- 滤镜特效
# 添加文字水印 ffmpeg -i input.mp4 -vf "drawtext=text='Watermark':x=10:y=10" output.mp4 # 画面居中缩放(动态效果) ffmpeg -i input.mp4 -vf "scale=w=iw*0.8:h=ih*0.8,pad=iw:ih:(ow-iw)/2:(oh-ih)/2" output.mp4
- 流媒体推流
ffmpeg -i input.mp4 -c:v libx264 -f flv rtmp://server/live/stream # 本地推RTMP流
- 视频合并
# 创建合并列表文件 echo "file 'part1.mp4'" > list.txt echo "file 'part2.mp4'" >> list.txt ffmpeg -f concat -i list.txt -c copy output.mp4
五、音频处理
- 参数调整
ffmpeg -i input.mp3 -ar 44100 output.mp3 # 设置采样率44.1kH ffmpeg -i input.mp3 -ab 192k output.mp3 # 设置比特率192kbps
- 格式转换
ffmpeg -i input.wav -acodec libmp3lame output.mp3 # WAV转MP3
️ 注意事项
- 编解码效率
- 使用
-preset
参数平衡速度与质量(如-preset fast
) - GPU加速需指定硬件编解码器(如
-c:v h264_nvenc
)
- 使用
- 画质保护
- 优先用
-c copy
避免重编码损失画质 - 缩放建议配合
flags=lanczos
保留细节
- 优先用
完整命令手册:
ffmpeg -h full
动态参数技巧参考:FFmpeg官方文档