FFmpeg ProRes 422 Proxy Transcoding Guide

This guide provides a straightforward walkthrough on how to use FFmpeg to transcode high-resolution video files into the Apple ProRes 422 Proxy format. You will learn the exact command-line syntax required to generate lightweight, edit-ready proxy files that improve playback performance in video editing software while preserving essential color and audio data.

Why Use ProRes 422 Proxy?

Apple ProRes 422 Proxy is a highly compressed codec designed for offline editing workflows. It offers a significantly lower bitrate than standard ProRes formats, making it ideal for editing on laptops or machines with limited storage speed. Using FFmpeg to create these proxies allows you to batch-process large amounts of footage quickly and customize the output resolution.

The Basic FFmpeg Command

To transcode a video to ProRes 422 Proxy using FFmpeg, use the following base command in your terminal or command prompt:

ffmpeg -i input.mp4 -c:v prores_ks -profile:v 0 -vendor ap10 -pix_fmt yuv422p10le -c:a pcm_s16le output_proxy.mov

Command Breakdown:

  • -i input.mp4: Specifies your high-resolution source file.
  • -c:v prores_ks: Uses the high-quality, open-source ProRes encoder (prores_ks). Alternatively, you can use the faster, native FFmpeg encoder (-c:v prores), but prores_ks offers better compliance with Apple standards.
  • -profile:v 0: Sets the ProRes profile to "Proxy" (0 = Proxy, 1 = LT, 2 = Standard, 3 = HQ, 4 = 4444).
  • -vendor ap10: Mimics the official Apple ProRes encoder vendor tag, ensuring maximum compatibility with Final Cut Pro and DaVinci Resolve.
  • -pix_fmt yuv422p10le: Sets the pixel format to 10-bit YUV 4:2:2, which is the native format for ProRes.
  • -c:a pcm_s16le: Transcodes the audio to uncompressed 16-bit PCM, which is optimal for editing performance.
  • output_proxy.mov: The final output file name. ProRes must be wrapped in a QuickTime .mov container.

Scaling Down Resolution for Faster Editing

Proxies are often scaled down to 1080p or 720p to further reduce CPU load during editing. You can add a video scale filter to your FFmpeg command to accomplish this.

To scale a 4K video down to a 1080p proxy, use the following command:

ffmpeg -i input.mp4 -vf "scale=1920:-2" -c:v prores_ks -profile:v 0 -vendor ap10 -pix_fmt yuv422p10le -c:a pcm_s16le output_proxy.mov

The -vf "scale=1920:-2" parameter scales the width to 1920 pixels and automatically calculates the height to maintain the correct aspect ratio, while ensuring the height is divisible by 2 (a requirement for most video codecs).

Batch Transcoding an Entire Folder

If you have a folder full of camera files, you can transcode all of them to ProRes Proxy at once using a simple command-line loop.

On macOS / Linux (Terminal):

for f in *.mp4; do
  ffmpeg -i "$f" -c:v prores_ks -profile:v 0 -vendor ap10 -pix_fmt yuv422p10le -c:a pcm_s16le "${f%.*}_proxy.mov"
done

On Windows (Command Prompt):

for %i in (*.mp4) do ffmpeg -i "%i" -c:v prores_ks -profile:v 0 -vendor ap10 -pix_fmt yuv422p10le -c:a pcm_s16le "%~ni_proxy.mov"