• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

Linux and Intel Arc B570/B580 GPU Hardware Transcoding: What am I missing?

Heckin_Bamboozle

New Member
Joined
Apr 12, 2025
Messages
4 (0.15/day)
On release, I heard nothing but good things about the Battlemage series of Intel Arc GPUs. I had started to build a media server with hopes that I could rip Blu-Rays and DVDs and stream them to my TVs at home and when on the road (using Tailscale). Intel always seems to have some of the best compatibility and integration with the Linux kernel, so I picked up an Arc B570 for transcoding...

Well, the journey to getting it to work as it was intended has been interesting to say the least. Most of the information you're able to find with the Google machine is outdated, and a lot of the Intel gpu software for linux is in GitHub repositories and needs to be built from source as the distro repositories are outdated. I'm running Ubuntu Server 24.10 with the 6.14.2 kernel, and using the Automatic Ripping Machine (ARM) to spin up a MakeMKV and Handbrake docker container to rip and transcode. No matter what, I cannot get the container to enable QSV hardware encoding.

Has anyone had success getting one of these new Arc GPUs to work with hardware transcoding? It's driving me nuts!
 
All I know is it's possibly related to vaapi and vdpau, which are transcoding frameworks intel may or may not support. If they do, look into ensuring those are working probably (sorry this is so vague but I am only really familiar with them on AMD and Gentoo).
 
All I know is it's possibly related to vaapi and vdpau, which are transcoding frameworks intel may or may not support. If they do, look into ensuring those are working probably (sorry this is so vague but I am only really familiar with them on AMD and Gentoo).

No worries - it's been quite the process.

I've been able to get it to work on the host through basically throwing everything at it but the kitchen sink - build from source, package repos, etc. However, trying to recreate it has been interesting as the same steps seem to result in a different outcome. I haven't even tried the Docker passthru yet.

I guess this is what you get when the drivers are rapidly evolving. Still looking for "the answer".
 
No worries - it's been quite the process.

I've been able to get it to work on the host through basically throwing everything at it but the kitchen sink - build from source, package repos, etc. However, trying to recreate it has been interesting as the same steps seem to result in a different outcome. I haven't even tried the Docker passthru yet.

I guess this is what you get when the drivers are rapidly evolving. Still looking for "the answer".
I know the feeling, half of the stuff in this category feels like an undocumented tech voodoo ritual. Best of luck!
 
Is your main issue getting transcoding to work at all on the host itself, or getting it to work within a Docker container?
You mentioned you got it to work on the host, so I'm a bit confused.
 
Is your main issue getting transcoding to work at all on the host itself, or getting it to work within a Docker container?
You mentioned you got it to work on the host, so I'm a bit confused.
It’s actually a little of both. After trying several different ways of installing required packages, including building several from source, I was able to get the QSV codecs to appear as available when I ran HandBrakeCLI -h. I then tried to figure out what exactly I did by uninstalling everything and starting over, but couldn’t re-create it.

I still have yet to get it to work in docker, even though it appears I am passing all the right devices to the container and including all of the packages necessary to get it to work.

It seems as though it’s a matter of making sure that the kernel, Ubuntu release, Intel repository, and packages are all new enough to support the B series GPUs and enable QSV, but that perfect combination has been elusive so far.
 
It’s actually a little of both. After trying several different ways of installing required packages, including building several from source, I was able to get the QSV codecs to appear as available when I ran HandBrakeCLI -h. I then tried to figure out what exactly I did by uninstalling everything and starting over, but couldn’t re-create it.

I still have yet to get it to work in docker, even though it appears I am passing all the right devices to the container and including all of the packages necessary to get it to work.

It seems as though it’s a matter of making sure that the kernel, Ubuntu release, Intel repository, and packages are all new enough to support the B series GPUs and enable QSV, but that perfect combination has been elusive so far.
Do you have experience with ffmpeg? If so, would you be able to make use of it instead to check if (d)encoding is properly working with your GPU?
Also, could you try to use VA-API rather than QSV? It's usually easier to make use of it.
 
Update: I think I figured out the issue with getting it to work. I forgot that the firmwares are packaged with the windows drivers, so rather than trying to figure out how to extract and install the firmware‘s on Linux, I created a portable windows flash drive and updated the firmware that way. Next attempt at getting the docker container to work was successful!
 
Back
Top