Jump to content

Intel N 355 hardware transcoding not available


Recommended Posts

CrazyBanter
Posted

I've been happily using Emby Premiere for almost a month. I was using a VM in a datacenter, but I recently decided to move everything to home-server powered by this an intel N 355 NAS board.

I'm currently running the latest Truenas Scale version and have set up a bunch of apps in docker, including Emby. Emby is running great except it's not recognising the Intel Quick Sync capabilities of the N355 CPU. 

I've researched the topic quite a bit.

  • I mapped the '/dev/dri/ device directory container
  • Added the graghics and renderer GIDs to GIDLIST
  • Tried running the beta (, which I will revert to latest after this post).

Docker definition of the Emby service

  emby:
    container_name: embyserver
    devices:
      - /dev/dri/:/dev/dri/
    environment:
      - UID=569
      - GID=3000
      - GIDLIST=44,107,3000
    image: emby/embyserver:beta
    network_mode: host
    ports:
      - '8096:8096'
      - '8920:8920'
    restart: on-failure
    volumes:
      - /mnt/Primary/media/app-data/embyserver:/config
      - /mnt/Primary/media/:/media

I check the hardware detection logs and I saw a failure initialising the renderD128 device, but no clear reason why;

    "Devices": [
        {
            "DeviceIndex": 0,
            "DeviceInfo": {
                "VendorName": "Intel Corporation",
                "DeviceName": "Alder Lake-N [Intel Graphics]",
                "SubsytemVendorName": "Intel Corporation",
                "VendorId": 32902,
                "DeviceId": 18131,
                "SubsytemVendorId": 32902,
                "SubsytemDeviceId": 29296,
                "DevPath": "/sys/bus/pci/devices/0000:00:02.0",
                "DrmCard": "/dev/dri/card0",
                "DrmRender": "/dev/dri/renderD128",
                "IsEnabled": 1,
                "IsBootVga": 1,
                "Error": {
                    "Number": -1,
                    "Message": "Failed to initialize VA /dev/dri/renderD128. Error -1"
                }
            }
        }

The intel N355 is an Alder Lake-N  CPU released early this year. I just checked and Alder Lake-N is the intel 12th gen, which should be out for a while.

Who knows what magic I'm missing to get hardware transcoding working?

emby-transcoding.png

embyserver.txt hardware_detection-63884469953.txt

  • 3 weeks later...
Posted

hi @CrazyBanterare you still having an issue with this?

We'll have an updated ffmpeg build on the server beta channel in the near future, so stay tuned for that.

CrazyBanter
Posted

Hi @Luke, thanks for reaching out. Yes I'm still having this issue.

I've consulted multiple forums without success. I have tried running the latest Ubuntu server 25.04, even running the latest kernel 6.15.1 and even with Emby installed as a native app I'm still getting the same initialisation error.

Someone on Reddit pointed out that ffmpeg on Ubuntu might be missing some features to get Quick Sync working. I actually was planning to wait for the next major update of TrueNas and Emby before attempting another fix. I recently found out that there is a firmware update available for my motherboard, I hope to install it this week, and I'll keep an eye out for the new beta version..

Posted

OK we're going to have an updated ffmpeg build on the server beta channel in the near future, so stay tuned for that.

hectorzane
Posted

Not familiar with the Emby technical stack, but I suppose the problem lies somewhere lower than the ffmpeg layer. 

I have an Intel N355 setup with Emby docker. /dev/dri set, GIDLIST set. 

On Emby 4.9.1.3 beta with image hash '3437840dfc24bd7f465b80e7f276f2...', no hardware accelerators are detected. 

ffdetect shows

/lib/dri # ffdetect  vaencdec -show_error
ffdetect version 5.1-emby_2023_06_25_p4 Copyright (c) 2018-2022 softworkz for Emby LLC
  built with gcc 10.3.0 (crosstool-NG 1.25.0)
  configuration: --cc=x86_64-emby-linux-gnu-gcc --prefix=/home/embybuilder/Buildbot/x64/ffmpeg-x64/staging --disable-alsa --disable-doc --disable-ffplay --disable-gnutls --disable-libpulse --disable-librtmp --disable-libxcb --disable-openssl --disable-vdpau --disable-vulkan --disable-xlib --enable-chromaprint --enable-fontconfig --enable-gpl --enable-iconv --enable-libaribb24 --enable-libass --enable-libdav1d --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libzvbi --enable-mbedtls --enable-pic --enable-version3 --enable-libtesseract --enable-cuda-llvm --enable-cuvid --enable-libdrm --enable-libmfx --enable-nvdec --enable-nvenc --enable-vaapi --enable-opencl --enable-cross-compile --cross-prefix=x86_64-emby-linux-gnu- --arch=x86_64 --target-os=linux --enable-shared --disable-static --pkg-config=pkg-config --pkg-config-flags=--static --extra-libs='-ldl -lm -lstdc++ -lsharpyuv -pthread' --disable-debug
  libavutil      57. 28.100 / 57. 28.100
[DEVICE]
DeviceIndex=0
DEVICEINFO:VendorName=Intel Corporation
DEVICEINFO:DeviceName=Alder Lake-N [Intel Graphics]
DEVICEINFO:SubsytemVendorName=Intel Corporation
DEVICEINFO:VendorId=32902
DEVICEINFO:DeviceId=18131
DEVICEINFO:SubsytemVendorId=32902
DEVICEINFO:SubsytemDeviceId=29296
DEVICEINFO:DevPath=/sys/bus/pci/devices/0000:00:02.0
DEVICEINFO:DrmCard=/dev/dri/card0
DEVICEINFO:DrmRender=/dev/dri/renderD128
DEVICEINFO:IsEnabled=1
DEVICEINFO:IsBootVga=1
DEVICEINFO:ERROR:Number=-1
DEVICEINFO:ERROR:Message=Failed to initialize VA /dev/dri/renderD128. Error -1

and vainfo shows 

/lib/dri # vainfo
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 error: /lib/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva error: /lib/dri/i965_drv_video.so init failed
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

It seems that there is an issue when loading VA driver for Intel N355 graphics (Alder-Lake-N). Supposedly, the driver should load with iHD_drv_video.so successfully.

Do not know if this is related to VA-API version or driver version. The latest VAAPI version is 2.22.0, and the latest driver is Intel Media Driver 2025Q1 Release - 25.1.4.

  • Like 1
CrazyBanter
Posted

@hectorzaneThanks for confirming that you're also experiencing this problem, it was driving me crazy.

I ran vainfo in the Emby container and I get the identical output;

Quote

/ # vainfo 
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 error: /lib/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva error: /lib/dri/i965_drv_video.so init failed
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

 

Posted

@CrazyBanter& @hectorzaneHave a look at post (although it's about the N150, some have said it works for the N355 also):

 

hectorzane
Posted (edited)

 @TMCsw Thank you! And that someone was me haha. Recompiling the latest driver stack do solves the problem, and now the hardware accelerators can be detected in Emby. 

  @CrazyBanterto compile and deploy the new driver stack, the process is pretty much the same as described in the N150 post. If you are on an Emby beta channel, you may need to redo a hardlink for gmmlib.so file inside the docker container. 

Edited by hectorzane
CrazyBanter
Posted

@hectorzaneThat looks very interesting, but I don't think I have the time to try it, I might have some free time next week.

  • 1 month later...
Posted
On 7/1/2025 at 1:41 AM, hectorzane said:

 @TMCsw Thank you! And that someone was me haha. Recompiling the latest driver stack do solves the problem, and now the hardware accelerators can be detected in Emby. 

  @CrazyBanterto compile and deploy the new driver stack, the process is pretty much the same as described in the N150 post. If you are on an Emby beta channel, you may need to redo a hardlink for gmmlib.so file inside the docker container. 

Could you explain here how to proceed? I'm very newbie jeje

Thanks a lor for your help

CrazyBanter
Posted
9 hours ago, zofiel said:

Could you explain here how to proceed? I'm very newbie jeje

Thanks a lor for your help

Take a look at this comment;

 https://emby.media/community/index.php?/topic/134698-intel-n150-transcoding-not-working/page/2/#findComment-1451703

I haven't tried it myself yet, life got in the way. Basically it describes how to compile the latest version of FFMPEG and combining it with Emby in a new docker container and the entire process runs in docker, meaning you don't need to install compilers or anything, it should be simply running that one docker compose file and it builds the new docker container for you.

There are some version numbers for libva, gmm and Ubuntu that you might have to check, maybe they've released newer versions. Also I'm unsure if Ubuntu 16.04 is still available since it's quite old, but I expect you can use any LTS version (24.04)

It looks simple enough, if you’re going to try it let me know the end result.

Posted
On 8/5/2025 at 9:36 AM, CrazyBanter said:

Take a look at this comment;

 https://emby.media/community/index.php?/topic/134698-intel-n150-transcoding-not-working/page/2/#findComment-1451703

I haven't tried it myself yet, life got in the way. Basically it describes how to compile the latest version of FFMPEG and combining it with Emby in a new docker container and the entire process runs in docker, meaning you don't need to install compilers or anything, it should be simply running that one docker compose file and it builds the new docker container for you.

There are some version numbers for libva, gmm and Ubuntu that you might have to check, maybe they've released newer versions. Also I'm unsure if Ubuntu 16.04 is still available since it's quite old, but I expect you can use any LTS version (24.04)

It looks simple enough, if you’re going to try it let me know the end result.

 

Thanks, i will review the info. 

 

@luke any news about the new ffmpeg and new intel drivers?

 

thanks!!

Posted
46 minutes ago, zofiel said:

 

Thanks, i will review the info. 

 

@luke any news about the new ffmpeg and new intel drivers?

 

thanks!!

We are working on it. Thanks.

hectorzane
Posted
On 8/5/2025 at 6:07 AM, zofiel said:

Could you explain here how to proceed? I'm very newbie jeje

Thanks a lor for your help

@zofielYou can check the following post for info about compiling new Intel graphics drivers. The post is fairly self-explanatory, but it requires a bit of background on computer systems/how compiling works. You can try to follow the guide step by step. If you encounter any specific problems, post them back here and I will be happy to help. 

I finished compiling using a virtual machine loaded with newly installed Ubuntu 18.04. The Ubuntu 18.04 is for ABI compatibility against the Alpine OS used by Emby docker images. 

Theoretically, the compiling process could be done using bare Alpine OS, but it requires a bit more manual configuration, and I haven't got time to make a workflow. 

 

Posted
16 hours ago, Luke said:

We are working on it. Thanks.

Great news!! thanks

Ra'Jiska
Posted
18 hours ago, Luke said:

We are working on it. Thanks.

@LukeWould you have a timeline for this? As per above's linked post, it has been 5 months you said this would be in the beta channel "in the very near future".

Ra'Jiska
Posted
On 05/08/2025 at 15:36, CrazyBanter said:

Take a look at this comment;

 https://emby.media/community/index.php?/topic/134698-intel-n150-transcoding-not-working/page/2/#findComment-1451703

I haven't tried it myself yet, life got in the way. Basically it describes how to compile the latest version of FFMPEG and combining it with Emby in a new docker container and the entire process runs in docker, meaning you don't need to install compilers or anything, it should be simply running that one docker compose file and it builds the new docker container for you.

There are some version numbers for libva, gmm and Ubuntu that you might have to check, maybe they've released newer versions. Also I'm unsure if Ubuntu 16.04 is still available since it's quite old, but I expect you can use any LTS version (24.04)

It looks simple enough, if you’re going to try it let me know the end result.

No this won't work using Ubuntu 24.04, this is because the ABIs used by Emby are linking with older versions which is the reason why I used Ubuntu 16 as base image, I suspect Emby is built against Ubuntu 16 image as well, which is why this one works.

@zofielIf you don't feel like building it all yourself, you can just use the automatically built images that include the latest dependencies that makes the new processors supports, image is `rajiska/emby-n150-fixed:latest` (you can replace `latest` with whatever version you want, starting at 4.9.0.0), dockerhub repo. You can find the build happening on Github, automated by Github Actions, which I have setup as this processor issue has been known since at least December 2024, and yet no fixes came out.

  • Thanks 1
Posted
8 hours ago, Ra'Jiska said:

@LukeWould you have a timeline for this? As per above's linked post, it has been 5 months you said this would be in the beta channel "in the very near future".

I don't have an ETA, but we are working hard on it.

  • Thanks 1
  • 2 weeks later...
CrazyBanter
Posted

So I had some spare time to day and tried to build the container as suggested in 

 https://emby.media/community/index.php?/topic/134698-intel-n150-transcoding-not-working/page/2/#findComment-1451703

I updated the Dockerfile to use the latest Emby beta;

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:beta AS emby

COPY --from=builder /workspace/build/lib /lib

And after building the new container `docker build -t emby-n355-fixed` and testing `docker run --rm -it --device /dev/dri:/dev/dri --entrypoint vainfo emby-n355-fixed`, I see that Intel QSV is now recognised.

  • 3 weeks later...
Posted (edited)

Hi there,

Feeling less alone with my problem after reading this post... 😄

So I'm migrating from a docker to another one. The current one has an Intel(R) Core(TM) i9-13900H and the one a  Intel(R) Core(TM) Ultra 9 285K
I migrated a test instance to see if everything would be alright, but I can't see VAPI/Quicksync features on my new server.

No offense and no pressure: Plex and Jellyfin can use it! 😇

It is not a migration stopper as I also have an NVIDIA GPU in it that Emby can use, but I found funny that only Emby would have difficulties to find it... So any news?

PS: platform used is AlmaLinux 9.6

Edited by EHRETic
Posted

Hi, we are working on getting a new ffmpeg build into the server beta channel, so stay tuned for that.

  • Like 1
Posted
8 hours ago, EHRETic said:

Hi there,

Feeling less alone with my problem after reading this post... 😄

So I'm migrating from a docker to another one. The current one has an Intel(R) Core(TM) i9-13900H and the one a  Intel(R) Core(TM) Ultra 9 285K
I migrated a test instance to see if everything would be alright, but I can't see VAPI/Quicksync features on my new server.

No offense and no pressure: Plex and Jellyfin can use it! 😇

It is not a migration stopper as I also have an NVIDIA GPU in it that Emby can use, but I found funny that only Emby would have difficulties to find it... So any news?

PS: platform used is AlmaLinux 9.6

@EHRETic Did you use Emby in a docker in your new server? If so, you can try updating the graphics driver in the docker container. Just follow the steps in the N150 posts or the steps here. 

  • Like 1
Posted
4 hours ago, hectorzane said:

@EHRETic Did you use Emby in a docker in your new server? If so, you can try updating the graphics driver in the docker container. Just follow the steps in the N150 posts or the steps here. 

Yes I have (both servers)! Thanks for caring! 😉

But I have a "backup" plan, which will spare me the need of generating my own image and have to maintain it.

I also have an NVIDIA GPU in the same server so I can use it for transcoding until my CPU is supported (I still find the Intel transcoding way snappier than NVIDIA's)

Hopefully can Emby integrate those on a more regular basis (the N150 thread started in 2024...) 😇

cantchooseaname
Posted

Same issue here on a new asus nuc 15 pro plus. It has a 255H cpu. Please update emby, so I don't have to switch to plex or jellyfin!

Posted

So, from what I gather, Emby can't use the latest Intel GPU's? I just moved to an Ultra 9 285k, and I can't seem to get HW transcoding working. On Plex and Jellyfin I managed to do it in like 2 minutes, and on Emby I've wasted hours with no luck, and from what I gather here, it's impossible for now.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...