I’ve attempted to ‘Use Hardware Encoder’ with 18.11.13 on my Dell Inspiron 5000 laptop. The result is no video (black screen) and just audio. I’ve attempted to try to force Shotcut to use both graphics adapters (NVIDIA and Intel) ut none of the combinations I’ve tried will work. This is Windows 10.
Am I missing something obvious? Or is this just not an option for me?
This is a work-in-progress, and there is a lot of different hardware. Also, it is not guaranteed to work on all hardware. Sometimes, a hardware implementation does not work with Shotcut’s default encode parameters.
You need to let the automatic configuration do its job and report its findings. Then, run an export job and upload to here both the job XML and its log to help me diagnose it further. To redo the automatic configuration:
Originally just h264.nvenc (which I use with OBS) was checked.
I’m not quite understanding this either. So I followed your instructions.
I didn’t check any of the boxes, they check marked themselves.
Should I leave them all checked?
No, because which one is picked when switching from libx264 or libx265 will not be obvious: It uses the first one found in the list you show, which should be the value stored in the configuration file/registry. I am a little surprised amf worked for you because you did not indicate that you have AMD hardware. I recommend that you use the manual overrides to select only _nvenc or _qsv codecs, make some tests, and decide which you like best. Then, use the manual configuration to keep it locked into your preference.
I haven’t tried to export anything yet with the new version, just have it installed. I’ll set it back to what it first had, h264 nvenc.
My motherboard is a ASUS ROG Maximus IX Hero Z270 LGA1151 DDR4 if that helps determine anything. No AMD hardware, just one graphics card. Unless my monitor is showing up as an AMD device.
My monitor is this: Samsung C27FG70 27” Curved Quantum Dot 1ms (MPRT) 144hz sRGB 125% AMD FreeSync Gaming Monitor 1920 x 1080 HDMI, then I have an older 24" LED/LCD monitor from ASUS 60Hz.
I do not see a way to upload a zip file so will paste the log content and the mlt content. Sorry if this is a bonehead move! Will post is separate relies.
Update #2: Using the YouTube preset, none of the H264 encoding works, while the HEVC does.
Ignoring all export presets, all encoding presets work (one at a time)
Update #3: I tested the following presets, UT & H.264 with H264 Hardware Encoding, might be a bug with the presets.
From the log with H264 Preset, H264_nevc Hardware encoding:
Tested the hardware encoder configuration, it worked fine. Checked Hardware encoder. It detected h264_qsv.
Pressed configure, h264_qsv was checked.
Did an export. Worked perfectly well. The export was about 35% faster than the default libx264 export. The resulting file with HW encoding is about 4X larger.
It seems that there is a situation where the automatic configuration tests produce all false positives and marks all HW encoders as supported/enabled. If you see in the job log “Nvenc unloaded” then the test should not pass. I should also mention that the test is not rigorous, and HW encoders do not support all the resolutions and options as software encoders. It is very much possible that a configuration test succeeds but not an actual project export for various reasons. This is very much a “your mileage may vary” feature, but it would be nice to continue to improve it.
The minimum Nvidia driver for nvenc is 390.77 or newer
I am getting this error now as well. We use a helper project for the binding between FFmpeg and NVENC, and I see they recently bumped a version with a new minimum requirement.
Recent changes might only be necessary for newest version of FFmpeg or for features that Shotcut is not using. I think the git master version with this change is incompatible with the version of FFmpeg we are using (4.0). I see there is a branch “sdk/8.0” that will likely improve compatibility. I will try to build with that to improve compatibility but also there is a newer version of FFmpeg to try. The GeForce Experience version is not the same as the driver version. NVIDIA Control Panel > Help > System Information gives the Driver version. I currently have 397.93.
there is a situation where the automatic configuration tests produce all false positives
I found that in my code that if the ffmpeg test run for HW codec X times out after 5 seconds, it would be marked as success. Thus, if you need to wait longer than 10 seconds after you click “Use hardware encoder” to get the results of auto-configuration then you are experiencing this problem. It is fixed for the next version.
So … not understanding the whole context … I did some experimenting. And I found one combination that seems to work in my situation.
My NVIDIA controls allow me to select which video adapter shotcut uses. I’d been testing with NVIDIA but I just found that the Intel adapter with “h264_qsv” codec works.
And only the “h264_qsv” codec works.
The resulting video is no longer “black”. And the GPU sees activity when encoding.
So I was having the same issue and after doing some research on the Codecs shown on the list of the hardware encoder codecs to choose from. Well turns out that Nvidia cards like HEVC better when encoding on some video software. So I went ahead and used HEVC insead of H264 and BAM! I have a proper video exported and saw 10% more GPU usage (from 18-20% to 29-32% usage)