You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Originally I had planned to look into it, but I'm not so sure now. I don't know if hardware video encoding is useful for the very few programs that can actually make use of this library.
Since Firefox can use the driver, would supporting encoding also open up hardware-accelerated encoding for screen sharing or sharing webcam video in conferencing solutions such as Jitsi / Microsoft Teams / Google Meet / ...?
I did take a quick look at it. NVENC looks pretty straight forward to use, but I struggled to understand how to use VA-API to encode. From what I can tell, the mapping between the two isn't as straight forward as the decoding side is.
Reacted by Daniel Bermond, Blake B., exalented, Suraj, Antoine Viallon, Philip Borgström and inklesspen_rus
I also have a use for this, I use multiple different machines for hardware encoding, some of which have NVIDIA, others Intel and others again AMD GPUs, and having VA-API support on NVIDIA would drastically simplify the required ffmpeg command creation.
I've been running a media server on my k8s cluster and configuring the current non-free NVIDIA drivers to work with containers/k8s was a nightmare, just to get basic hardware encoding working. It requires installing a custom container runtime (nvidia-container-toolkit), re-configuring (and in my case re-installing) Kubernetes, and installing extra operators in the cluster that take up compute resources and aren't documented that well. With VA-API GPUs, though, it's as simple as binding your workload to the appropriate dri path on the host, just like binding a directory. Voila, your GPU is exposed to the container.
This is all to say, having full decode and encode support would be HUGE for those utilizing containers. I can't support development financially at this time, but I'm happy to help out in any way I can (seriously this driver would've saved me days of tinkering, though I may just be bad at managing Linux kernel stuff 😅).
FWIW, the way forward with containers is CDI (standardised with OCI, so CRI agnostic), but presently only nvidia has official support for this (there is third-party generator for AMD iirc).
With docker prior to CDI, effectively only nvidia was supported (officially), and only cuda (compute) and nvidia-smi (utilities) capabilities were enabled by default.
Video encoding required an extra capability enabled and thus more verbose config similar to what you'd do for amd. Otherwise it's just --gpus all on the CLI, the runtime you mention would be seamless (at least on Windows) with Docker Desktop which sets that up behind the scenes (they have k3s which might leverage the same).
Anyway, with CDI the host system needs a config for the hardware defined with mappings of what to mount/do. It is vendor agnostic and allows for effectively --device nvidia.com/all (something like that iirc).
NixOS has a package for AMD and maybe Intel that's third-party/community managed iirc, and k8s AFAIK has equivalent via some plugins (I don't use k8s so I can't assist much there).
I'm not sure how long broader adoption for CDI by gpu vendors will take. I don't think it requires the custom nvidia runtime, but if it does pretty sure it's not intended to stay that way, it does currently require a host package (nvidia ctk) to generate the CDI config however.
Originally I had planned to look into it, but I'm not so sure now. I don't know if hardware video encoding is useful for the very few programs that can actually make use of this library.
Discord could use it. A friend had been complaining about low FPS whenever I stream over discord. As it turns out, my Ryzen 9 5950X CPU is unable to encode fast enough for discord. I am not sure why that is, given that my friend has a Ryzen 7 5800X and it can keep up without any issues. The only difference between my machine and my friend's machine is that my machine is downscaling 4K to 720p for Discord while my friend's machine is downscaling 1080p to 720p for Discord.
There's no specific guidelines to contributing. With that said, while I don't mind the use of LLMs to aid in development, I don't like seeing PRs that look like no human has ever touched the code.
Reacted by Symphony, Precise, Aether, eliteSCHW31N, remidu64, Ashish Kumar, David P. and SSkizz
Hi, I started to play on legion go 2 (steam os) and steam link this night.
Totally vibe coded but if it can help, I introduced encoding hvec and h264 and all stuff to fix Steam issue on Blackwell (Nvidia remove lib cuda 32bit support causing issue with steam)
Here #438 is a pull request which adds support for H.264, HEVC and AV1 video encoding including YUV422 and YUV444 pixel formats for both H264 and HEVC.
Reacted by SSkizz, Rafael Ristovski, Richard Yao and GalladeGuy
Activity
elFarto commentedon Oct 1, 2022
Originally I had planned to look into it, but I'm not so sure now. I don't know if hardware video encoding is useful for the very few programs that can actually make use of this library.
exalented commentedon Oct 1, 2022
Sway/Nvidia user here. This is the only working solution for hardware accel for me. Sunshine comes to mind. Would be amazing to have NVENC.
NoTuxNoBux commentedon Oct 14, 2022
Since Firefox can use the driver, would supporting encoding also open up hardware-accelerated encoding for screen sharing or sharing webcam video in conferencing solutions such as Jitsi / Microsoft Teams / Google Meet / ...?
thesword53 commentedon Nov 18, 2022
It would also be useful for Virgl video encoding: https://www.phoronix.com/news/Virgl-Encode-H264-H265
exalented commentedon Feb 11, 2023
Any news on this? I'll pitch in $50.
elFarto commentedon Feb 12, 2023
I did take a quick look at it. NVENC looks pretty straight forward to use, but I struggled to understand how to use VA-API to encode. From what I can tell, the mapping between the two isn't as straight forward as the decoding side is.
JeWe37 commentedon May 10, 2023
I also have a use for this, I use multiple different machines for hardware encoding, some of which have NVIDIA, others Intel and others again AMD GPUs, and having VA-API support on NVIDIA would drastically simplify the required ffmpeg command creation.
BlauerHunger commentedon May 13, 2023
Waypipe could also benefit from this
cl0vrfi3ld commentedon Jan 23, 2025
I've been running a media server on my k8s cluster and configuring the current non-free NVIDIA drivers to work with containers/k8s was a nightmare, just to get basic hardware encoding working. It requires installing a custom container runtime (nvidia-container-toolkit), re-configuring (and in my case re-installing) Kubernetes, and installing extra operators in the cluster that take up compute resources and aren't documented that well. With VA-API GPUs, though, it's as simple as binding your workload to the appropriate dri path on the host, just like binding a directory. Voila, your GPU is exposed to the container.
This is all to say, having full decode and encode support would be HUGE for those utilizing containers. I can't support development financially at this time, but I'm happy to help out in any way I can (seriously this driver would've saved me days of tinkering, though I may just be bad at managing Linux kernel stuff 😅).
polarathene commentedon Jan 24, 2025
FWIW, the way forward with containers is CDI (standardised with OCI, so CRI agnostic), but presently only nvidia has official support for this (there is third-party generator for AMD iirc).
With docker prior to CDI, effectively only nvidia was supported (officially), and only cuda (compute) and nvidia-smi (utilities) capabilities were enabled by default.
Video encoding required an extra capability enabled and thus more verbose config similar to what you'd do for amd. Otherwise it's just
--gpus allon the CLI, the runtime you mention would be seamless (at least on Windows) with Docker Desktop which sets that up behind the scenes (they have k3s which might leverage the same).Anyway, with CDI the host system needs a config for the hardware defined with mappings of what to mount/do. It is vendor agnostic and allows for effectively
--device nvidia.com/all(something like that iirc).NixOS has a package for AMD and maybe Intel that's third-party/community managed iirc, and k8s AFAIK has equivalent via some plugins (I don't use k8s so I can't assist much there).
I'm not sure how long broader adoption for CDI by gpu vendors will take. I don't think it requires the custom nvidia runtime, but if it does pretty sure it's not intended to stay that way, it does currently require a host package (nvidia ctk) to generate the CDI config however.
padoruuuu commentedon Feb 27, 2025
id personally send el farto 200 bucks if nvenc support could be worked out
ryao commentedon Aug 6, 2025
Discord could use it. A friend had been complaining about low FPS whenever I stream over discord. As it turns out, my Ryzen 9 5950X CPU is unable to encode fast enough for discord. I am not sure why that is, given that my friend has a Ryzen 7 5800X and it can keep up without any issues. The only difference between my machine and my friend's machine is that my machine is downscaling 4K to 720p for Discord while my friend's machine is downscaling 1080p to 720p for Discord.
CelDaemon commentedon Sep 24, 2025
With discord seemingly working on using VA-API for their stream encoding, it may be worth revisiting this feature request.
relativemodder commentedon Sep 27, 2025
Agree here, bumping up this issue.
That would be pretty cool
eliteSchwein commentedon Oct 10, 2025
Legcord and many other third party electron based discord clients already use vaapi. this would be awesome...
relativemodder commentedon Oct 22, 2025
bumping this up; please, for the love of god, someday... it will happen...
xaionaro commentedon Oct 31, 2025
I'm willing to donate a bit for this feature :)
melody-rs commentedon Feb 16, 2026
I'm interested in trying to implement encoding, do you have any contribution guidelines I should be following?
elFarto commentedon Feb 16, 2026
There's no specific guidelines to contributing. With that said, while I don't mind the use of LLMs to aid in development, I don't like seeing PRs that look like no human has ever touched the code.
melody-rs commentedon Feb 25, 2026
Do you mind if I do some reorganization? I was thinking of having encode and decode logic in separate subfolders but I'd have to shift things around
elFarto commentedon Feb 25, 2026
That should be fine.
alper-han commentedon Mar 22, 2026
#425
efortin commentedon Apr 3, 2026
Hi, I started to play on legion go 2 (steam os) and steam link this night.
Totally vibe coded but if it can help, I introduced encoding hvec and h264 and all stuff to fix Steam issue on Blackwell (Nvidia remove lib cuda 32bit support causing issue with steam)
#427
thesword53 commentedon Sep 4, 2026
Here #438 is a pull request which adds support for H.264, HEVC and AV1 video encoding including YUV422 and YUV444 pixel formats for both H264 and HEVC.