HandBrake / HandBrake

HandBrake's main development repository
https://handbrake.fr
Other
17.21k stars 1.32k forks source link

NVEnc AV1 support ? #4605

Closed yami-no-tusbas closed 1 year ago

yami-no-tusbas commented 1 year ago

Description of the feature or enhancement you'd like to see in HandBrake

The new 4000 series, have AV1 encode and decode acceleration, can we expect to see this implemented in HandBrake ? For now I only see H.264&H.265 Nvidia NVenc, no AV1.

What Operating System are you running?

Windows 11

What version of HandBrake are you running?

1.5.1

Where did you download HandBrake from?

https://handbrake.fr/

Activity Log, Crash Log or any other details

HandBrake 1.5.1 (2022011000)
OS: Microsoft Windows NT 10.0.22000.0
CPU: AMD Ryzen 7 1700 Eight-Core Processor          
Ram: 32680 MB, 
GPU Information:
  NVIDIA GeForce RTX 4090 - 31.0.15.2225
Screen: 2560x1440
Temp Dir: C:\Users\jacma\AppData\Local\Temp\
Install Dir: C:\Program Files\HandBrake\
Data Dir: C:\Users\jacma\AppData\Roaming\HandBrake

-------------------------------------------
[19:07:21] Compile-time hardening features are enabled
sr55 commented 1 year ago

Eventually it would be good to see it supported, but I wouldn't expect it in the short term. It's probably not going to be part of the upcoming 1.6 release.

There is currently no support in upstream libraries and none of us have 40-series (and I suspect none of us have plans to buy either)

JamesPous commented 1 year ago

Currently NvEnc 7.00 (console application) is a tool for av1 Nvidia gpu encoding. But the developer does not have the latest and expensive Nvidia RTX 4090 to test and develop a stable av1 video encoder. Here you can find NvEnc 7.00: https://www.videohelp.com/software/NVEnc

Most of the video conversion tools need some time to support the new video standard av1. You can try the latest nightly ffmpeg encoder, too.

Asghan86 commented 1 year ago

I have a 4090 and could help with testing :)

nyanmisaka commented 1 year ago

https://github.com/FFmpeg/FFmpeg/commit/5c288a44ad16087c3d3a7563490cb634790e751f

The NVENC AV1 encoder has been added into the ffmpeg mainline.

Asghan86 commented 1 year ago

Any updates regarding this? My 4090 wants to do some AV1 encoding ;)

sr55 commented 1 year ago

No updates yet. Please be patient.

galad87 commented 1 year ago

The next snapshots (or the artifacts from the Actions section soon) will support the NVENC AV1 encoder. A big thanks to @theHamsta for the contribution.

JJDizz1L commented 1 year ago

@galad87 Can you link me to the snapshot that utilizes the NVENC AV1 encoder? I see FFmpeg 6 has finally been released. Thanks, in advance.

galad87 commented 1 year ago

https://github.com/HandBrake/HandBrake-snapshots

FleeceOfGideon commented 1 year ago

Have already transcoded my 1st video, playing around with settings now but looks great FYI

JJDizz1L commented 1 year ago

@galad87 I am on Nightly 20230709131836-f462f7103-master (2023071001), is there any reason why the NVENC Hardware AV1 is not exposed to me?

image

sr55 commented 1 year ago

There is no AV1 hardware preset for NVEnc. Just create your own. You can start with the HEVC preset, change the encoder to the AV1 NVEnc encoder and then adjust the quality slider as desired. Then save it.

subspecs commented 1 year ago

There is no AV1 hardware preset for NVEnc. Just create your own. You can start with the HEVC preset, change the encoder to the AV1 NVEnc encoder and then adjust the quality slider as desired. Then save it.

Right, and how one does go by doing that?

JJDizz1L commented 1 year ago

There is no AV1 hardware preset for NVEnc. Just create your own. You can start with the HEVC preset, change the encoder to the AV1 NVEnc encoder and then adjust the quality slider as desired. Then save it.

Right, and how one does go by doing that? Screenshot 2023-07-27 151311 Make sure all of your settings are what you wish them to be before saving a template.

subspecs commented 1 year ago

There is no AV1 hardware preset for NVEnc. Just create your own. You can start with the HEVC preset, change the encoder to the AV1 NVEnc encoder and then adjust the quality slider as desired. Then save it.

Right, and how one does go by doing that? Screenshot 2023-07-27 151311 Make sure all of your settings are what you wish them to be before saving a template.

Ty, but @sr55 comment implies that you can get hardware support if you create your own preset. And I don't see the 'AV1 NVEnc encoder' in the encoder list. Running the latest snapshot and an RTX 4090 to boot.

JJDizz1L commented 1 year ago

There is no AV1 hardware preset for NVEnc. Just create your own. You can start with the HEVC preset, change the encoder to the AV1 NVEnc encoder and then adjust the quality slider as desired. Then save it.

Right, and how one does go by doing that? Screenshot 2023-07-27 151311 Make sure all of your settings are what you wish them to be before saving a template.

Ty, but @sr55 comment implies that you can get hardware support if you create your own preset. And I don't see the 'AV1 NVEnc encoder' in the encoder list. Running the latest snapshot and an RTX 4090 to boot.

image I cannot make it more obvious than this.

Alaric323 commented 1 year ago

Trying out the latest snapshot on a 4070ti. The NVEnc encoder doesn't output video frames. A lot of avcodec_send_frame spam. Log attached. Chatpdf_Generation_encode_08.23.2023_04-08-18.txt

galad87 commented 1 year ago

Fixed in 593de95