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 192kAAC 音频编码,比特率 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.jpgimg2.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=3180°

总结

操作 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
Logo

音视频技术社区,一个全球开发者共同探讨、分享、学习音视频技术的平台,加入我们,与全球开发者一起创造更加优秀的音视频产品!

更多推荐