Jump to content

OMV DOCKER EMBY problem with VAAPI


ZiemaF

Recommended Posts

GPU video transcoding in the Intel processor does not work.

Generally emby works well, but the GPU transcoding does not work.

I have the OpenMediaVault system installed on the server.

Docker is running on the server.

And on Docker is running EMBY.

Installations I made according to

https://hub.docker.com/r/emby/embyserver/

The user "emby" is created with id: 1000, and I added it to the "video" group (id: 44)

All transcoding goes through all 6 processor cores.

I do not know what I did wrong.

Link to comment
Share on other sites

Ok, this has all been revamped in the upcoming new release. I would try that once available. Thanks !

Link to comment
Share on other sites

  • 2 weeks later...

Hi,

 

I have a new version of EMBY 4.0.0.2 installed.
I still have a problem with hardware transcoding.
What can I do now?
 

post-24867-0-35795900-1547714521_thumb.jpg

post-24867-0-01519200-1547714528_thumb.jpg

post-24867-0-41974500-1547714535_thumb.jpg

Link to comment
Share on other sites

matty87a

Did you specify the below in your docker run?

--device /dev/dri/renderD128

My docker-compose file is below which works with Vaapi in case it helps (obviously the ports,mounts and uid/gid will be different)

version: '2'
services:
  emby:
    image: emby/embyserver:beta
    restart: unless-stopped
    environment:
      - PUID=112
      - GID=114
      - VIRTUAL_HOST=watch.domain.name
      - LETSENCRYPT_HOST=watch.domain.name
      - LETSENCRYPT_EMAIL=test@example.com
      - GIDLIST=44
      - VIRTUAL_PORT=8096
    ports:
      - "9096:8096"
    expose:
      - "8096"
    volumes:
      - emby_config:/config:rw
      - /media/:/media:rw
    devices:
      - /dev/dri/renderD128

volumes:
  emby_config:
    external: true

networks:
  default:
    external:
      name: Backend
Link to comment
Share on other sites

Docker is a bit  more difficult and will require setup on your part, for example see @zeimaf's post #9.

 

Did you also map the device, for example:

--device=/dev/dri/card1:/dev/dri/card0 --device /dev/dri/renderD129:/dev/dri/renderD128

This is just an example and may not work for you.

Link to comment
Share on other sites

How do I check "vainfo" then return it to me (vainfo.jpg)

Something is wrong

 

Maybe somehow I need to install graphics card drivers (intel)

post-24867-0-21413900-1547797809_thumb.jpg

post-24867-0-48786600-1547797817_thumb.jpg

Link to comment
Share on other sites

 

Maybe somehow I need to install graphics card drivers (intel)

 

 

Yes this is very possible. Can you do that? 

Link to comment
Share on other sites

  • 4 weeks later...
I managed to find out more about this problem.

Debian 9 "stretch" does not have a driver for Intel's 8th generation "Coffee Lake" processors. i965-va-driver version (1.7.3-1)

Only in Debian 10 "buster" is the driver for new Intel processors. i965-va-driver version (2.2.0 + dfsg1-2)

OMV 4 is based on Debian 9.

I added drivers for graphics from Debian 10 to Debian 9 (OMV).

 

vainfo after installing drivers from Buster



root@OMV:~# vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.4 (libva 2.2.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Coffee Lake - 2.3.0
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD


It looks like everything is ok.

 

But hardware transcode in EMBY still does not work.

I attach the EMBA logs in the attachments.

 

It is not easy to run EMBY on Docker on OMV :)


 

embyserver-2019.02.11.txt

hardware_detection-2019.02.11.txt

Link to comment
Share on other sites

I did not come up with this idea.

Do you know how to install these gpu drivers in the docker?

 

Wysłane z mojego LG-H870 przy użyciu Tapatalka

Link to comment
Share on other sites

our official docker already ships a vaapi driver. Perhaps the container isn't being granted access to the gpu?

Link to comment
Share on other sites

Have you mapped the device properly? To do so, simply use --device=/dev/dri/card1:/dev/dri/card0 --device /dev/dri/renderD129:/dev/dri/renderD128

Of course, adapt the number avec cardX and renderDXYZ to match your system.
Link to comment
Share on other sites

Not sure if you got this problem fixed. Others mentioned adding devices, nobody mentioned /dev/dri permissions?

 

If use portainer to manage docker. Edit Emby, find Runtime & Resources Tab. Add Device - > /dev/dri Rebuild your container.

Permissions so container can talk to igpu = chmod -R 777 /dev/dri (rebuilt on server boot, best to add in to compose/boot scripts)

 

Hope that helps!

Edited by sephx
Link to comment
Share on other sites

I found a message in the EMBY log: "Failed to open the drm device /dev/dri/renderD128"

 

 

I also set the permissions for this directory.
My user for Doker also has full permissions for this directory

    "Devices": [
        {
            "DeviceIndex": 0,
            "DeviceInfo": {
                "VendorId": 32902,
                "DeviceId": 16018,
                "SubsytemVendorId": 5208,
                "SubsytemDeviceId": 53248,
                "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 open the drm device /dev/dri/renderD128"
                }
            }
        }
Edited by ZiemaF
Link to comment
Share on other sites

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...