How to Enable and Control Film Grain in SVT-AV1
Film grain synthesis is a powerful feature in the AV1 video codec
that helps drastically reduce file sizes for grainy content by removing
original noise during encoding and synthetically recreating it at the
decoder level. This article explains how to enable and fine-tune film
grain synthesis in the SVT-AV1 (libsvtav1) encoder using
both FFmpeg and the native SVT-AV1 command-line interface.
Enabling Film Grain via FFmpeg
To use SVT-AV1’s film grain synthesis in FFmpeg, you must pass the
relevant settings to the encoder using the -svtav1-params
flag.
Below is an example of an FFmpeg command enabling film grain:
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 24 -svtav1-params film-grain=15:film-grain-denoise=1 -c:a copy output.mkvEnabling Film Grain via SVT-AV1 CLI
If you are using the standalone SvtAv1EncApp executable,
use the native command-line arguments instead:
SvtAv1EncApp -i input.y4m -b output.ivf --film-grain 15 --film-grain-denoise 1Controlling Film Grain Parameters
To control the behavior and intensity of the synthesis, you must configure two primary parameters:
1. Film Grain Strength
(film-grain)
This parameter sets the level of synthetic grain to be generated and
applied during playback. * Range: 0 to
50 * 0: Disables film grain
synthesis entirely (default). * 1 to
15: Recommended for clean, modern digital content
or videos with very mild noise. * 16 to
30: Recommended for standard cinematic content
shot on film (e.g., 35mm film). * 31 to
50: Best for extremely noisy or vintage content
(e.g., 16mm film or high-ISO footage).
2. Film Grain Denoising
(film-grain-denoise)
This parameter determines whether the encoder should strip the
original noise from the source video before compressing it. *
Range: 0 (Disabled) or 1
(Enabled) * 1 (Enabled): The encoder
applies a low-pass filter to remove the original, hard-to-compress
noise. This allows the encoder to compress the smooth underlying video
efficiently, leaving the playback device to regenerate the noise
synthetically. This is highly recommended to achieve
the bitrate savings of film grain synthesis. * 0
(Disabled): The original noise is kept in the video stream, and
synthetic grain is also added. This is generally avoided because it
defeats the compression benefits of the technology.
Important Considerations
- Bitrate Savings: Because random noise is incredibly
difficult for video encoders to compress, enabling
film-grain-denoise=1can reduce the final bitrate of grainy videos by 30% to 50% while maintaining the perceived sharpness of the original film. - Player Support: Synthetic film grain is a mandatory part of the AV1 specification. Any player or hardware device that officially supports AV1 decoding will automatically render the synthetic grain without requiring any special user setup.