The error you’re seeing (“10-bit encode not supported”) is because the input video is in a 10-bit color format, typical for HDR content. NVIDIA’s H.264 NVENC encoder, which is used by h264_nvenc, does not support encoding in 10-bit color depth, especially for H.264 codec. This is often the reason why HDR content throws an error during processing.
You have a few options to solve this problem:
You can convert the 10-bit HDR video to 8-bit, effectively discarding the HDR data. This is useful if you don’t need HDR output and want compatibility with h264_nvenc.
Here’s how you can modify your command:
ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i "C:\Users\Uncharted Limbo\Downloads\ACT_01-HAN_01-CENTER.MOV" -c:v h264_nvenc -vf "scale_cuda=1920:1080, format=yuv420p, fps=30" "C:\Users\Uncharted Limbo\Downloads\ACT_01-HAN_01-CENTER.mp4"
Explanation:
format=yuv420p: This option forces the conversion to 8-bit color space, which is compatible with H.264.
If you want to keep the HDR and the 10-bit color depth, you should use H.265 (HEVC) encoding instead of H.264. The NVIDIA HEVC encoder (hevc_nvenc) does support 10-bit color depth.
Here’s the modified command:
ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i "C:\Users\Uncharted Limbo\Downloads\ACT_01-HAN_01-CENTER.MOV" -c:v hevc_nvenc -profile:v main10 -vf "scale_cuda=1920:1080, fps=30" "C:\Users\Uncharted Limbo\Downloads\ACT_01-HAN_01-CENTER.mp4"
Explanation:
-c:v hevc_nvenc: This uses the HEVC codec, which can support 10-bit encoding.
-profile:v main10: The main10 profile is specifically for 10-bit color depth.
If you don’t have a powerful GPU or prefer high-quality encoding and don’t mind slower processing, you can use software encoding with libx265. This will allow for 10-bit encoding and HDR support, but will be significantly slower than hardware encoding.
ffmpeg -y -i "C:\Users\Uncharted Limbo\Downloads\ACT_01-HAN_01-CENTER.MOV" -c:v libx265 -preset medium -crf 23 -vf "scale=1920:1080, fps=30" -x265-params profile=main10 "C:\Users\Uncharted Limbo\Downloads\ACT_01-HAN_01-CENTER.mp4"
Explanation:
-c:v libx265: This uses the x265 encoder, which has 10-bit color depth support.
-preset medium: Adjusts the encoding speed/quality tradeoff (change to slow or faster if needed).
-crf 23: Adjusts the quality (lower means better quality but larger file size).
-x265-params profile=main10: Ensures 10-bit color depth encoding.
- To convert to 8-bit color, use the
format=yuv420p with h264_nvenc.
- To preserve 10-bit HDR, use
hevc_nvenc with profile=v main10 for hardware-accelerated encoding.
- For high-quality but slower encoding, use
libx265.
If you want to preserve HDR and 10-bit color depth, it’s generally best to use hevc_nvenc or libx265.