Hardware Transcoding using Unraid Docker?

It says this....

home "/root"
hwdeint true
model "HP ProDesk 400 G1 SFF"
pwd "/channels-dvr/data"
root ""
timezone "EST"
transcoder "h264_vaapi"
vendor "Hewlett-Packard"

so I guess that means Channels can see it?

Yes this is the quicksync driver.

Woohoo!!!!

I’m going to demolish everything and build it again, then write up a guide on how to do this.

I played around with the code a little more than I should have, so now I need to rebuild.

So get this...I wiped everything clean and rebuilt this from the ground up (in efforts to create a guide as SIMPLE as possible).

First thing I noticed? I went to http://x.x.x.x:8089/system/misc and it reports the following for the transcoder:

transcoder "h264_vaapi"

This is using all the default settings of the docker. Only thing different about this rebuild? I had the video driver activate when booting up (edited the "go" file).

So does this mean that so long as the Intel Video driver is activated upon bootup, that default settings of the ChannelsDVR container will natively allow for hardware transcoding?!

Yes

1 Like

Very cool! That should make the guide much easier (and with far fewer steps!)

I am having same issue with my unRaid Docker ChannelsDVR.

I only see Software encoding as an option.

UnRaid is running on an Intel Core i3.

Output of http://192.168.xxx.xxx:8089/system/misc/system/misc:
{"home":"/root",
"hwdeint":false,
"model":"",
"pwd":"/channels-dvr/data",
"root":"",
"timezone":"CST",
"transcoder":"libx264",
"vendor":"Gigabyte Technology"}

So what would be the steps to enable hardware transcoding in the Docker container? What would be the change to the "go" file? I am not very familiar with Linux environment.

Yo! Just take your Unraid thumb drive, plug it into your Mac/PC, then open up the thumb drive.

In there, go into the Config folder, and find a file called "go". In it, copy and paste the lines below:

#Setup drivers for hardware transcoding in ChannelsDVR
modprobe i915
chown -R nobody:users /dev/dri
chmod -R 777 /dev/dri

You don't have to do anything to the Channels docker. This should enable hardware transcoding!

1 Like

Your "go" file should look like this when you are done:

#Setup drivers for hardware transcoding in ChannelsDVR
modprobe i915
chown -R nobody:users /dev/dri
chmod -R 777 /dev/dri

#!/bin/bash
#Start the Management Utility
/usr/local/sbin/emhttp &

1 Like

Unfortunately that did not work on my setup.
Steps:

  • Shutdown unraid server.
  • Connected unraid USB to iMac.
  • Opened Terminal.
  • Using vim, opened /Volumes/UNRAID/config/go
  • Edited the file by adding the lines you recommended
  • Saved the file and ejected the drive.
  • Rebooted unraid with USB
  • Restarted the Channels Docker container
  • Channels Docker UI does not present the option for Hardware transcoder.
    Still only Software transcoder options.

So no options need to be added to Channel Docker configuration?
Thanks for any suggestions.

Well, when you boot up Unraid, does the output screen on a monitor change to a smaller and sharper font? If so, that indicates the Quick Sync activating upon bootup.

Open a terminal window and type in

ls -alh /dev/dri

What does it say?

(In the Unraid screen, you should see the option to click on Terminal, at the top right-hand corner)

1 Like

What does the DVR say for CPU at the top of the Settings web page?

1 Like

Thanks for the suggestion @rso81 .

When I enter that in the Unraid terminal window, I get:
root@Tower:~# ls -alh /dev/dri
/bin/ls: cannot access '/dev/dri': No such file or directory

@tmm1 The DVR says under CPU:

4 cores / Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz
load averages: 0.04 0.11 0.09

Thanks for helping to troubleshoot.

This means that the driver for Intel Quick Sync is not activating on bootup. Might want to check what you typed in, on the go file. If it does not start up, the ChannelsDVR docker will not be able to use hardware transcoding

1 Like

I have verified that this CPU does in fact have Quick Sync Video, so there is no reason why it shouldn’t work.

Go back to your go file, and put a space in between the ‘#’ and ‘setup’.

1 Like

Spaces shouldn't matter on comment lines.

Try running manually:

modprobe i915
lsmod | grep i915

1 Like

Does the #!/bin/bash line need to be the first line of the file?

Or does it stay where it is (around line 6) just before starting the management utility?