How to Set FFmpeg DNxHD Profile and Frame Rate

This guide explains how to configure the video profile and frame rate when encoding to Avid DNxHD using FFmpeg. You will learn the specific command-line parameters required to target standard DNxHD profiles and set exact broadcast frame rates, ensuring your output files are compatible with professional non-linear editing systems.

The Strict Rules of DNxHD Encoding

Unlike flexible codecs like H.264, the DNxHD codec is highly standardized. FFmpeg’s DNxHD encoder will fail with an error if you do not provide an exact, valid combination of resolution, pixel format, frame rate, and bitrate.

To configure a DNxHD “profile” in FFmpeg, you do not use a -profile flag. Instead, you define the profile by specifying the target bitrate using the -b:v flag and the color depth using the -pix_fmt flag.

Key Parameters for DNxHD

To configure your encode, you must use the following flags:

Common DNxHD Profile Configurations

Here are the most common standard combinations for 1080p resolution:

Target Quality / Profile Resolution Frame Rate Bitrate Flag (-b:v) Pixel Format (-pix_fmt)
DNxHD 220x (10-bit) 1920x1080 29.97 fps 220M yuv422p10le
DNxHD 145 (8-bit) 1920x1080 29.97 fps 145M yuv422p
DNxHD 175x (10-bit) 1920x1080 23.976 fps 175M yuv422p10le
DNxHD 115 (8-bit) 1920x1080 23.976 fps 115M yuv422p
DNxHD 36 (8-bit proxy) 1920x1080 23.976 fps 36M yuv422p

FFmpeg Command Examples

Example 1: High-Quality 10-bit DNxHD at 23.976 fps (DNxHD 175x)

Use this command to convert an input video to a high-quality 10-bit master file at 23.976 frames per second:

ffmpeg -i input.mp4 -c:v dnxhd -profile:v dnxhr_hq -r 24000/1001 -b:v 175M -pix_fmt yuv422p10le -c:a pcm_s16le output.mov

Example 2: Standard 8-bit DNxHD at 29.97 fps (DNxHD 145)

Use this command to encode to an 8-bit standard broadcast format at 29.97 frames per second:

ffmpeg -i input.mp4 -c:v dnxhd -r 30000/1001 -b:v 145M -pix_fmt yuv422p -c:a pcm_s16le output.mov

Example 3: Offline Proxy Editing at 25 fps (DNxHD 120 / 36)

For PAL 25 fps workflows requiring a lightweight editing proxy, use a lower bitrate standard:

ffmpeg -i input.mp4 -c:v dnxhd -r 25 -b:v 36M -pix_fmt yuv422p -c:a pcm_s16le output.mov

(Note: Audio is trans-coded to pcm_s16le in these examples because DNxHD video is typically wrapped in an MXF or MOV container alongside uncompressed audio for professional editing compatibility.)