Convert Rec 709 to Rec 601 with FFmpeg Colorspace

This guide explains how to convert high-definition Rec. 709 video to standard-definition Rec. 601 color space using the FFmpeg colorspace filter. You will learn the exact command-line syntax to accurately map colors, transfer characteristics, and matrix coefficients, ensuring color consistency and correct metadata tagging for your output file.

Understanding the FFmpeg Colorspace Filter

To convert colorspaces accurately in FFmpeg, the colorspace filter is preferred over the simpler scale filter because it performs high-fidelity color space, primaries, and transfer characteristics conversions.

Rec. 601 has two main regional standards: * BT.601 625-line (commonly used for PAL/SECAM) * BT.601 525-line (commonly used for NTSC / SMPTE 170M)

Option 1: Convert to Rec. 601 (PAL / 625-line)

Use this command to convert a Rec. 709 video to the 625-line Rec. 601 standard:

ffmpeg -i input.mp4 -vf "colorspace=all=bt601-625:iall=bt709" -colorspace bt470bg -color_primaries bt470bg -color_trc bt470bg -c:v libx264 -crf 18 -c:a copy output.mp4

Option 2: Convert to Rec. 601 (NTSC / 525-line / SMPTE 170M)

Use this command to convert a Rec. 709 video to the 525-line Rec. 601 standard:

ffmpeg -i input.mp4 -vf "colorspace=all=smpte170m:iall=bt709" -colorspace smpte170m -color_primaries smpte170m -color_trc smpte170m -c:v libx264 -crf 18 -c:a copy output.mp4

Command Breakdown