Apply Sepia LUT with FFmpeg lut3d Filter
This guide explains how to apply a vintage sepia Look-Up Table (LUT)
to your video files using FFmpeg's lut3d video filter. You
will learn the correct command-line syntax, optimal interpolation
settings for smooth color gradients, and how to handle file paths
properly during the grading process.
Basic Syntax for Applying a 3D LUT
To apply a sepia LUT, you need a 3D LUT file (typically in
.cube or .3dl format) that contains the sepia
color transformation.
Run the following command in your terminal:
ffmpeg -i input.mp4 -vf "lut3d=file=sepia.cube" -c:a copy output.mp4-i input.mp4: Specifies the input video file.-vf "lut3d=file=sepia.cube": Calls the 3D LUT filter and loads thesepia.cubefile.-c:a copy: Copies the audio stream directly without re-encoding, preserving audio quality and speeding up processing.output.mp4: The resulting color-graded video file.
Enhancing Color Quality with Interpolation
By default, FFmpeg uses nearest-neighbor interpolation, which can sometimes produce color banding in subtle gradients. To achieve smoother transitions and higher visual fidelity, specify tetrahedral interpolation:
ffmpeg -i input.mp4 -vf "lut3d=file=sepia.cube:interp=tetrahedral" -c:v libx264 -crf 18 -preset slow -c:a copy output.mp4The available interpolation options for interp are:
nearest: Fastest, but lowest quality; prone to banding.trilinear: Balanced quality and speed.tetrahedral: Highest quality with the smoothest color transitions.
Handling Full File Paths
If your LUT file is stored in a different directory than your working folder, provide the absolute path. Special characters such as colons and backslashes must be properly escaped inside FFmpeg filter strings.
On Linux/macOS:
ffmpeg -i input.mp4 -vf "lut3d=file='/path/to/luts/sepia.cube':interp=tetrahedral" -c:a copy output.mp4On Windows:
ffmpeg -i input.mp4 -vf "lut3d=file='C\:/luts/sepia.cube':interp=tetrahedral" -c:a copy output.mp4(Note: On Windows, use forward slashes and escape the drive colon
with a backslash \:).