本文介绍在 macOS 下如何使用 FFmpeg 进行视频转码,重点介绍如何利用 videotoolbox 进行 GPU 硬件加速。

1. 安装 FFmpeg

推荐使用 Homebrew 安装:

1
brew install ffmpeg

2. CPU 软解转码 (基础)

最通用的转码方式,使用 CPU 计算,兼容性好但速度较慢。

1
2
3
4
5
ffmpeg -i "input.mkv" \
-s hd720 \
-c:v libx264 -b:v 1M \
-c:a aac -b:a 128k \
output.mp4

3. GPU 硬件加速 (VideoToolbox)

利用 macOS 自带的 VideoToolbox 框架调用核显或独显进行加速。

1
2
3
4
5
6
ffmpeg -hwaccel videotoolbox \
-i "input.mkv" \
-s hd720 \
-c:v h264_videotoolbox -b:v 1M \
-c:a aac -b:a 128k \
output.mp4

参数详解:

  • -hwaccel videotoolbox: 启用硬件加速解码。
  • -c:v h264_videotoolbox: 使用 VideoToolbox 的 H.264 编码器。
  • -b:v 1M: 视频码率设为 1Mbps (控制画质与体积)。
  • -s hd720: 将分辨率调整为 720P。
    • 进阶技巧: 使用 -vf scale=-1:720 可以自动计算宽度以保持宽高比,避免图像拉伸。

4. 提取音频

从视频中提取音频并保存为 MP3。

1
ffmpeg -i video.mp4 -vn -acodec libmp3lame -q:a 2 audio.mp3

5. 图片+音频合成视频

将一张静态图片和音频合并成视频文件。

1
2
3
4
5
6
7
8
9
10
11
ffmpeg -r 1 \
-hwaccel videotoolbox \
-loop 1 \
-i image.jpg \
-i audio.mp3 \
-vf "scale=1280:720" \
-c:v h264_videotoolbox \
-c:a copy \
-framerate 1 \
-t 3600 \
output.mp4