FFmpeg 使用教程

警告
本文最后更新于 2022-09-24,文中内容可能已过时。

FFmpeg 是视频/音频处理最常用的开源软件。

  • -c:指定编码器。-c copy:直接复制,不重新编码,加快生成速度
  • -c:v-vcodec:指定视频编码器。-c:v copy-vcodec copy:不改变视频编码,直接拷贝
  • -c:a-acodec:指定音频编码器。-c:a copy-acodec copy:不改变音频编码,直接拷贝
  • -i:指定输入文件
  • -an:去除音频流
  • -vn:去除视频流
  • -preset:指定输出的视频质量,会影响生成速度。可用值:ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow
  • -y:不经过确认,输出时直接覆盖同名文件
  • -hwaccel cuvid:指定使用 cuvid 硬件加速

举例:

1
ffmpeg -y -c:a libfdk_aac -c:v libx264 -i input.mp4 -c:a libvorbis -c:v libvpx-vp9 output.webm
1
ffmpeg -i input.webm output.mp4
1
ffmpeg -i input.mp4 -vn -acodec copy output.aac
1
ffmpeg -i input.mp4 -an -vcodec copy output.mp4

视频不包含音频:

1
ffmpeg -i video.mp4 -i audio.aac -c:v copy -c:a copy -strict experimental output.mp4

视频包含音频,需要被替换:

1
ffmpeg -i video.mp4 -i audio.aac -c:v copy -c:a copy -strict experimental -map 0:v:0 -map 1:a:0 output.mp4

在第 4.5s 截取一帧图片

1
ffmpeg -i input.mp4 -ss 4.5 -vframes 1 output.png

在第 4.5s 截取 10 帧图片

1
ffmpeg -i input.mp4 -ss 4.5 -vframes 10 output%d.png

改变帧率,设置为 20fps

1
ffmpeg -i input.mp4 -r 20 output.mp4

指定文件大小,设置最大值为 15MB

1
ffmpeg -i input.mp4 -fs 15MB output.mp4

改变分辨率,设置为 1280x720

1
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4

改变码率,设置为 1.5Mb/s

1
ffmpeg -i input.mp4 -b:v 1.5M output.mp4