How to Find Video Color Space Using FFprobe

To determine the color space, color primaries, and color transfer characteristics of a video file, you can use FFprobe, the command-line media analyzer bundled with FFmpeg. This article provides the exact commands needed to extract this metadata quickly, explains what the command arguments mean, and details how to format the output for easy reading.

The Basic Command

To extract only the color space information from a video file, run the following command in your terminal:

ffprobe -v error -select_streams v:0 -show_entries stream=color_space,color_primaries,color_transfer -of default=noprint_wrappers=1 video.mp4

Command Breakdown

Expected Output

After running the command, FFprobe will return output similar to this:

color_range=tv
color_space=bt709
color_primaries=bt709
color_transfer=bt709

Common values you might encounter include: * bt709: Standard definition/High definition (SDR) color space, common for HD web video. * bt2020nc / arib-std-b67 / smpte2084: High Dynamic Range (HDR) color spaces used in 4K UHD videos. * bt470bg / smpte170m: Standard definition (PAL/NTSC) color spaces.

Exporting Output as JSON

If you are scripting or integrating this command into an application, you can request the output in JSON format by changing the output format (-of) argument:

ffprobe -v error -select_streams v:0 -show_entries stream=color_space,color_primaries,color_transfer -of json video.mp4

This returns a clean JSON object:

{
    "programs": [],
    "streams": [
        {
            "color_range": "tv",
            "color_space": "bt709",
            "color_primaries": "bt709",
            "color_transfer": "bt709"
        }
    ]
}