b3n__ 1 Posted June 25, 2025 Posted June 25, 2025 On 6/16/2025 at 11:45 PM, Ra'Jiska said: After many trial-and-error I've finally been able to get it working by rebuilding the `intel-media-driver` library with the latest version, the hard part was compiling this with dependencies having compatible ABI as the ones running on the Emby image (thanks closed source), which I found with image `ubuntu:18.04`. Sharing here to everyone who was stuck like me. To get this working you need to make your custom image of the emby image with the updated dependencies. The following steps took me 15 minutes to build on a 20 cores CPU, the build process will take longer with less cores (therefore, much longer on a N150 if you're compiling directly there). Mate, thank you so much for this! I can finally use a feature I paid for. Your docker image works great! 1
hectorzane 5 Posted June 28, 2025 Posted June 28, 2025 On 6/16/2025 at 9:45 PM, Ra'Jiska said: After many trial-and-error I've finally been able to get it working by rebuilding the `intel-media-driver` library with the latest version, the hard part was compiling this with dependencies having compatible ABI as the ones running on the Emby image (thanks closed source), which I found with image `ubuntu:18.04`. Sharing here to everyone who was stuck like me. To get this working you need to make your custom image of the emby image with the updated dependencies. The following steps took me 15 minutes to build on a 20 cores CPU, the build process will take longer with less cores (therefore, much longer on a N150 if you're compiling directly there). 1) Create an empty folder with a file `Dockerfile` file with the following content FROM ubuntu:18.04 AS builder WORKDIR /workspace RUN apt-get update && \ apt-get install -y \ build-essential \ git \ cmake \ automake \ autoconf \ libtool \ m4 \ pkg-config \ libdrm-dev RUN mkdir build build/usr build/lib # Libva RUN \ git clone https://github.com/intel/libva.git && \ cd libva && \ git checkout 2.22.0 && \ ./autogen.sh --prefix=/workspace/build/usr --libdir=/workspace/build/lib && \ make -j$(nproc) && \ make install && \ cd - # Gmmlib RUN \ git clone https://github.com/intel/gmmlib.git && \ cd gmmlib && \ git checkout intel-gmmlib-22.7.2 && \ mkdir build && \ cd build && \ cmake -DCMAKE_INSTALL_PREFIX=/workspace/build/usr -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_INSTALL_LIBDIR=/workspace/build/lib -DCMAKE_BUILD_TYPE=ReleaseInternal .. && \ make -j$(nproc) && \ make install && \ cd ../../ # Media Driver RUN \ git clone https://github.com/intel/media-driver.git && \ cd media-driver && \ mkdir build && \ cd build && \ export PKG_CONFIG_PATH=/workspace/build/lib/pkgconfig && \ cmake -DCMAKE_LIBRARY_PATH=/workspace/build/lib -DCMAKE_INSTALL_PREFIX=/workspace/build/usr -DCMAKE_INSTALL_LIBDIR=/workspace/build/lib .. && \ make -j$(nproc) && \ make install RUN find /workspace/build -name "*.so" -exec strip --strip-unneeded {} \; FROM emby/embyserver:4.9.1.0 AS emby COPY --from=builder /workspace/build/lib /lib 2) Build the image using `docker build -t emby-n150-fixed .` This will take a while, the more CPU cores you have the shorter (took me about 30 minutes with 20 cores) 3) Check that this is working by running `docker run --rm -it --device /dev/dri:/dev/dri --entrypoint vainfo emby-n150-fixed`, if this returns something as follows, then it worked: Trying display: drm libva info: VA-API version 1.22.0 libva info: Trying to open /lib/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_22 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.22 (libva 2.22.0) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.2.5 (4b3a078bd) vainfo: Supported profile and entrypoints VAProfileNone : VAEntrypointVideoProc VAProfileNone : VAEntrypointStats VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Simple : VAEntrypointEncSlice VAProfileMPEG2Main : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264Main : VAEntrypointFEI VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264High : VAEntrypointFEI VAProfileH264High : VAEntrypointEncSliceLP VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointFEI VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointFEI VAProfileHEVCMain : VAEntrypointEncSliceLP VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSlice VAProfileHEVCMain10 : VAEntrypointEncSliceLP VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointEncSliceLP VAProfileVP9Profile1 : VAEntrypointVLD VAProfileVP9Profile1 : VAEntrypointEncSliceLP VAProfileVP9Profile2 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointEncSliceLP VAProfileVP9Profile3 : VAEntrypointVLD VAProfileVP9Profile3 : VAEntrypointEncSliceLP VAProfileHEVCMain12 : VAEntrypointVLD VAProfileHEVCMain12 : VAEntrypointEncSlice VAProfileHEVCMain422_10 : VAEntrypointVLD VAProfileHEVCMain422_10 : VAEntrypointEncSlice VAProfileHEVCMain422_12 : VAEntrypointVLD VAProfileHEVCMain422_12 : VAEntrypointEncSlice VAProfileHEVCMain444 : VAEntrypointVLD VAProfileHEVCMain444 : VAEntrypointEncSliceLP VAProfileHEVCMain444_10 : VAEntrypointVLD VAProfileHEVCMain444_10 : VAEntrypointEncSliceLP VAProfileHEVCMain444_12 : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointEncSliceLP VAProfileHEVCSccMain10 : VAEntrypointVLD VAProfileHEVCSccMain10 : VAEntrypointEncSliceLP VAProfileHEVCSccMain444 : VAEntrypointVLD VAProfileHEVCSccMain444 : VAEntrypointEncSliceLP VAProfileAV1Profile0 : VAEntrypointVLD VAProfileHEVCSccMain444_10 : VAEntrypointVLD VAProfileHEVCSccMain444_10 : VAEntrypointEncSliceLP You can compare and run the same command on the emby image, you should have a bunch of errors instead. 4) (OPTIONAL) For your convenience, I uploaded the image on DockerHub if you want an easy way to see if it works, use the image rajiska/emby-n150-fixed:4.9.1.0, though I'd recommend to build the image yourself Thank you! Here I confirm this workaround works on Intel N355 CPU as well. 1 2
LoV432 4 Posted July 1, 2025 Posted July 1, 2025 Got hardware acceleration working for a non-Docker Emby install on Ubuntu 25.04 (LXC Inside Proxmox) using this: apt update && apt upgrade -y && apt install vainfo intel-media-va-driver -y cp -r /usr/lib/x86_64-linux-gnu/* /opt/emby-server/extra/lib/ mv /opt/emby-server/lib/libstdc++.so.6 /tmp/libstdc++.so.6.bk && cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /opt/emby-server/lib/libstdc++.so.6 # Finally to check if it worked root@emby:~# /opt/emby-server/bin/emby-vainfo Trying display: drm libva info: VA-API version 1.22.0 libva info: Trying to open /opt/emby-server/extra/lib/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_22 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.22 (libva 2.17.1) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.1.2 () vainfo: Supported profile and entrypoints VAProfileNone : VAEntrypointVideoProc VAProfileNone : VAEntrypointStats VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSliceLP VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSliceLP VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSliceLP VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointEncSliceLP VAProfileVP9Profile1 : VAEntrypointVLD VAProfileVP9Profile1 : VAEntrypointEncSliceLP VAProfileVP9Profile2 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointEncSliceLP VAProfileVP9Profile3 : VAEntrypointVLD VAProfileVP9Profile3 : VAEntrypointEncSliceLP VAProfileHEVCMain12 : VAEntrypointVLD VAProfileHEVCMain422_10 : VAEntrypointVLD VAProfileHEVCMain422_12 : VAEntrypointVLD VAProfileHEVCMain444 : VAEntrypointVLD VAProfileHEVCMain444 : VAEntrypointEncSliceLP VAProfileHEVCMain444_10 : VAEntrypointVLD VAProfileHEVCMain444_10 : VAEntrypointEncSliceLP VAProfileHEVCMain444_12 : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointEncSliceLP VAProfileHEVCSccMain10 : VAEntrypointVLD VAProfileHEVCSccMain10 : VAEntrypointEncSliceLP VAProfileHEVCSccMain444 : VAEntrypointVLD VAProfileHEVCSccMain444 : VAEntrypointEncSliceLP VAProfileHEVCSccMain444_10 : VAEntrypointVLD VAProfileHEVCSccMain444_10 : VAEntrypointEncSliceLP 2 1
jeffreyw 0 Posted July 12, 2025 Posted July 12, 2025 On 16/06/2025 at 09:45, Ra'Jiska said: After many trial-and-error I've finally been able to get it working by rebuilding the `intel-media-driver` library with the latest version, the hard part was compiling this with dependencies having compatible ABI as the ones running on the Emby image (thanks closed source), which I found with image `ubuntu:18.04`. Sharing here to everyone who was stuck like me. To get this working you need to make your custom image of the emby image with the updated dependencies. The following steps took me 15 minutes to build on a 20 cores CPU, the build process will take longer with less cores (therefore, much longer on a N150 if you're compiling directly there). 1) Create an empty folder with a file `Dockerfile` file with the following content FROM ubuntu:18.04 AS builder WORKDIR /workspace RUN apt-get update && \ apt-get install -y \ build-essential \ git \ cmake \ automake \ autoconf \ libtool \ m4 \ pkg-config \ libdrm-dev RUN mkdir build build/usr build/lib # Libva RUN \ git clone https://github.com/intel/libva.git && \ cd libva && \ git checkout 2.22.0 && \ ./autogen.sh --prefix=/workspace/build/usr --libdir=/workspace/build/lib && \ make -j$(nproc) && \ make install && \ cd - # Gmmlib RUN \ git clone https://github.com/intel/gmmlib.git && \ cd gmmlib && \ git checkout intel-gmmlib-22.7.2 && \ mkdir build && \ cd build && \ cmake -DCMAKE_INSTALL_PREFIX=/workspace/build/usr -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_INSTALL_LIBDIR=/workspace/build/lib -DCMAKE_BUILD_TYPE=ReleaseInternal .. && \ make -j$(nproc) && \ make install && \ cd ../../ # Media Driver RUN \ git clone https://github.com/intel/media-driver.git && \ cd media-driver && \ mkdir build && \ cd build && \ export PKG_CONFIG_PATH=/workspace/build/lib/pkgconfig && \ cmake -DCMAKE_LIBRARY_PATH=/workspace/build/lib -DCMAKE_INSTALL_PREFIX=/workspace/build/usr -DCMAKE_INSTALL_LIBDIR=/workspace/build/lib .. && \ make -j$(nproc) && \ make install RUN find /workspace/build -name "*.so" -exec strip --strip-unneeded {} \; FROM emby/embyserver:4.9.1.0 AS emby COPY --from=builder /workspace/build/lib /lib 2) Build the image using `docker build -t emby-n150-fixed .` This will take a while, the more CPU cores you have the shorter (took me about 30 minutes with 20 cores) 3) Check that this is working by running `docker run --rm -it --device /dev/dri:/dev/dri --entrypoint vainfo emby-n150-fixed`, if this returns something as follows, then it worked: Trying display: drm libva info: VA-API version 1.22.0 libva info: Trying to open /lib/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_22 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.22 (libva 2.22.0) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.2.5 (4b3a078bd) vainfo: Supported profile and entrypoints VAProfileNone : VAEntrypointVideoProc VAProfileNone : VAEntrypointStats VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Simple : VAEntrypointEncSlice VAProfileMPEG2Main : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264Main : VAEntrypointFEI VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264High : VAEntrypointFEI VAProfileH264High : VAEntrypointEncSliceLP VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointFEI VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointFEI VAProfileHEVCMain : VAEntrypointEncSliceLP VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSlice VAProfileHEVCMain10 : VAEntrypointEncSliceLP VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointEncSliceLP VAProfileVP9Profile1 : VAEntrypointVLD VAProfileVP9Profile1 : VAEntrypointEncSliceLP VAProfileVP9Profile2 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointEncSliceLP VAProfileVP9Profile3 : VAEntrypointVLD VAProfileVP9Profile3 : VAEntrypointEncSliceLP VAProfileHEVCMain12 : VAEntrypointVLD VAProfileHEVCMain12 : VAEntrypointEncSlice VAProfileHEVCMain422_10 : VAEntrypointVLD VAProfileHEVCMain422_10 : VAEntrypointEncSlice VAProfileHEVCMain422_12 : VAEntrypointVLD VAProfileHEVCMain422_12 : VAEntrypointEncSlice VAProfileHEVCMain444 : VAEntrypointVLD VAProfileHEVCMain444 : VAEntrypointEncSliceLP VAProfileHEVCMain444_10 : VAEntrypointVLD VAProfileHEVCMain444_10 : VAEntrypointEncSliceLP VAProfileHEVCMain444_12 : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointEncSliceLP VAProfileHEVCSccMain10 : VAEntrypointVLD VAProfileHEVCSccMain10 : VAEntrypointEncSliceLP VAProfileHEVCSccMain444 : VAEntrypointVLD VAProfileHEVCSccMain444 : VAEntrypointEncSliceLP VAProfileAV1Profile0 : VAEntrypointVLD VAProfileHEVCSccMain444_10 : VAEntrypointVLD VAProfileHEVCSccMain444_10 : VAEntrypointEncSliceLP You can compare and run the same command on the emby image, you should have a bunch of errors instead. 4) (OPTIONAL) For your convenience, I uploaded the image on DockerHub if you want an easy way to see if it works, use the image rajiska/emby-n150-fixed:4.9.1.0, though I'd recommend to build the image yourself Thank you for your amazing work. Used this to build the latest stable 4.8.11.0 image and transcoding works now on my N150.
jeffreyw 0 Posted July 12, 2025 Posted July 12, 2025 One thing I did notice is that only VAAPI hardware acceleration is working. Anyone have any luck with QuickSync showing as an option?
Wheemer 50 Posted August 9, 2025 Posted August 9, 2025 On 01/07/2025 at 17:28, LoV432 said: Got hardware acceleration working for a non-Docker Emby install on Ubuntu 25.04 (LXC Inside Proxmox) using this: apt update && apt upgrade -y && apt install vainfo intel-media-va-driver -y cp -r /usr/lib/x86_64-linux-gnu/* /opt/emby-server/extra/lib/ mv /opt/emby-server/lib/libstdc++.so.6 /tmp/libstdc++.so.6.bk && cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /opt/emby-server/lib/libstdc++.so.6 # Finally to check if it worked root@emby:~# /opt/emby-server/bin/emby-vainfo Trying display: drm libva info: VA-API version 1.22.0 libva info: Trying to open /opt/emby-server/extra/lib/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_22 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.22 (libva 2.17.1) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.1.2 () vainfo: Supported profile and entrypoints VAProfileNone : VAEntrypointVideoProc VAProfileNone : VAEntrypointStats VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSliceLP VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSliceLP VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSliceLP VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointEncSliceLP VAProfileVP9Profile1 : VAEntrypointVLD VAProfileVP9Profile1 : VAEntrypointEncSliceLP VAProfileVP9Profile2 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointEncSliceLP VAProfileVP9Profile3 : VAEntrypointVLD VAProfileVP9Profile3 : VAEntrypointEncSliceLP VAProfileHEVCMain12 : VAEntrypointVLD VAProfileHEVCMain422_10 : VAEntrypointVLD VAProfileHEVCMain422_12 : VAEntrypointVLD VAProfileHEVCMain444 : VAEntrypointVLD VAProfileHEVCMain444 : VAEntrypointEncSliceLP VAProfileHEVCMain444_10 : VAEntrypointVLD VAProfileHEVCMain444_10 : VAEntrypointEncSliceLP VAProfileHEVCMain444_12 : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointEncSliceLP VAProfileHEVCSccMain10 : VAEntrypointVLD VAProfileHEVCSccMain10 : VAEntrypointEncSliceLP VAProfileHEVCSccMain444 : VAEntrypointVLD VAProfileHEVCSccMain444 : VAEntrypointEncSliceLP VAProfileHEVCSccMain444_10 : VAEntrypointVLD VAProfileHEVCSccMain444_10 : VAEntrypointEncSliceLP Would this be able to work with intel-media-va-driver-non-free? Another app I'm running needs it. I did try but it doesn't currently work. 1
LoV432 4 Posted August 9, 2025 Posted August 9, 2025 9 hours ago, Wheemer said: Would this be able to work with intel-media-va-driver-non-free? Another app I'm running needs it. I did try but it doesn't currently work. I don't see why it wouldn't work as long as you are on Ubuntu 25.04
Wheemer 50 Posted August 10, 2025 Posted August 10, 2025 6 hours ago, LoV432 said: I don't see why it wouldn't work as long as you are on Ubuntu 25.04 I'm on debian 12, and it doesn't work
LoV432 4 Posted August 10, 2025 Posted August 10, 2025 5 hours ago, Wheemer said: I'm on debian 12, and it doesn't work Debian 12 has the older version of drivers. You will need either Ubuntu 25.04 or Debian 13 https://packages.debian.org/search?keywords=intel-media-va-driver-non-free https://launchpad.net/ubuntu/+source/intel-media-driver-non-free 1
Wheemer 50 Posted August 10, 2025 Posted August 10, 2025 1 hour ago, LoV432 said: Debian 12 has the older version of drivers. You will need either Ubuntu 25.04 or Debian 13 https://packages.debian.org/search?keywords=intel-media-va-driver-non-free https://launchpad.net/ubuntu/+source/intel-media-driver-non-free Thanks, working now. 1
Cobester 3 Posted August 11, 2025 Posted August 11, 2025 Thanks Ra'Jiska! Can't tell you how happy I am to find this workaround. I had been spending literally all weekend trying to figure out why Emby wouldn't detect my new Intel ARC 130T integrated GPU (Arrow-Lake) for hardware transcoding. Currently running Proxmox 9.0 / Debian 13. I ran your custom docker image in an LXC container and VAAPI encoders/decoders got detected and confirmed working when I monitor using intel_gpu_top. How can we get the Intel QSV encoders/decoders to appear in Emby?
PIkeoftheLake 14 Posted August 20, 2025 Posted August 20, 2025 I'm going to try to move to a docker install to get my hardware transcoding working. I have used docker a number of times over the years but I was hoping someone could just give me a bit of help with this. So I have my server running with Truenas and I'm using Dockge through their apps feature. The only command that I have from Rajiska is: docker pull rajiska/emby-n150-fixed So do I basically start a new compose file and enter in: rajiska/emby-n150-fixed somewhere? Then what do I do? I must need to specify volumes somewhere. Many thanks for the help.
Phalcon 2 Posted August 24, 2025 Posted August 24, 2025 Hello @Luke, now that the problem has been found, could you update the official Emby Docker ? It would be great, thanks! 2
Ra'Jiska 16 Posted August 24, 2025 Posted August 24, 2025 (edited) On 11/08/2025 at 20:27, Cobester said: Thanks Ra'Jiska! Can't tell you how happy I am to find this workaround. I had been spending literally all weekend trying to figure out why Emby wouldn't detect my new Intel ARC 130T integrated GPU (Arrow-Lake) for hardware transcoding. Currently running Proxmox 9.0 / Debian 13. I ran your custom docker image in an LXC container and VAAPI encoders/decoders got detected and confirmed working when I monitor using intel_gpu_top. How can we get the Intel QSV encoders/decoders to appear in Emby? Happy to know it worked for you. As for QSV I'm honestly not sure as I stopped digging once as hardware transcoding started worked as my understanding is that QSV is not necessarily much more performant than VAAPI. If you really want QSV, somebody reported that they got it working by modifying the Dockerfile I supplied: On 20/08/2025 at 21:56, PIkeoftheLake said: I'm going to try to move to a docker install to get my hardware transcoding working. I have used docker a number of times over the years but I was hoping someone could just give me a bit of help with this. So I have my server running with Truenas and I'm using Dockge through their apps feature. The only command that I have from Rajiska is: docker pull rajiska/emby-n150-fixed So do I basically start a new compose file and enter in: rajiska/emby-n150-fixed somewhere? Then what do I do? I must need to specify volumes somewhere. Many thanks for the help. I am not sure how the non-docker version works but I'd assume you would only have to get the latest libva version and install it on your system to make it work. If you really want to use docker you may follow the official instructions from dockerhub: https://hub.docker.com/r/emby/embyserver. As for the docker image, you may user `rajiska/emby-n150-fixed` instead of `emby/embyserver`. Edited August 24, 2025 by Ra'Jiska
irishjob 5 Posted August 30, 2025 Posted August 30, 2025 @hectorzane Thank you for sharing the instructions on how to build the image, I used them to update a jellyfin image and now hardware transcoding is working on my Me Mini with N150 CPU
Wheemer 50 Posted September 9, 2025 Posted September 9, 2025 On 10/08/2025 at 05:53, LoV432 said: Debian 12 has the older version of drivers. You will need either Ubuntu 25.04 or Debian 13 https://packages.debian.org/search?keywords=intel-media-va-driver-non-free https://launchpad.net/ubuntu/+source/intel-media-driver-non-free Hello; This has been working great however I'm now using the i965-va-driver-shaders in other apps on the server, can this use that driver instead?
zofiel 1 Posted September 9, 2025 Posted September 9, 2025 Hi @Lukeany advance? my Emby was updated today but the error persist
Luke 42077 Posted September 10, 2025 Posted September 10, 2025 12 hours ago, zofiel said: Hi @Lukeany advance? my Emby was updated today but the error persist Hi, not yet. We are working on a new ffmpeg build that will hit the server beta channel in the near future. Thanks. 1 1
joli 3 Posted September 10, 2025 Posted September 10, 2025 1 hour ago, Luke said: Hi, not yet. We are working on a new ffmpeg build that will hit the server beta channel in the near future. Thanks. No offence but that is the same reply that you gave on march 26th this year. Is there any real update since then or an eta? 1 1
Wheemer 50 Posted September 10, 2025 Posted September 10, 2025 5 hours ago, joli said: No offence but that is the same reply that you gave on march 26th this year. Is there any real update since then or an eta? Open ended responses without commitment is the norm around here. Expecting things with paid software is a privledge not granted from the supreme master.
Carnifex 2 Posted September 10, 2025 Posted September 10, 2025 On 7/1/2025 at 9:58 PM, LoV432 said: Got hardware acceleration working for a non-Docker Emby install on Ubuntu 25.04 (LXC Inside Proxmox) using this: apt update && apt upgrade -y && apt install vainfo intel-media-va-driver -y cp -r /usr/lib/x86_64-linux-gnu/* /opt/emby-server/extra/lib/ mv /opt/emby-server/lib/libstdc++.so.6 /tmp/libstdc++.so.6.bk && cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /opt/emby-server/lib/libstdc++.so.6 # Finally to check if it worked root@emby:~# /opt/emby-server/bin/emby-vainfo Trying display: drm libva info: VA-API version 1.22.0 libva info: Trying to open /opt/emby-server/extra/lib/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_22 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.22 (libva 2.17.1) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.1.2 () vainfo: Supported profile and entrypoints VAProfileNone : VAEntrypointVideoProc VAProfileNone : VAEntrypointStats VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSliceLP VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSliceLP VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSliceLP VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointEncSliceLP VAProfileVP9Profile1 : VAEntrypointVLD VAProfileVP9Profile1 : VAEntrypointEncSliceLP VAProfileVP9Profile2 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointEncSliceLP VAProfileVP9Profile3 : VAEntrypointVLD VAProfileVP9Profile3 : VAEntrypointEncSliceLP VAProfileHEVCMain12 : VAEntrypointVLD VAProfileHEVCMain422_10 : VAEntrypointVLD VAProfileHEVCMain422_12 : VAEntrypointVLD VAProfileHEVCMain444 : VAEntrypointVLD VAProfileHEVCMain444 : VAEntrypointEncSliceLP VAProfileHEVCMain444_10 : VAEntrypointVLD VAProfileHEVCMain444_10 : VAEntrypointEncSliceLP VAProfileHEVCMain444_12 : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointEncSliceLP VAProfileHEVCSccMain10 : VAEntrypointVLD VAProfileHEVCSccMain10 : VAEntrypointEncSliceLP VAProfileHEVCSccMain444 : VAEntrypointVLD VAProfileHEVCSccMain444 : VAEntrypointEncSliceLP VAProfileHEVCSccMain444_10 : VAEntrypointVLD VAProfileHEVCSccMain444_10 : VAEntrypointEncSliceLP Hello everyone, First of all, thanks to LoV432. Your workaround also works for a native installation of Emby 4.8.11 on Ubuntu Server with an Intel Ultra 7 255H processor / Intel Arc 140 iGPU. Here are my steps on a clean Ubuntu Server 24.04 LTS installation: # System update & upgrade to newer kernel (Arrow Lake CPUs require kernel > 6.10) sudo apt update sudo apt install --install-recommends linux-generic-hwe-24.04 sudo reboot sudo apt update sudo apt upgrade # Install Intel graphics drivers sudo apt install -y software-properties-common sudo add-apt-repository -y ppa:kobuk-team/intel-graphics sudo apt install -y libze-intel-gpu1 libze1 intel-metrics-discovery intel-opencl-icd clinfo intel-gsc intel-media-va-driver-non-free libmfx-gen1 libvpl2 libvpl-tools libva-glx2 va-driver-all vainfo # Verify VA-API installation vainfo # Install Emby Server wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.8.11.0/emby-server-deb_4.8.11.0_amd64.deb sudo dpkg -i emby-server-deb_4.8.11.0_amd64.deb rm emby-server-deb_4.8.11.0_amd64.deb # Copy required libraries and fix dependencies sudo cp -r /usr/lib/x86_64-linux-gnu/* /opt/emby-server/extra/lib/ sudo mv /opt/emby-server/lib/libstdc++.so.6 /tmp/libstdc++.so.6.bk sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /opt/emby-server/lib/libstdc++.so.6 # Restart Emby sudo systemctl restart emby-server.service That’s it - Emby should now be running with Intel GPU support. Have a nice day folks 1 1
LoV432 4 Posted September 10, 2025 Posted September 10, 2025 On 9/9/2025 at 7:13 PM, Wheemer said: Hello; This has been working great however I'm now using the i965-va-driver-shaders in other apps on the server, can this use that driver instead? No idea, sorry. You will have to give it a try yourself
Wheemer 50 Posted September 10, 2025 Posted September 10, 2025 2 minutes ago, LoV432 said: No idea, sorry. You will have to give it a try yourself I have no idea how to do that. I have both drivers installed so not sure if the paths would need to be changed or what. Everything is currently working was just thinking mabe this might make qsv available over vaapi.
razor2000nz1 0 Posted September 16, 2025 Posted September 16, 2025 On 9/10/2025 at 11:19 PM, Carnifex said: Hello everyone, First of all, thanks to LoV432. Your workaround also works for a native installation of Emby 4.8.11 on Ubuntu Server with an Intel Ultra 7 255H processor / Intel Arc 140 iGPU. Here are my steps on a clean Ubuntu Server 24.04 LTS installation: # System update & upgrade to newer kernel (Arrow Lake CPUs require kernel > 6.10) sudo apt update sudo apt install --install-recommends linux-generic-hwe-24.04 sudo reboot sudo apt update sudo apt upgrade # Install Intel graphics drivers sudo apt install -y software-properties-common sudo add-apt-repository -y ppa:kobuk-team/intel-graphics sudo apt install -y libze-intel-gpu1 libze1 intel-metrics-discovery intel-opencl-icd clinfo intel-gsc intel-media-va-driver-non-free libmfx-gen1 libvpl2 libvpl-tools libva-glx2 va-driver-all vainfo # Verify VA-API installation vainfo # Install Emby Server wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.8.11.0/emby-server-deb_4.8.11.0_amd64.deb sudo dpkg -i emby-server-deb_4.8.11.0_amd64.deb rm emby-server-deb_4.8.11.0_amd64.deb # Copy required libraries and fix dependencies sudo cp -r /usr/lib/x86_64-linux-gnu/* /opt/emby-server/extra/lib/ sudo mv /opt/emby-server/lib/libstdc++.so.6 /tmp/libstdc++.so.6.bk sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /opt/emby-server/lib/libstdc++.so.6 # Restart Emby sudo systemctl restart emby-server.service That’s it - Emby should now be running with Intel GPU support. Have a nice day folks Thanks for this! Worked perfectly for my N150. I was able to cut and paste each line and it worked Are you able to write instructions on how to auto mount a synology nfs share as well? Linux is all new to me - using Ubuntu 24.04 LTS
PIkeoftheLake 14 Posted September 16, 2025 Posted September 16, 2025 (edited) I thought I'd update Everyone on my progress with using Rajiska's docker build on my setup. I can kindof work with Docker and usually get things up and running but it usually takes me a morning of screwing around and a few choice words before I'm successful. Hopefully this can help others who are slightly inclined but also slightly inept like me . I'm running Truenas on a 2 bay NAS with an Intel N150 chip. See here: Topton R1 Truenas has emby in their applications section but of course it doesn't work with hardware transcoding. Truenas also has the option to use dockge and portainer so I opted to use portainer to deploy Rajiska's build. Here is what I did: You need to point Portainer toward your media files. I have 5 or 6 media folders on my NAS as samba shares titled movies, music, tv etc. In Portainer, click Volumes, then Add Volume and you can point Portainer toward each of your media folders. Next go to containers and click Add Container. Give the container a name and then in image configuration point to Docker Hub (anonymous) and input Rajiska's docker build: rajiska/emby-n150-fixed:latest For Port Mapping put in Host 8096 and Container 8096. Now go to Advanced Container Settings and click Volumes. You want to point Emby toward all those folders you setup in step 1. Click on map additional volume. For this, say you wanted your music folder to be available. In container, you type in /music and leave it as /Volume. Then in volume, click the drop down and find your music folder that you opened up in step one. Then repeat this for all your folders. Now stay in Advanced Container Settings and go to Restart Policy. You generally want your container to restart unless stopped. Last, go to Runtime & resources. This is where you will point the container toward your gpu. At Devices type host: /dev/dri and container /dev/dri That should be it. You can click Deploy the container just above the Advanced container settings. Portainer will download the container and then get it up and running. In your containers screen you should see a green sign saying running next to your Emby build. To update your build just click on the container and press Recreate, then Re-pull image. This will pull the latest image that Rajiska has created. That should be it. I wanted to make this walkthrough because I find Docker quite confusing and I'm sure others do as well. Let me know how you fare. Edited September 16, 2025 by PIkeoftheLake
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now