Jump to content

Docker VAAPI Hardware Transcoding


b0mb

Recommended Posts

b0mb

Hi!

 

I´m actually using latest EmbyBeta within a docker container on my unRAID server. Hardware is an asrock itx board with j3455 cpu which is cappable of all my needs ;)

 

Did any1 get hw transcoding via VAAPI running yet?

 

I am trying and trying and trying and it seems like me IGPU is available but i can´t get it work.

 

I´ve tried plex container, where HW transcoding is working but only for plex pass users and as i´m an emby fan i don´t have a plex pass.

 

Packages like VAINFO are missing in the emby container and i dont´t know how to install those in that opensuse based container.

 

Cheers!
 

b0mb

Edited by b0mb
Link to comment
Share on other sites

hurricanehrndz

This is something we are actively working on. We will make an announcement once it is ready.

 

Sent from my ONEPLUS A3000 using Tapatalk

Link to comment
Share on other sites

b0mb

This is something we are actively working on. We will make an announcement once it is ready.

 

Sent from my ONEPLUS A3000 using Tapatalk

Looking forward for this [emoji6]

 

Gesendet von meinem Redmi Note 3 mit Tapatalk

Link to comment
Share on other sites

  • 1 month later...
hi2hello

Any news on implementing a version of FFMPEG with VAAPI into the Docker Image?

Would be awesome to get some infos on further plans or just a word if it’s still part of the roadmap or if Docker Development has fallen asleep. No offense, just asking because it seems to be ages. 

 

Thank you very much and best regards

Link to comment
Share on other sites

hi2hello

Hi Luke,

 

although that is not really the big news I was hoping for, it’s at least a piece of information, so thanks for that!
Seems to be a pretty heavily requested feature and and often discussed topic if I look around here in the forums …

https://emby.media/community/index.php?/topic/49038-vaapi-stress-test-skylake-i5-6600-intel-hd-530/
or
https://emby.media/community/index.php?/topic/49019-hw-transcoding-not-working/
or
https://emby.media/community/index.php?/topic/31174-hardware-encoding-on-ubuntu-server/page-5&do=findComment&comment=369730

Cheers

Edited by hi2hello
Link to comment
Share on other sites

  • 4 weeks later...

there is a linuxserver.io emby docker very soon that supports vaapi - it is already working just need to clean it up (at least this was told me)

Link to comment
Share on other sites

  • 4 months later...

there is a linuxserver.io emby docker very soon that supports vaapi - it is already working just need to clean it up (at least this was told me)

 

 

any news on this ?

 

In the mean time I will try to do one myself using the one from  @@puithove's post

:)

Link to comment
Share on other sites

any news on this ?

 

In the mean time I will try to do one myself using the one from  @@puithove's post

:)

 

@@inkubux The official Docker on our website has VAAPI included. This is for x64.

 

For ARM we also  have a version included which is in testing stages. See here: https://emby.media/community/index.php?/topic/50012-emby-server-for-net-core/

 

Thanks.

Link to comment
Share on other sites

Oh! thanks I will have a look, is there  quick doc on how to set it up properly ?

 

Thanks alot

 

There isn't much to do other than enabling it in server transcoding settings. Thanks.

Link to comment
Share on other sites

  • 3 weeks later...
godfuture

Hey guys, I am running Version 3.2.60.0 in docker. it seems that there is no graphic card installed.

docker exec -it emby /bin/bash

bash-4.4# ls /dev/dri/renderD128
ls: cannot access '/dev/dri/renderD128': No such file or directory

bash-4.4# ls /dev/
core     full     null     pts/     shm/     stdin    tty      zero
fd/      mqueue/  ptmx     random   stderr   stdout   urandom

How did you get access to the integrated graphic in the docker container?

Edited by godfuture
Link to comment
Share on other sites

  • 4 months later...
godfuture

oh, sorry. I haven't been around for a while. Back to your question: I have installed https://hub.docker.com/r/emby/embyserver.

 

The ffmpeg log says:

ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 6.3.0 (crosstool-NG crosstool-ng-1.23.0)
  configuration: --enable-cross-compile --cross-prefix=x86_64-pc-linux-gnu- --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-gcc --arch=x86_64 --prefix=/srv/buildbot/x64/ffmpeg-x64/staging --pkg-config=pkg-config --disable-doc --disable-ffplay --disable-ffserver --disable-xlib --enable-fontconfig --enable-gpl --enable-iconv --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libwebp --enable-libx264 --enable-libzvbi --enable-version3 --extra-libs='-ldl -lexpat -lfreetype -lfribidi -lfontconfig -liconv -lpng -luuid -lgmp -lhogweed -lnettle -laddns-samba4 -lasn1util-samba4 -lauthkrb5-samba4 -lCHARSET3-samba4 -lcliauth-samba4 -lcli-cldap-samba4 -lcli-ldap-common-samba4 -lcli-nbt-samba4 -lcli-smb-common-samba4 -lcom_err -lcommon-auth-samba4 -ldbwrap-samba4 -ldcerpc-binding -ldcerpc-samba-samba4 -lflag-mapping-samba4 -lgenrand-samba4 -lgensec-samba4 -lgse-samba4 -lgssapi_krb5 -llibcli-lsa3-samba4 -llibsmb-samba4 -linterfaces-samba4 -liov-buf-samba4 -lk5crypto -lkrb5 -lkrb5samba-samba4 -lkrb5support -lldb -lldbsamba-samba4 -lmessages-dgm-samba4 -lmessages-util-samba4 -lmsghdr-samba4 -lmsrpc3-samba4 -lndr -lndr-krb5pac -lndr-nbt -lndr-samba-samba4 -lndr-standard -lreplace-samba4 -lsamba-cluster-support-samba4 -lsamba-credentials -lsamba-debug-samba4 -lsamba-errors -lsamba-hostconfig -lsamba-modules-samba4 -lsamba-security-samba4 -lsamba-sockets-samba4 -lsamba-util -lsamba3-util-samba4 -lsamdb -lsamdb-common-samba4 -lsecrets3-samba4 -lserver-id-db-samba4 -lserver-role-samba4 -lsmbconf -lsmbd-shim-samba4 -lsmb-transport-samba4 -lsocket-blocking-samba4 -lsys-rw-samba4 -ltalloc -ltalloc-report-samba4 -ltdb -ltdb-wrap-samba4 -ltevent -ltevent-util -ltime-basic-samba4 -lutil-cmdline-samba4 -lutil-reg-samba4 -lutil-setid-samba4 -lutil-tdb-samba4 -lwbclient -lwinbind-client-samba4 -ldrm' --target-os=linux --enable-shared --disable-static --enable-gnutls --enable-libsmbclient --enable-cuda --enable-cuvid --enable-nvenc --enable-vaapi

Even /dev/dri/renderD128 seems available, the CPU load while transcoding is not different than without. GIDLIST is set. Is hardware transcoding a plug and play solution? Besides system settings, is something else needed? Would I need to install drivers?

Link to comment
Share on other sites

jaketame

oh, sorry. I haven't been around for a while. Back to your question: I have installed https://hub.docker.com/r/emby/embyserver.

 

The ffmpeg log says:

ffmpeg version 3.4.2 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 6.3.0 (crosstool-NG crosstool-ng-1.23.0)
  configuration: --enable-cross-compile --cross-prefix=x86_64-pc-linux-gnu- --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-gcc --arch=x86_64 --prefix=/srv/buildbot/x64/ffmpeg-x64/staging --pkg-config=pkg-config --disable-doc --disable-ffplay --disable-ffserver --disable-xlib --enable-fontconfig --enable-gpl --enable-iconv --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libwebp --enable-libx264 --enable-libzvbi --enable-version3 --extra-libs='-ldl -lexpat -lfreetype -lfribidi -lfontconfig -liconv -lpng -luuid -lgmp -lhogweed -lnettle -laddns-samba4 -lasn1util-samba4 -lauthkrb5-samba4 -lCHARSET3-samba4 -lcliauth-samba4 -lcli-cldap-samba4 -lcli-ldap-common-samba4 -lcli-nbt-samba4 -lcli-smb-common-samba4 -lcom_err -lcommon-auth-samba4 -ldbwrap-samba4 -ldcerpc-binding -ldcerpc-samba-samba4 -lflag-mapping-samba4 -lgenrand-samba4 -lgensec-samba4 -lgse-samba4 -lgssapi_krb5 -llibcli-lsa3-samba4 -llibsmb-samba4 -linterfaces-samba4 -liov-buf-samba4 -lk5crypto -lkrb5 -lkrb5samba-samba4 -lkrb5support -lldb -lldbsamba-samba4 -lmessages-dgm-samba4 -lmessages-util-samba4 -lmsghdr-samba4 -lmsrpc3-samba4 -lndr -lndr-krb5pac -lndr-nbt -lndr-samba-samba4 -lndr-standard -lreplace-samba4 -lsamba-cluster-support-samba4 -lsamba-credentials -lsamba-debug-samba4 -lsamba-errors -lsamba-hostconfig -lsamba-modules-samba4 -lsamba-security-samba4 -lsamba-sockets-samba4 -lsamba-util -lsamba3-util-samba4 -lsamdb -lsamdb-common-samba4 -lsecrets3-samba4 -lserver-id-db-samba4 -lserver-role-samba4 -lsmbconf -lsmbd-shim-samba4 -lsmb-transport-samba4 -lsocket-blocking-samba4 -lsys-rw-samba4 -ltalloc -ltalloc-report-samba4 -ltdb -ltdb-wrap-samba4 -ltevent -ltevent-util -ltime-basic-samba4 -lutil-cmdline-samba4 -lutil-reg-samba4 -lutil-setid-samba4 -lutil-tdb-samba4 -lwbclient -lwinbind-client-samba4 -ldrm' --target-os=linux --enable-shared --disable-static --enable-gnutls --enable-libsmbclient --enable-cuda --enable-cuvid --enable-nvenc --enable-vaapi

Even /dev/dri/renderD128 seems available, the CPU load while transcoding is not different than without. GIDLIST is set. Is hardware transcoding a plug and play solution? Besides system settings, is something else needed? Would I need to install drivers?

 

Have you mapped /dev/dri/renderD128 to the container?

Link to comment
Share on other sites

godfuture

Hi, with "/dev/dri/renderD128" I have meant that this device is showing up in the container. I have done this by setting "--device /dev/dri/renderD128" for container start as proposed on the docker page. Should I have used bind mount for the device?

Link to comment
Share on other sites

jaketame

Hi, with "/dev/dri/renderD128" I have meant that this device is showing up in the container. I have done this by setting "--device /dev/dri/renderD128" for container start as proposed on the docker page. Should I have used bind mount for the device?

 

Depends if you using docker-compose or docker to run the command?

 

Docker run -

 

    --device /dev/dri/renderD128:/dev/dri/renderD128
 
Docker-compose -
 
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
Link to comment
Share on other sites

godfuture

 

Depends if you using docker-compose or docker to run the command?

 

Docker run -

 

    --device /dev/dri/renderD128:/dev/dri/renderD128
 
Docker-compose -
 
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128

 

I have just corrected docker run from "--device /dev/dri/renderD128" to "--device /dev/dri/renderD128:/dev/dri/renderD128". But my Intel G3460T is taking up to 60% cpu usage for transcoding. This is the same as woth software transcoding. How would I check emby is really using my (integrated) gpu?

 

Thanks a lot! Really looking forward :)

Link to comment
Share on other sites

mastrmind11

I have just corrected docker run from "--device /dev/dri/renderD128" to "--device /dev/dri/renderD128:/dev/dri/renderD128". But my Intel G3460T is taking up to 60% cpu usage for transcoding. This is the same as woth software transcoding. How would I check emby is really using my (integrated) gpu?

 

Thanks a lot! Really looking forward :)

look at the transcode log. it'll tell you what's happening.

Link to comment
Share on other sites

godfuture

look at the transcode log. it'll tell you what's happening.

I have checked all three logs: server, remux and transcoding.

 

Transcoding is not updated as regular as the remux or server. But once in transcoding log I could see that the encoder h264_vaapi was used. But somehow this does not apply for other media files. To get more insight I have installed intel gpu tools on host. But it does not show any usage at all. Therefore I still do not really know what is the exact way to determine the hardware used to transcode my media.

 

What do I need to check to be sure my gpu is in charge? Till now I would most likely say it is not...

Link to comment
Share on other sites

  • 3 months later...
godfuture

I have checked all three logs: server, remux and transcoding.

 

Transcoding is not updated as regular as the remux or server. But once in transcoding log I could see that the encoder h264_vaapi was used. But somehow this does not apply for other media files. To get more insight I have installed intel gpu tools on host. But it does not show any usage at all. Therefore I still do not really know what is the exact way to determine the hardware used to transcode my media.

 

What do I need to check to be sure my gpu is in charge? Till now I would most likely say it is not...

 

Still no luck here. Do I have to install intel driver into the container after pull from docker? intel_gpu_top executed on host tells me there is 0% usage...

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