News:

--

Main Menu

Which decoder is better?

Started by amymor, February 10, 2024, 04:06:19 PM

Previous topic - Next topic

amymor

My Specs:
    Core i3-8100
    GTX 1060
    12GB Memory
    Windows 10 22H2

Which is better:
1.

2.

3.

4.


Note: If I select both (as shown in the fourth screenshot), it appears that DXVA is preferred over NVDEC automatically. Is this okay?

Also, it mentions, "If you use hardware decoding, it is recommended to use the corresponding display driver." What should I choose for each?


Thanks in advance.

eumagga0x2a

#1
In general, NVDEC interface in Avidemux provides support for more codecs than DXVA2, but with your Pascal 3rd gen NVDEC card, the benefit is minimal (just MPEG-1 and -2 edit: and VC-1). There is no substantial difference in performance as both have to do the wasteful roundtrip over the main memory instead of keeping decoded frames in the graphics card memory and just passing references to hw surfaces. This also makes the recommendation to use "the corresponding display driver" mostly irrelevant, other than on Linux where VDPAU and libva hw accels are capable of passing decoded frames to the display pipeline without downloading them to main memory first and then uploading back to the graphics card. It just happens that the "DXVA2" (actually, DirectX) display driver is by far the most efficient path in Avidemux on Windows, thus use it unless it causes crashes or similarly grave problems.

In any case, I would strongly recommend to wait a few days for the next round of nightly builds, as a more consistent switch to native directory separators on Windows led to quite a few regressions (e.g. queuing jobs and scripting external audio tracks were broken) which are mostly solved in code now, but no new official builds have been generated yet. Also, some more potential issues need to be addressed, thus no request for new nightlies yet. I'm sorry for inconvenience.

amymor

Quote from: eumagga0x2a on February 10, 2024, 04:38:09 PMIn general, NVDEC interface in Avidemux provides support for more codecs than DXVA2, but with your Pascal 3rd gen NVDEC card, the benefit is minimal (just MPEG-1 and -2 edit: and VC-1). There is no substantial difference in performance as both have to do the wasteful roundtrip over the main memory instead of keeping decoded frames in the graphics card memory and just passing references to hw surfaces. This also makes the recommendation to use "the corresponding display driver" mostly irrelevant, other than on Linux where VDPAU and libva hw accels are capable of passing decoded frames to the display pipeline without downloading them to main memory first and then uploading back to the graphics card. It just happens that the "DXVA2" (actually, DirectX) display driver is by far the most efficient path in Avidemux on Windows, thus use it unless it causes crashes or similarly grave problems.

In any case, I would strongly recommend to wait a few days for the next round of nightly builds, as a more consistent switch to native directory separators on Windows led to quite a few regressions (e.g. queuing jobs and scripting external audio tracks were broken) which are mostly solved in code now, but no new official builds have been generated yet. Also, some more potential issues need to be addressed, thus no request for new nightlies yet. I'm sorry for inconvenience.
Thank you for your detailed answer. So, if I select both DXVA and NVDEC, Avidemux will use DXVA for all supported codecs except MPEG-1 and MPEG-2, which will use NVDEC, correct?

eumagga0x2a

Quote from: amymor on February 10, 2024, 05:04:43 PMSo, if I select both DXVA and NVDEC, Avidemux will use DXVA for all supported codecs except MPEG-1 and MPEG-2, which will use NVDEC, correct?

Yes, the DXVA2 path takes precedence over NVDEC.

Elstar`

#4
Quote from: eumagga0x2a on February 10, 2024, 04:38:09 PMIn general, NVDEC interface in Avidemux provides support for more codecs than DXVA2, but with your Pascal 3rd gen NVDEC card, the benefit is minimal (just MPEG-1 and -2 edit: and VC-1).
Actually, Pascal NVDEC does support hardware decode of H264 and VP9 (I have GTX 1050), and there is indeed GPU usage (~5%) when playing preview of such videos.

Decoder: NVDEC | Display: DXVA2

I'm still using build 231228 VC++, though.