How do I SSH into a portainer Stack (Jellyfin)

  • Hello!

    To make it short: I've recently set up Jellyfin as a portainer stack on my OMV and all works nice! One of the best features Jellyfin offers is hardware accelerated encoding, which I could use since I believe that I have an NVIDIA graphics card and an Intel CPU (Intel Celeron N4100). The issue is that I also would have to set up that hardware accelerated encoding and provide versions of ffmpeg and other stuff into the portainer. I know how to SSH into my OpenMediaVault, but how do I SSH from there into a docker virtual environment?


    (If you know anything about the transcoding and how to set it up via Jellyfin, I'd be glad to hear that too!)


    TL; DR: How do I SSH into a portainer stack, or possibly even use the FTP to connect to that (if possible)?

  • Did you read the image documentation Application Setup section?

    --
    Google is your friend and Bob's your uncle!


    OMV AMD64 5.x on ASRock Rack C2550D4I C0 Stepping - 16GB ECC - Silverstone DS380 + Silverstone DS380 DAS Box.

  • How do I SSH into a portainer stack, or possibly even use the FTP to connect to that (if possible)?

    I don't use yellyfin, but in general to execute a shell in the container from your ssh connection to OMV:


    docker exec -it <container_name> bash


    https://docs.docker.com/engine/reference/commandline/exec/

  • In you use the linuxserver docker for Jellyfin Intel HW transcoding should work without any extra measures. Lots on this in the Reddit Jellyfin forum.

    Inwin MS04 case with 315 W PSU

    ASUS Prime H310i-Plus R2.0 board

    Four port PCI-E SATA card

    8GB Kingston DDR4

    Intel Pentium Coffee Lake G5400 CPU

    Samsung Evo M.2 256GB OS drive (28 GB partitioned for OS)

    4x4TB WD Red NAS drives - UnionFS pool

    Seagate 5TB USB drive - SnapRAID parity

    1x1TB Seagate HD

    1x300GB Toshiba HD

    Seagate 2TB USB drive

  • Thank you! This helped a lot.

    In you use the linuxserver docker for Jellyfin Intel HW transcoding should work without any extra measures. Lots on this in the Reddit Jellyfin forum.


    I don't use yellyfin, but in general to execute a shell in the container from your ssh connection to OMV:


    docker exec -it <container_name> bash


    https://docs.docker.com/engine/reference/commandline/exec/



    Have a wonderful new year's eve!

  • In you use the linuxserver docker for Jellyfin Intel HW transcoding should work without any extra measures. Lots on this in the Reddit Jellyfin forum.

    What is Intel HW transcoding? All my options on the standard Playback transcoding menu are:

    -None

    -AMD AMF

    -INTEL QUICK SYNC

    -MediaCodec Android

    -OpenMAX OMX

    -Nvidia NVENC

    -Video Acceleration API

    -Exynos V4L2 MFC

    -Video Toolbox

  • Serious? You are still not reading the links that people are providing to you?


    Did you read the image documentation Application Setup section?


    See the Jellyfin documentation Hardware Acceleration the Parameters and Hardware Acceleration from Docker linuxserver/jellyfin

    from https://hub.docker.com/r/linuxserver/jellyfin

  • I've tried all the options provided to me, yet whenever I turn the hardware accelerated transcoding option with Intel Quick Sync on, no video will play. These are all video devices that root can detect, but they are either not mounted to the docker container, or need more configuration


    Intel Corporation Celeron/Pentium Silver Processor = Intel(R) Celeron(R) N4100 CPU @ 1.10GHz

    Intel Corporation UHD Graphics 605 = Integrated Graphics Card


    I added

    Code
    devices:
    - /dev/dri:/dev/dri

    to my Jellyfin stack and re-deployed it.


    I also installed a mod called Jellyfin-opencl-intel with this under the environment variables part of the stack:

    Code
    - DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel



    Now, obviously this isn't everything I need to do, as can be read here

    But I'm really not that sure what all I need to do...


    Within Jellyfin there seems to be already a folder titled "ffmpeg"

    How do I find its version via the CLI so that I can confirm that it is older than specified?


    The tutorial linked above says that:

    Quote

    1. QSV is based on VAAPI device on Linux, so please confirm whether you have completed the VAAPI configuration first

    Does this mean that I'll have to add VAAPI devices to my portainer stack as described here?


    Also, the "Acceleration on Docker" section says that the render group may need to be added to the docker permissions. Do I do this with "group_add:" and then the ID that I find at /etc/group/render?


    The documentation also talks about configuring VAAPI acceleration for Debian, will I need to do that too?



    The reason why I was so confused about the links, is because they both talk about wildly different things that I need to do in order to configure it correctly.


    Linuxserver.io, whom I have the Jellyfin image from, says that I'll only have to add the

    Code
    --device /dev/dri

    Code in order to get it all running, but they also mention VAAPI, yet


    jellyfin.org says that I'll have to configure:


    1. Acceleration on Docker

    (for which I'll need to find the render group ID and add it to the stack with group_add:

    2. Maybe OpenCL Accelerated Tone Mapping?? I don't know

    3. VAAPI acceleration on Debian/Ubuntu

    (by doing a lot)

    4. Configuring Intel QuickSync on Debian/Ubuntu

    (which requires VAAPI)


    I'm just very confused what I'll actually need to do. But as far as I understand it, I'll need to do whatever Jellyfin.org says on the CLI on OMV and then just mount all of that to the Docker image (with the few steps the Docker configuration explained) so that docker can use it.


    Is that correct, or did I misunderstand something?

  • To recap on how I did this on a similar CPU with Ubuntu and on OMV.


    Install linuxserver/jellyfin docker (It does the HW transcoding config for you)

    set up your media folders

    Set up Jellyfin to use VAAPI - disable QuicSync (hard to get going and if VAAPI works then little need)


    Optional step - install vainfo on base system to confirm encoding/decoding capabilities of your Intel chip.


    Find a 10 bit HEVC file and play it. Open an HTOP window to see what's happening - this will tell if HW transcoding is working.


    Optional step - install intel_gpu_top and run it - this will tell if HW transcoding is working.

    Inwin MS04 case with 315 W PSU

    ASUS Prime H310i-Plus R2.0 board

    Four port PCI-E SATA card

    8GB Kingston DDR4

    Intel Pentium Coffee Lake G5400 CPU

    Samsung Evo M.2 256GB OS drive (28 GB partitioned for OS)

    4x4TB WD Red NAS drives - UnionFS pool

    Seagate 5TB USB drive - SnapRAID parity

    1x1TB Seagate HD

    1x300GB Toshiba HD

    Seagate 2TB USB drive

  • Thank you so much! I am an idiot, I thought "HW Transcoding" was its own thing, sorry. Since QuickSync requires VAAPI to work anyway, and Jellyfin also has VAAPI as an option , there really is no need to set QuickSync up with all the complications it has.


    I will do the above and post my issues if I encounter any, if I encounter none, I will tell everyone that it works (which it most likely will)

  • I've run into a bit of an issue since I do not know what VAAPI drivers to install

    https://01.org/linuxmedia/vaapi


    I have the Intel Celeron N4100 CPU which has the integrated graphics card "Intel UHD Graphics 600"


    I installed vainfo yet whenever I run it on my main server CLI I get this:


    The Jellyfin Docker environment seems to have everything set up the right way:



    Jellyifin.org says I'll need to follow the relevant documentation which needs drivers to be installed. I don't know what drivers I need since my CPU is a "Gemini Lake" from 2017, meaning Goldmont Plus. It's part of the Atom roadmap. Skylake, which is mentioned in the documentation, is from 2015. Everything after that requires also "linux-firmware," yet I do not know what I require in the first place. VAINFO probably does this because I have no drivers installed, but I do not know what drivers I need. Can you help me with this?

  • Edit: I am an idiot. I simply installed the "Intel i965 driver" by typing

    Code
    sudo apt install i965-va-driver

    and then vainfo should return something like:


    Jellyfin now tells me that:


    Which is quite cool.


    The issue is that I get insane frame bugs. Something within the decoding must go extremely wrong, here's an example:


    This is horrendous, any ideas on how to fix?

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!