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 the sepia.cube file.
  • -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.mp4

The 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.mp4

On 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 \:).