10Bit NVENC Export Saves 8Bit Files

ver.23.12.15

Im trying to find a 10bit HDR editor, so im doing short tests on 20 seconds gameplay video
Its 4K HEVC, 10Bit BT2020

The about page shows correct info

When i export, enable HEVC NVENC, file comes as 8bit no HDR
same goes for AV1 NVENC

This is from the log, it says “No capable devices found”, which is false, im on 4090 and encode 10bit hardware videos just fine

h264_nvenc @ 00000271180f6440] [Eval @ 0000009557bff000] Undefined constant or missing ‘(’ in ‘main10’

[h264_nvenc @ 00000271180f6440] Unable to parse option value “main10”

[h264_nvenc @ 0000027119e0c040] [Eval @ 0000009557bff000] Undefined constant or missing ‘(’ in ‘main10’

[h264_nvenc @ 0000027119e0c040] Unable to parse option value “main10”

[h264_nvenc @ 00000271180f6440] Loaded Nvenc version 12.1

[h264_nvenc @ 00000271180f6440] Nvenc initialized successfully

[h264_nvenc @ 00000271180f6440] 1 CUDA capable devices found

[h264_nvenc @ 00000271180f6440] [ GPU #0 - < NVIDIA GeForce RTX 4090 > has Compute SM 8.9 ]

[h264_nvenc @ 00000271180f6440] 10 bit encode not supported

[h264_nvenc @ 00000271180f6440] No capable devices found

[h264_nvenc @ 00000271180f6440] Nvenc unloaded

[matroska @ 0000027117f34d00] Tag hvc1 incompatible with output codec id ‘27’ (H264)

[consumer avformat] Could not write header ‘I:/1.mkv’

[aac @ 00000271180f6c40] Qavg: nan

Main10 profile is not available for H.264, witch it says you sure using. Please use our presets, and if you turn on hardware encoder after choosing a preset you need to re-click the preset. Scroll down the list of presets to find a “ten_bit” category.

I just confirmed that the 10-bit export presets are not working with NVENC. With a correctly applied HEVC preset I too get 8-bit, but it works with the hardware encoder off.

Im not using 264 but hevc, but that one froze.
So ill red-do a new one

I did many tests using the presets.
It comes either 8 bit/709 or rarely 10bit/ but again 709
Here is a media info from my best result

ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main 10@L5.1@Main
Codec ID : hvc1
Codec ID/Info : High Efficiency Video Coding
Duration : 21 s 900 ms
Bit rate : 4 165 kb/s
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 60.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 10 bits
Bits/(PixelFrame) :* 0.008
Stream size : 10.9 MiB (97%)
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
Codec configuration box : hvcC

Look at your log. It says “h264_nvenc”

Anyways, I just confirmed the 10-bit never worked on NVENC even back in v23.05, which is the version where 10-bit export presets were added. Since you want 10-bit for quality why not turn off the hardware encoder?

That is a very valid combination. Shotcut does not output HDR.

So no Bt2020?

I found that the 8bit comes out every time i use a CUT function, i cut a test 20-30 second from 1 hour gameplay video
than it comes as 8bit/709

Look at your log. It says “h264_nvenc”
Anyways, I just confirmed the 10-bit never worked on NVENC even back in v23.05, which is the version where 10-bit export presets were added. Since you want 10-bit for quality why not turn off the hardware encoder?Blockquote

I have 10Bit, HDR BT2020 gameplay files, thats why i use 10bit

EDIT: Admin this is insane and completely different kind of bug.
The files came as 8bit every time, and i did many tests.
Until it crashed, after the crash the UI changed, from vertical to horizontal, everything is horizontal now, like the export window it was vertical and long on the left side and the timeline was on the bottom vertical taking the full length of monitor, , now the export is on the bottom left a tiny square, and the timeline is on the right side square, not taking the full length.
From that moment it started to render 10bit.

P.S. Also, you said you dont support 10bit x264, but you have a preset for one x264 HIGH 10 PROFILE

Thread can be deleted

I never said that. You need to read more carefully. I said that profile value is not valid for H.264. It tells me that a preset was not applied correctly.

Anyways, I figured how to get 10-bit on NVENC working. After choosing a preset, go to the Export > Other tab and change pix_fmt=yuv420p10le to pix_fmt=p010le. It works for HEVC and AV1. I have fixed this for the next version to automatically change the pix_fmt correctly for 10-bit NVENC.

P.S. If you had GPU Effects turned on (necessary to get a 10-bit processing pipeline) then it was doing the above automatically. I fixed it so that it does it now regardless of that setting.

I also fixed this old quirk/bug for the next version where toggling the hardware encoder checkbox would revert the preset (without deselecting it) or any other custom options.

1 Like