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:

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"