Mac 使用 ffmpeg(命令行工具)

496 阅读4分钟
ffmpeg -i input.mov -c:v h264_videotoolbox -b:{bitrate} -c:a aac
output. mp4

# or 

ffmpeg -i input.mov -c:v h264_videotoolbox -b:1000-c:a aac
output. mp4

使用 ffmpeg(命令行工具)

ffmpeg 是一个强大的多媒体处理工具,适合快速转换视频格式和调整分辨率。

1. 安装 ffmpeg

如果你还没有安装 ffmpeg,可以通过 Homebrew 安装:

bash

复制

brew install ffmpeg

2. 转换 .mov 为 .mp4(1080p)

使用以下命令将 .mov 文件转换为 1920x1080 的 .mp4 文件:

bash

复制

ffmpeg -i input.mov -vf "scale=1920:1080" -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4

参数说明:

  • i input.mov:指定输入文件。
  • vf "scale=1920:1080":将视频分辨率调整为 1920x1080。
  • c:v libx264:使用 H.264 编码器。
  • crf 23:控制视频质量,范围是 0(无损)到 51(最差),23 是默认值,质量较好。
  • preset medium:平衡编码速度和质量(可选:ultrafastsuperfastveryfastfasterfastmediumslowslowerveryslow)。
  • c:a aac:使用 AAC 音频编码器。
  • b:a 128k:设置音频比特率为 128kbps。
  • output.mp4:指定输出文件名。

3. 运行命令

将 input.mov 替换为你的文件名,然后运行命令。转换完成后,你会得到一个 output.mp4 文件。

加快转化速度

如果你希望在使用 ffmpeg 转换视频时 加快速度,可以通过调整编码参数来优化性能。以下是一些常用的方法:


1. 使用更快的编码预设(preset

ffmpeg-preset 参数控制编码速度和质量之间的平衡。默认是 medium,你可以选择更快的预设来加快速度:

ffmpeg -i input.mov -vf "scale=1920:1080" -c:v libx264 -crf 23 -preset fast -c:a aac -b:a 128k output.mp4

可选的 preset 值:

  • ultrafast:最快,但质量最低。
  • superfast
  • veryfast
  • faster
  • fast:比 medium 快,质量稍低。
  • medium(默认)
  • slow:更高质量,但速度较慢。
  • slower
  • veryslow:最慢,但质量最高。

注意:越快的预设会降低压缩效率,可能导致文件变大或质量稍低。


2. 使用硬件加速(如果支持)

如果你的设备支持硬件加速(如 Intel Quick Sync、NVIDIA NVENC 或 AMD AMF),可以显著加快编码速度。

使用 NVIDIA NVENC(需要 NVIDIA GPU 和驱动支持):

ffmpeg -i input.mov -vf "scale=1920:1080" -c:v h264_nvenc -preset fast -cq 23 -c:a aac -b:a 128k output.mp4

使用 Intel Quick Sync(需要 Intel GPU):

ffmpeg -i input.mov -vf "scale=1920:1080" -c:v h264_qsv -preset fast -global_quality 23 -c:a aac -b:a 128k output.mp4

使用 AMD AMF(需要 AMD GPU):

ffmpeg -i input.mov -vf "scale=1920:1080" -c:v h264_amf -quality speed -c:a aac -b:a 128k output.mp4

注意:硬件加速可能会稍微降低质量,但速度会显著提升。


3. 降低 CRF 值(牺牲一些质量)

  • crf 参数控制视频质量,值越低质量越高,但文件越大。适当提高 crf 值可以加快编码速度:
ffmpeg -i input.mov -vf "scale=1920:1080" -c:v libx264 -crf 26 -preset fast -c:a aac -b:a 128k output.mp4
  • 默认 crf 23,你可以尝试 crf 26 或更高(范围是 0-51,值越大质量越低)。

4. 禁用音频重新编码

如果不需要重新编码音频,可以复制原始音频流以加快速度:

ffmpeg -i input.mov -vf "scale=1920:1080" -c:v libx264 -crf 23 -preset fast -c:a copy output.mp4
  • c:a copy:直接复制音频流,不重新编码。

5. 多线程编码

ffmpeg 默认会使用多线程,但你可以手动指定线程数以优化性能:

ffmpeg -i input.mov -vf "scale=1920:1080" -c:v libx264 -crf 23 -preset fast -threads 4 -c:a aac -b:a 128k output.mp4
  • threads 4:指定使用 4 个线程(根据你的 CPU 核心数调整)。

6. 使用更快的缩放算法

  • vf "scale=1920:1080" 默认使用高质量的双线性缩放算法。你可以使用更快的算法(如 neighborbilinear):
ffmpeg -i input.mov -vf "scale=1920:1080:flags=neighbor" -c:v libx264 -crf 23 -preset fast -c:a aac -b:a 128k output.mp4
  • flags=neighbor:使用最近邻算法(最快,但质量较低)。
  • flags=bilinear:使用双线性算法(较快,质量中等)。

7. 示例命令(综合优化)

以下是一个综合优化的命令:

ffmpeg -i input.mov -vf "scale=1920:1080" -c:v libx264 -crf 26 -preset superfast -threads 4 -c:a copy output.mp4
  • crf 26:稍微降低质量以加快速度。
  • preset superfast:使用更快的编码预设。
  • threads 4:使用 4 个线程。
  • c:a copy:直接复制音频流。

总结

  • 使用更快的 preset(如 superfastultrafast)。
  • 启用硬件加速(如 NVIDIA NVENC 或 Intel Quick Sync)。
  • 适当提高 crf 值以加快速度。
  • 直接复制音频流(c:a copy)。
  • 使用多线程(threads)。

如果你有硬件加速支持,强烈推荐使用硬件加速,速度会显著提升!