Hardware Transcoding using Unraid Docker?

For maximum portability, the shebang for bash scripts should be:

#!/usr/bin/env bash

If, however, your script is written in proper POSIX shell, use:

#!/bin/sh

In any case, though, this must be the first line in a script.

1 Like

Sadly, I'm still not seeing the Hardware option show up.
I added the shebang to the first line of the "go" file.
Rebooted unRaid and restarted the Channels Docker, but still nothing.
And the command: ls -alh /dev/dri still returns:
/bin/ls: cannot access '/dev/dri': No such file or directory

Frustrating, but not the end of the world. Thanks for all the help.

I have this as the line after the transcode activation, and it’s fine for me....should I change it?

Yes the shebang must always be the very first line of a shell script.

I put the shebang first, followed by this:

modprobe i915
lsmod | grep i915

Different syntax from what I put in the GO file before, but it also seems to work in activating the Intel Quick Sync driver upon bootup. Should there be a problem in this, or no?

No problem, but the lsmod command isn't really necessary; that command just lists the installed and activated kernel modules, and the pipe into grep just filters the output.

so just listing modprobe i915 is all that is truly necessary?!

Yes, that should be all that is necessary.

To understand what is actually happening: modprobe checks if a kernel module is present and enabled, and if not (but it is available on the system) then it enables it and inserts it into the kernel.

Basically, the command modprobe i915 ensures that the Intel graphics driver is installed and active. That should be all that is needed on your end.

Oh snap!

Okay cool. Once I am finished on my test setup, I will create a guide, SPECIFICALLY for Linux N00B's. I think that when deployed properly, this is a very good setup for Channels DVR

So I have narrowed down the syntax of my go file, to look exactly like this:

#!/bin/bash
/usr/local/sbin/emhttp &
modprobe i915

Everything works, including hardware transcoding, thanks to modprobe i915 enabling the Intel Graphics driver.

1 Like

Is NVIDIA based hardware still only supported on Windows? I have a Xeon CPU w/ a Quadro P400 running Unraid. I'm currently using the Plex Linuxserver.io container with full Nvidia support (without requiring Quicksync support).

Are there any plans to support Linux in the future? Thanks.

NVENC is already supported on Linux.

tmm1, is there a diag command I can run to find out why it's not enabled in my setup?

Also, does NVENC work without the need for /dev/dri/render* as you state earlier in this thread. That's for the i915 but I don't have Quicksync since I have a Xeon CPU.

As far as I'm aware, /dev/dri access is needed regardless of vendor in order to access the card's hardware. It may not be necessary, but I've heard anecdotally that access to /dev/shm is also needed (at least in reference to Docker), but I can't personally confirm this.

Looks like I was mistaken about nvenc on Linux. We do not currently have it enabled. It's a little tricky to do in a way that will work across multiple Linux distros

I've updated the instructions on https://getchannels.com/dvr-server/#unraid to include hardware transcoding setup.

@tmm1,

any chance you'll be able to do the same for Nvidia transcoding? Thanks.

I'd love to see this as well. I don't have quicksync, but transcoding on my nvidia gpu is working really well in docker.

Please email us [email protected] as we have an nvidia test build available but no machine to try it.

Anyway I could test that build for Nvidia transcoding on Linux?