FFmpeg Limiter Filter for Broadcast Safe Video
This guide explains how to use the limiter filter in
FFmpeg to restrict video pixel values to broadcast-safe ranges. You will
learn the exact syntax for the filter, how to define the minimum and
maximum thresholds for luminance and chrominance channels, and how to
apply these settings to both 8-bit and 10-bit video files to ensure
compliance with television broadcasting standards.
Understanding Broadcast-Safe Ranges
Television broadcasting requires video signals to stay within specific “legal” ranges to prevent signal distortion on transmission equipment and consumer screens. For standard 8-bit Rec. 709 or Rec. 601 video, these ranges are:
- Luminance (Y / Plane 0): 16 to 235
- Chrominance (U & V / Planes 1 & 2): 16 to 240
Pixels with values below 16 (super-blacks) or above 235/240 (super-whites) must be clamped using a limiter.
The FFmpeg Limiter Syntax
The FFmpeg limiter filter uses three primary parameters:
* min: The lowest allowed pixel value. * max:
The highest allowed pixel value. * planes: A bitmask
choosing which color planes to filter.
To target specific planes, you calculate the bitmask sum: *
Luminance (Y): Plane 0 (value 1) *
Chroma Blue (U): Plane 1 (value 2) *
Chroma Red (V): Plane 2 (value 4)
To select both Chroma planes (U and V), you add their values together (\(2 + 4 = 6\)).
Limiting 8-Bit Video (16-235 / 16-240)
To restrict 8-bit video, you must chain two limiter
filters together: one for the luminance channel and one for the
chrominance channels.
Use the following command:
ffmpeg -i input.mp4 -vf "limiter=min=16:max=235:planes=1,limiter=min=16:max=240:planes=6" -c:v libx264 -crf 18 -c:a copy output.mp4limiter=min=16:max=235:planes=1restricts the Y plane (Luminance) to 16–235.limiter=min=16:max=240:planes=6restricts the U and V planes (Chrominance) to 16–240.
Limiting 10-Bit Video (64-940 / 64-960)
For high-definition 10-bit workflows, the standard broadcast-safe limits scale upward:
- Luminance (Y): 64 to 940
- Chrominance (U & V): 64 to 960
Use this command to restrict 10-bit video:
ffmpeg -i input.mp4 -vf "limiter=min=64:max=940:planes=1,limiter=min=64:max=960:planes=6" -c:v libx265 -pix_fmt yuv422p10le output.mp4Verification
After processing your video, you can verify that the pixel values
have been restricted by using the FFmpeg signalstats filter
or analyzing the output file in a professional video editor with
hardware scopes.