SanbilaSanbila

如何用 FFmpeg 创建剪辑代理

可复制的 FFmpeg 命令,生成 H.264、ProRes 和 DNxHR 代理,真正改变输出的少数参数,以及如何批量处理一个素材文件夹。

·阅读 8 分钟
ffmpegproxyworkflowtutorial

FFmpeg 是手动制作剪辑代理最快的免费方式。本指南给出适用于所有剪辑软件三大编解码家族的可用命令,说明真正改变输出的少数参数,并演示如何一次转换整个文件夹。

什么是代理,为什么用 FFmpeg

代理是源片段的一个轻量低分辨率副本。剪辑软件在剪辑时播放代理,并保留指向原始文件的链接用于导出,因此时间线在笔记本上依然流畅,而成片仍以完整画质渲染。FFmpeg 是一个免费开源的命令行工具,几乎能读取任何摄影机格式,并按你软件偏好的编解码器写出代理。

先检查你的安装。在终端运行 ffmpeg -version。这些命令假定 FFmpeg 6 或 7,即 2026 年的常见版本。如果提示缺少 prores_ks 或 dnxhd,说明你的版本编译时未包含它们,见下方错误一节。

Premiere Pro 的 H.264 代理(文件最小)

H.264 生成的代理文件最小,在任何现代 GPU 上都能即时解码,因此是 Adobe Premiere Pro 的稳妥默认选择。下面的命令把片段缩放到 720p 并保留音频。

ffmpeg -i input.mov -vf scale=-2:720 -c:v libx264 -crf 23 -preset fast -c:a aac -b:a 128k proxy.mp4

scale=-2:720 把高度设为 720 像素,并自动计算宽度以保持画面比例,且始终为偶数。crf 越低画质越高、文件越大,越高则相反。23 是代理的一个不错的平衡点。

Final Cut Pro 与 DaVinci Resolve 的 ProRes Proxy

当你在 Final Cut Pro 或 DaVinci Resolve 中剪辑时,ProRes Proxy 是正确选择,因为该编解码器是这些软件的原生格式。Profile 0 是最轻的 ProRes 档位。

ffmpeg -i input.mov -vf scale=-2:720 -c:v prores_ks -profile:v 0 -c:a pcm_s16le proxy.mov

profile:v 0 选择 ProRes Proxy。若想离线画质略高,可用 1 表示 ProRes LT。音频写为未压缩的 PCM,这是 Resolve 和 Final Cut 偏好的格式。

Avid Media Composer 的 DNxHR LB 代理

Avid Media Composer 能顺畅读取 DNxHR。LB(Low Bandwidth,低带宽)是代理档位。为 Avid 把它封装为 MXF 文件。

ffmpeg -i input.mov -vf scale=-2:720 -c:v dnxhd -profile:v dnxhr_lb -pix_fmt yuv422p -c:a pcm_s16le proxy.mxf

dnxhd 编码器通过 profile 参数处理 DNxHR。yuv422p 是 Avid 期望的像素格式。保持与源相同的帧率,见下方参数。

真正改变结果的参数

参数控制什么
-vf scale=-2:720输出分辨率。-2 在保持比例的同时给出偶数宽度。
-c:v视频编解码器:libx264、prores_ks 或 dnxhd。
-profile:v编解码档位:ProRes Proxy 用 0,DNxHR LB 用 dnxhr_lb。
-crfH.264 的画质:越低越好但越大,代理取 20 到 25。
-c:a音频编解码器:H.264 用 aac,ProRes 和 DNxHR 用 pcm_s16le。
-r帧率。仅在源为可变帧率时设置。

一次转换整个文件夹

剪一个项目意味着数百个片段,而不是一个。下面的循环把一个文件夹里的每个 .mov 转成 H.264 代理,放进 proxies 子文件夹。在 macOS 或 Linux 上运行。

mkdir -p proxies
for f in *.mov; do
  ffmpeg -i "$f" -vf scale=-2:720 -c:v libx264 -crf 23 -preset fast -c:a aac "proxies/${f%.*}.mp4"
done

在 Windows 上,同样的思路可用 PowerShell 对 Get-ChildItem 做 foreach 循环实现。把代理放在各自的文件夹里,剪辑软件就能指向它们而不触碰原始文件。

常见错误及修复

  • 未知编码器 prores_ks 或 dnxhd:你的 FFmpeg 版本缺少该编解码器。安装完整版本,官方静态版本两者都含。
  • 音频不同步:源很可能是可变帧率。加上 -vsync cfr,或把 -r 设为真实帧率。
  • 代理文件过大:crf 太低或漏了 scale 参数。确认 -vf scale 且 crf 约为 23。
  • 软件无法重新链接到原始文件:让代理主文件名与源保持一致,并把原始文件放在稳定位置。

手动代理在何处不再可行

FFmpeg 处理少量片段非常合适。但在为期五天、数百个文件的 4K 项目上,代价开始显现。编码在你自己的处理器上跑数小时,代理与原始文件并存使磁盘占用翻倍,而且每个片段的命名和重新链接都要手动完成。

用 Sanbila 自动完成同样的代理

Sanbila 是一款桌面软件,替你完成这一代理步骤,且不占用你的机器。代理在 Sanbila 的云端生成,而非你的处理器,提供覆盖同样三大编解码家族的七种预设:H.264 的 540p、720p 和 1080p,ProRes Proxy 的 720p 和 1080p,以及 DNxHR LB 的 720p 和 1080p。Sanbila 的 Premiere Pro 插件会自动把每个代理附加到其 4K 原始文件上,因此无需手动重新链接,而且你可以为每个文件选择流式播放原始文件而非使用代理。

在云端生成 H.264、ProRes 和 DNxHR 代理,让处理器空闲,省去手动重新链接。

免费试用 Sanbila

FAQ

FFmpeg 制作代理是免费的吗?

是的。FFmpeg 免费且开源,个人或商业使用都无需授权费。你付出的只是配置时间,以及它在你自己机器上编码所花的处理器时间。

剪辑代理该用哪个 FFmpeg 编解码器?

Premiere Pro 与追求最小文件用 H.264(libx264),Final Cut Pro 与 DaVinci Resolve 用 ProRes Proxy(prores_ks profile 0),链路中有 Avid Media Composer 时用 DNxHR LB(dnxhd profile dnxhr_lb)。

为什么我的 FFmpeg 代理在时间线上不同步?

最常见的原因是源为可变帧率。用 -vsync cfr 强制恒定帧率,或把 -r 设为片段的真实帧率,让代理与原始文件保持相同的时基。

FFmpeg 能把整个文件夹批量转成代理吗?

能。一个针对文件夹内每个文件的简短 shell 循环即可为每个片段写出一个代理。它在你的处理器上运行,因此大型项目可能耗时数小时,这正是云端工具在你机器之外生成同样代理的原因。

相关文章

由 Sanbila 创始人 Lassana Toure 撰写。

最后更新: