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:
-c:v dnxhd: Specifies the DNxHD video encoder.-r: Sets the output frame rate (e.g.,24000/1001for 23.976 fps,25for 25 fps, or30000/1001for 29.97 fps).-b:v: Sets the video bitrate. This must match an official Avid DNxHD specification (e.g.,36M,145M,220M).-pix_fmt: Sets the pixel format. Useyuv422pfor 8-bit profiles oryuv422p10lefor 10-bit profiles.
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.movExample 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.movExample 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.)