Jump to content

Recommended Posts

Posted

@@vaise Thank you, that was helpful. I just updated the beta tag on docker hub, could you please give it a try?

 

Howdy, The docker for embybeta has not gone blue for me yet - which I believe means there is an update......

 

I use unraid - dunno if that matters.

 

Sorry - still a bit new to all this.

Posted

yay - updated this morning and can now play those channels.  The kids just informed me that random other stuff in our collection has not been working recently.....  would have been nice to be told that before now as I could have provided more info.

 

Thanks heaps.

alucryd
Posted

No problem, please share the log when you know more. The beta is built with a limited set of codecs to cut build times, improve performance, and allow it to build on some ancient platforms. I tried to cover the most popular ones but there is bound to be some oversight there, I'll complete the list according to user feedback.

Posted

No problem, please share the log when you know more. The beta is built with a limited set of codecs to cut build times, improve performance, and allow it to build on some ancient platforms. I tried to cover the most popular ones but there is bound to be some oversight there, I'll complete the list according to user feedback.

 

Cheers,  so if I find something that does not play, and throws the 'ignored' message on the roku in play back, I post the embyserver and ffmpeg log to the docker area ?  i.e here ? 

alucryd
Posted

Yes, please do :)

paulmorabi
Posted (edited)

Hi,

 

I'm trying to get Emby to reverse proxy through Traefik. This is my docker compose:

 

  emby:

    container_name: embyserver

    image: emby/embyserver

    restart: always

    #network_mode: "host"

    volumes:

      - ${USERDIR}/docker/emby:/config

      - /media:/media

    ports:

      - 8096:8096

      - 8920:8920

      - 7359:7359/udp

      - 1900:1900/udp

    environment:

      - APP_UID=1000

      - APP_GID=996

      - TZ=${TZ}

      - GIDLIST=44

    networks:

      - traefik_proxy

      - default

    labels:

      - "traefik.enable=true"

      - "traefik.backend=emby"

      - "traefik.frontend.rule=Host:emby.xxxx.net"

      - "traefik.port=8096"

      - "traefik.docker.network=traefik_proxy"

 

 

If I use the above config then I can get external access through the reverse proxy. However, as the IP is from the bridge network (default) it's ip (172.x.x.x) is not accessible to other devices on the same network. If I try to put "host" in networks then I get a network undefined error. If I define a host network then I get an error that the host network already exists and I can't create another. But if I leave it as is, no device on my network can access it at it's local ip of 172.x.x.x. 

 

If I can't use host networking then is there a way to map emby's IP/ports to the host's IP? If so, how?

Edited by paulmorabi
Posted

What do you mean by put host in networks?

mastrmind11
Posted

What do you mean by put host in networks?

switching the container to "host mode", which should work.  This seems like a proxy issue, has nothing to do w/ Emby.

otispresley
Posted (edited)

I agree that this does look like a proxy issue. This should work whether you are using bridge networking or host networking. In both cases, you are using the hosts IP address and ports, which means that you cannot have anything else using those ports.

 

When you use bridge networking, Docker automatically performs DHCP and NAT for you, but you must publish the ports you want to use to the outside world. When you access Emby, it would be to the Host IP Address and Not the IP address that Docker assigns to the container. This is an important distinction because the network Docker uses to assign IP addresses from is not accessible outside the host. This means your proxy would point to the Host IP Address/DNS name.

 

When you use host networking, your Emby container uses the IP address of the host, which means that it also has the same hostname as the host. There is no DHCP or NAT from Docker in this case and so all ports are open to the network and your ports section of your compose file are not needed. Your proxy would point to the Host IP Address/DNS name.

 

There is also mac-vlan networking in Docker that you could use. This uses your host as a layer 2 bridge directly to your switch. This means that your container is exposed to your network and would get an IP address from your normal DHCP server, usually on your router, and you can give the container any hostname you want. If you use this mode, then I would suggest that you make a static reservation in your DHCP for the container so the IP address never changes. Then, your proxy would point to that IP address/DNS name.

 

I hope this helps!

Edited by otispresley
BAlGaInTl
Posted

I've been using Docker for a while... some time ago, I could no longer connect externally through https.

 

I've tried everything... rebuilt the pfx. Checked all the ownership of files.  No matter what I do, I get an ERR_CONNECTION_REFUSED

 

If I open up the normal http port, I can connect externally just fine, so I know the domain is working.  The letsencrypt certs are working fine with other apps.

 

Any thoughts?

paulmorabi
Posted

I agree that this does look like a proxy issue. This should work whether you are using bridge networking or host networking. In both cases, you are using the hosts IP address and ports, which means that you cannot have anything else using those ports.

 

When you use bridge networking, Docker automatically performs DHCP and NAT for you, but you must publish the ports you want to use to the outside world. When you access Emby, it would be to the Host IP Address and Not the IP address that Docker assigns to the container. This is an important distinction because the network Docker uses to assign IP addresses from is not accessible outside the host. This means your proxy would point to the Host IP Address/DNS name.

 

When you use host networking, your Emby container uses the IP address of the host, which means that it also has the same hostname as the host. There is no DHCP or NAT from Docker in this case and so all ports are open to the network and your ports section of your compose file are not needed. Your proxy would point to the Host IP Address/DNS name.

 

There is also mac-vlan networking in Docker that you could use. This uses your host as a layer 2 bridge directly to your switch. This means that your container is exposed to your network and would get an IP address from your normal DHCP server, usually on your router, and you can give the container any hostname you want. If you use this mode, then I would suggest that you make a static reservation in your DHCP for the container so the IP address never changes. Then, your proxy would point to that IP address/DNS name.

 

I hope this helps!

Thank you for the explanation.

 

If I use Emby in bridge network mode, then when I connect to Emby and look at the local address in the Emby dashboard it is 172.x.x.x. When I try to connect from another device on the same LAN (Shield TV with Kodi) using my Emby account, it tries to connect to the LAN address (172.x.x.x) so it fails. It doesn't bind to 192.168.x.x even though ports are mapped. However, using bridge mode does mean I can reverse proxy through traefik. So, can I change the IP address within Emby from 172.x.x to 192.168.x.x?

 

If I use host networking then this issue goes away because the LAN address in Emby dashboard is 192.168.x.x. However, reverse proxying via traefik won't work because it needs to be connected to a bridge network and you can't be connected to both.

otispresley
Posted (edited)

Thank you for the explanation.

 

If I use Emby in bridge network mode, then when I connect to Emby and look at the local address in the Emby dashboard it is 172.x.x.x. When I try to connect from another device on the same LAN (Shield TV with Kodi) using my Emby account, it tries to connect to the LAN address (172.x.x.x) so it fails. It doesn't bind to 192.168.x.x even though ports are mapped. However, using bridge mode does mean I can reverse proxy through traefik. So, can I change the IP address within Emby from 172.x.x to 192.168.x.x?

 

No, Emby will report that it's IP address is 172.x.x.x because that is the network used internally by Docker. Ignore that. You use the IP address of the machine that you are running Docker on instead. You would connect directly to your Emby server using http://192.168.x.x:8096 or https://192.168.x.x:8920. Your proxy would point to http://192.168.x.x:8096...unless the proxy is outside your home network and you are not connected to it via VPN.

 

In that case, the proxy would point to the IP address assigned to you from your ISP on port 8096 and you would need to forward, in your router, port 8096 to the 192.168.x.x address assigned to your Docker machine.

 

If I use host networking then this issue goes away because the LAN address in Emby dashboard is 192.168.x.x. However, reverse proxying via traefik won't work because it needs to be connected to a bridge network and you can't be connected to both.

 

That should not be the case. Whether you are using bridge or host, point to the 192.168.x.x address that is assigned to the computer with Docker installed on it.

Edited by otispresley
  • Like 1
paulmorabi
Posted

No, Emby will report that it's IP address is 172.x.x.x because that is the network used internally by Docker. Ignore that. You use the IP address of the machine that you are running Docker on instead. You would connect directly to your Emby server using http://192.168.x.x:8096 or https://192.168.x.x:8920. Your proxy would point to http://192.168.x.x:8096...unless the proxy is outside your home network and you are not connected to it via VPN.

 

In that case, the proxy would point to the IP address assigned to you from your ISP on port 8096 and you would need to forward, in your router, port 8096 to the 192.168.x.x address assigned to your Docker machine.

 

 

 

That should not be the case. Whether you are using bridge or host, point to the 192.168.x.x address that is assigned to the computer with Docker installed on it.

Thank you, you are correct. There was one issue with this. When the IP changes, the name of the emby server changes to a random set of characters so Kodi wouldn't connect unless I changed the server name to what it was before. After that, it's all ok!

  • Like 1
otispresley
Posted

Thank you, you are correct. There was one issue with this. When the IP changes, the name of the emby server changes to a random set of characters so Kodi wouldn't connect unless I changed the server name to what it was before. After that, it's all ok!

 

Awesome! Glad you got it worked out.

Posted

Hello everyone,

 

I've just installed Emby Server on my box (Linux, with Intel Xeon and Nvidia 1060) in docker container and I have just one tiny issue with it: I cannot get hardware acceleration on it to work.

 

I've tried to install it on a host and hardware acceleration using nvenc on my 1060 works like a charm. I'm not sure what needs to be done whether that can be done at all.

 

ffmpeg in docker seems to be compiled correctly with nvenc support:

/ # ffmpeg -encoders 2>/dev/null| grep -i nven
 V..... h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc                NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_hevc           NVIDIA NVENC hevc encoder (codec hevc)
 V..... hevc_nvenc           NVIDIA NVENC hevc encoder (codec hevc)

Transcode log: https://pastebin.com/xgV55kZz

 

In the log I can see

[h264_cuvid @ 0x756380] Cannot load libnvcuvid.so.1
[h264_cuvid @ 0x756380] Failed loading nvcuvid.

which I believe is the problem.

Let me know if any more logs are needed.

Posted

Have you installed Nvidia drivers and are they up to date?

Posted (edited)

Well I could but I'm not sure what the original docker image of emby (https://hub.docker.com/r/emby/embyserver/) is based on (i.e. what distro, is it alpine with s6?).

Meaning, I cannot use any package manager (no apt, zypper, I can see rpm from busybox but I cannot find nvidia drivers .rpm package - for what distro/version should I look for)?

 

I tried the simplest method:

* download 396.24 drivers from http://www.nvidia.com/Download/driverResults.aspx/133859/en-us

* try to unpack them via 

/home/nvidia # ./NVIDIA-Linux-x86_64-396.24.run --keepCreating directory NVIDIA-Linux-x86_64-396.24
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 396.24.........................................................................................................................................................................................................
.................................................................................................................................................................................................................................................................................
.......................................
./NVIDIA-Linux-x86_64-396.24.run: line 1075: ./nvidia-installer: not found
/home/nvidia # ls ./NVIDIA-Linux-x86_64-396.24/nvidia-installer
./NVIDIA-Linux-x86_64-396.24/nvidia-installer
/home/nvidia # ls -l ./NVIDIA-Linux-x86_64-396.24/nvidia-installer
-rwxr-xr-x    1 root     root        345088 Apr 26 08:14 ./NVIDIA-Linux-x86_64-396.24/nvidia-installer
/home/nvidia # ./NVIDIA-Linux-x86_64-396.24/nvidia-installer
sh: ./NVIDIA-Linux-x86_64-396.24/nvidia-installer: not found
/home/nvidia # head -1 NVIDIA-Linux-x86_64-396.24/nvidia-installer
ELF>*@@@=@@@@@@@@@@ ee78 55e5@@  Ptd44D4D
/home/nvidia # ldd
sh: ldd: not found
/home/nvidia # readelf
sh: readelf: not found
 

this doesn't work because for some reason ldd and readelf are not installed and hence ELF binary cannot run (??). That's my take on this. I'm still trying to get this to work.

Edited by pmalek
mediacowboy
Posted

You have to install the drivers on the host and then pass that and the video group into the emby docker.

Posted (edited)

You have to install the drivers on the host and then pass that and the video group into the emby docker.

 

I do have drivers installed on the host and I do have the video group added to GIDLIST

  1 #!/bin/bash
  2
  3 docker run -d \
  4     --volume /home/STUFF/programming/docker/emby/:/config \
  5     --volume /mnt/STUFF/:/mnt/share1 \
  6     --device /dev/dri/renderD128 \
  7     --publish 8096:8096 \
  8     --publish 8920:8920 \
  9     --env UID=1000 \
 10     --env GID=100 \
 11     --env GIDLIST=100,44 \
 12     --name emby \
 13     emby/embyserver:latest
 getent group video
video:x:44:plex

but that doesn't seem to work.

 

How do you "pass that" (drivers?) into the container?

Edited by pmalek
otispresley
Posted (edited)

I do have drivers installed on the host and I do have the video group added to GIDLIST

  1 #!/bin/bash
  2
  3 docker run -d \
  4     --volume /home/STUFF/programming/docker/emby/:/config \
  5     --volume /mnt/STUFF/:/mnt/share1 \
  6     --device /dev/dri/renderD128 \
  7     --publish 8096:8096 \
  8     --publish 8920:8920 \
  9     --env UID=1000 \
 10     --env GID=100 \
 11     --env GIDLIST=100,44 \
 12     --name emby \
 13     emby/embyserver:latest
 getent group video
video:x:44:plex

but that doesn't seem to work.

 

How do you "pass that" (drivers?) into the container?

 

Your /dev path may be incorrect in your --device path. Verify that it exists as it could be something else.

Edited by otispresley
Posted (edited)

Ok, so I've managed to take a closer look at https://devblogs.nvidia.com/nvidia-docker-gpu-server-application-deployment-made-easy/ and https://hub.docker.com/r/nvidia/video-codec-sdk/.

 

It seems that I can get this to work with nvidia-docker

 

 nvidia-docker run --rm -it nvidia/video-codec-sdk:8.2-ubuntu18.04 bash
root@a64ef520f836:/# find /usr/lib/x86_64-linux-gnu/ -name "libnv*"
/usr/lib/x86_64-linux-gnu/libnvidia-encode.so.1
/usr/lib/x86_64-linux-gnu/libnvidia-encode.so.396.51
/usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.1
/usr/lib/x86_64-linux-gnu/libnvidia-cfg.so.1
/usr/lib/x86_64-linux-gnu/libnvcuvid.so.396.51
/usr/lib/x86_64-linux-gnu/libnvidia-ptxjitcompiler.so.1
/usr/lib/x86_64-linux-gnu/libnvcuvid.so.1
/usr/lib/x86_64-linux-gnu/libnvidia-ptxjitcompiler.so.396.51
/usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.396.51
/usr/lib/x86_64-linux-gnu/libnvidia-compiler.so.396.51
/usr/lib/x86_64-linux-gnu/libnvidia-fatbinaryloader.so.396.51
/usr/lib/x86_64-linux-gnu/libnvidia-ml.so.396.51
/usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1
/usr/lib/x86_64-linux-gnu/libnvidia-cfg.so.396.51

but I cannot get emby to install in ubuntu's docker image (nvidia's images are based on that, +I prefer ubuntu).

root@62327aa5a4a3:/# curl -SLO https://github.com/MediaBrowser/Emby.Releases/releases/download/3.5.2.0/emby-server-deb_3.5.2.0_amd64.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   623    0   623    0     0    700      0 --:--:-- --:--:-- --:--:--   699
100 50.8M  100 50.8M    0     0  3465k      0  0:00:15  0:00:15 --:--:-- 8812k
root@62327aa5a4a3:/# dpkg -i emby-server-deb_3.5.2.0_amd64.deb
Selecting previously unselected package emby-server.
(Reading database ... 5718 files and directories currently installed.)
Preparing to unpack emby-server-deb_3.5.2.0_amd64.deb ...
Unpacking emby-server (3.5.2.0) ...
Setting up emby-server (3.5.2.0) ...
emby-server: unrecognized service
dpkg: error processing package emby-server (--install):
 installed emby-server package post-installation script subprocess returned error exit status 1
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Errors were encountered while processing:
 emby-server

Which seems that

 

    service emby-server start

 

doesn't work because docker doesn't allow new service to be defined (?).

 

This works without a problem on my ubuntu host but somehow it won't work in docker. Any clues?

Edited by pmalek
Posted (edited)

Ok so I managed to run container with nvidia-docker (https://hub.docker.com/r/nvidia/video-codec-sdk/) and when I install emby there (from available .deb packages) I get the error above but that's not the end of the world because we can omit running emby as a service and just run it in the foreground (that docker anyway).

The problem is with libs though.

 

When I disregard that little bit (about unrecognized service) and I set LD_LIBRARY_PATH via

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/emby-server/lib/:/opt/emby-server/lib/samba/:/usr/lib/x86_64-linux-gnu/

then I am able to both launch emby and ffmpeg in the container.

 

I am even able to transcode video in the container via, e.g.

/opt/emby-server/bin/ffmpeg -y -hide_banner -hwaccel cuvid -c:v h264_cuvid -i jellyfish-100-mbps-hd-h264.mkv -vcodec hevc_nvenc out.mp4

and HW acceleration is working. The one bit that doesn't work is transcoding in emby.

 

I get there the following error (similar to previous ones):

/bin/ffmpeg -ss 00:30:12.000 -c:v h264_cuvid  -resize 638x268 -i file:"/mnt/share1/movies/movie.mp4" -threads 7 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_nvenc -pix_fmt yuv420p -preset default -b:v 906376 -maxrate 906376 -bufsize 1812752 -profile:v high -forced-idr 1  -force_key_frames "expr:if(isnan(prev_forced_t),eq(t,t),gte(t,prev_forced_t+3))" -copyts -vsync -1 -codec:a:0 copy -f segment -max_delay 5000000 -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 -start_at_zero -segment_time 3 -segment_time_delta -1812 -individual_header_trailer 0 -segment_format mpegts -segment_list_type m3u8 -segment_start_number 604 -segment_list "/config/transcoding-temp/2db8c0859098ec76ffb32805495c8aaa.m3u8" -y "/config/transcoding-temp/2db8c0859098ec76ffb32805495c8aaa%d.ts"

ffmpeg version 4.0.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 6.3.0 (crosstool-NG crosstool-ng-1.23.0)
  configuration: --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --arch=x86_64 --prefix=/home/embybuilder/Buildbot/x64/ffmpeg-x64/staging --pkg-config=pkg-config --disable-doc --disable-ffplay --disable-vdpau --disable-xlib --enable-fontconfig --enable-gnutls --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 --enable-libsmbclient --enable-cuda --enable-cuvid --enable-nvenc --enable-vaapi --enable-cross-compile --cross-prefix=x86_64-pc-linux-gnu- --extra-libs='-ldl -lexpat -lfreetype -lfribidi -lfontconfig -liconv -lpng -luuid -lz -lvorbis -logg -lnettle -lhogweed -lgmp -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
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
ffmpeg version 4.0.1 Copyright (c) 2000-2018 the FFmpeg developers
  libswresample   3.  1.100 /  3.  1.100
  built with gcc 6.3.0 (crosstool-NG crosstool-ng-1.23.0)
  built with gcc 6.3.0 (crosstool-NG crosstool-ng-1.23.0)
  libpostproc    55.  1.100 / 55.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:/mnt/share1/movies/movie.mp4':
  configuration: --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --arch=x86_64 --prefix=/home/embybuilder/Buildbot/x64/ffmpeg-x64/staging --pkg-config=pkg-config --disable-doc --disable-ffplay --disable-vdpau --disable-xlib --enable-fontconfig --enable-gnutls --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 --enable-libsmbclient --enable-cuda --enable-cuvid --enable-nvenc --enable-vaapi --enable-cross-compile --cross-prefix=x86_64-pc-linux-gnu- --extra-libs='-ldl -lexpat -lfreetype -lfribidi -lfontconfig -liconv -lpng -luuid -lz -lvorbis -logg -lnettle -lhogweed -lgmp -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
  Metadata:
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
    major_brand     : isom
  libavformat    58. 12.100 / 58. 12.100
    minor_version   : 1
    compatible_brands: isomavc1
    compatible_brands: isomavc1
  libavdevice    58.  3.100 / 58.  3.100
    creation_time   : 2015-08-05T11:23:55.000000Z
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  Duration: 01:41:36.88, start: 0.000000, bitrate: 2312 kb/s
  libswresample   3.  1.100 /  3.  1.100
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/unknown), 1920x808 [SAR 1:1 DAR 240:101], 2215 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
  libpostproc    55.  1.100 / 55.  1.100
    Metadata:
      creation_time   : 2015-08-05T11:23:55.000000Z
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:/mnt/share1/movies/movie.mp4':
      handler_name    : video.264#trackID=1:fps=24 - Imported with GPAC 0.5.0-rev
  Metadata:
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 93 kb/s (default)
    major_brand     : isom
    minor_version   : 1
    minor_version   : 1
    Metadata:
    compatible_brands: isomavc1
      creation_time   : 2015-08-05T11:24:04.000000Z
      handler_name    : GPAC ISO Audio Handler
    creation_time   : 2015-08-05T11:23:55.000000Z
  Duration: 01:41:36.88, start: 0.000000, bitrate: 2312 kb/s
[h264_cuvid @ 0xe5ed40] Cannot load libnvcuvid.so.1
[h264_cuvid @ 0xe5ed40] Failed loading nvcuvid.
[h264_cuvid @ 0xe5ed40] Failed loading nvcuvid.

Any ideas?

Edited by pmalek
Posted

@@pmalek emby is setting its own LD_LIBRARY_PATH, you need to edit /opt/emby-server/bin/emby-server.

  • Like 1
Posted

@@pmalek emby is setting its own LD_LIBRARY_PATH, you need to edit /opt/emby-server/bin/emby-server.

 

Of course! I haven't noticed that /opt/emby-server/bin/emby-server is a script not a binary : ) Thanks @@alucryd

 

So in the end I managed to write the following Dockerfile to build my emby image:

FROM alpine:latest AS builder
RUN apk update \
 && apk add wget ca-certificates \
 && wget --progress=bar:force -O /emby.deb \
   https://github.com/MediaBrowser/Emby.Releases/releases/download/3.6.0.2/emby-server-deb_3.6.0.2_amd64.deb
FROM nvidia/video-codec-sdk:8.2-ubuntu18.04
COPY --from=builder /emby.deb /emby.deb
RUN (dpkg -i /emby.deb ; true) \
 && sed -i '/LD_LIBRARY_PATH/c\export LD_LIBRARY_PATH=$APP_DIR\/lib:$APP_DIR\/lib\/samba:\/usr\/lib\/x86_64-linux-gnu\/' \
   /opt/emby-server/bin/emby-server

and I run it as such

#!/bin/bash
exec nvidia-docker run \
    -d \
    --restart unless-stopped \
    --tmpfs /var/lib/emby/transcoding-temp \
    --volume /SOME_CONFIG_PATH/docker/emby/:/var/lib/emby/ \
    --volume /SOME_MEDIA_PATH/:/mnt/share1 \
    --device /dev/nvidia0 \
    --publish 8096:8096 \
    --publish 8920:8920 \
    --env UID=1000 \
    --env GID=1000 \
    --env GIDLIST=1000,100,44 \
    --env NVIDIA_DRIVER_CAPABILITIES=compute,video,utility \
    --name emby \
    emby_mine /opt/emby-server/bin/emby-server

and it works.

 

Only 2 more questions/issues though:

  • where can I find a list of EmbyServer command line params? I can in /opt/emby-serve/bin/emby-server
exec $APP_DIR/system/EmbyServer \
  -programdata $EMBY_DATA \
  -ffmpeg $APP_DIR/bin/ffmpeg \
  -ffprobe $APP_DIR/bin/ffprobe \
  -restartexitcode 3 \
  -updatepackage 'emby-server-deb_{version}_amd64.deb'

but I don't know where can I find a "help" for that.

  • I pass in tmpfs to docker as such "--tmpfs /var/lib/emby/transcoding-temp" but it seems that although it's mounted as tmpfs correctly
mount | grep transc
tmpfs on /var/lib/emby/transcoding-temp type tmpfs (rw,nosuid,nodev,noexec,relatime)

I can still observe my SSD activity when a movie is being transcoded. Someone had a similar issue?

Posted

Where did you get the tempfs param? That's not related to transcoding temporary files.

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