Channels DVR on docker

Firefox capture screen

Got it

Strange.
Does it actually use hardware transcoding when you play an OTA channel from your HDHR in the web UI?

Only difference I see between yours and mine (besides the newer CPU in your NAS) is the TVE docker container Linux Alpine version.

I'm running the latest TVE image and mine shows
linux alpine
3.14.0_alpha20210212 (kernel: 4.4.180+)

where yours shows
linux alpine
3.10.3 (kernel: 4.4.180+)

1 Like

I exported to my computer when I did the fresh install but pulled it a wile ago.

For my DVR with Hardware transcoding enabled
When playing an mpeg2 channel in the web UI it shows under the player

Transcoder Running at 10mbps: 47s @ 0.99x (29.91fps)

and the DVR log shows

[TNR] Opened connection to 1323AADB/0 for ch52 TVLANDP
[HLS] Starting transcoder for channel 52 from 192.168.1.8 (encoder=remux, resolution=, deinterlacer=, bitrate=0)
[HLS] Probed live stream in 510.251595ms: mpeg2video 528x480 tt 312233bps
[HLS] Session ch52-dANY-ip192.168.1.8 started in 3.552447013s
[ENC] Starting encoder for ch52 in /volume1/arkives/ChannelsDVR/Streaming/ch52-dANY-ip192.168.1.8-509079117/encoder-1-192964936 at 1 (0.881844) (encoder=h264_vaapi, resolution=480, deinterlacer=hardware, bitrate=10000 segment_size=0.01)

For my DVR with no Hardware transcoding available
When playing an mpeg2 channel in the web UI it shows under the player

Transcoder Running at 10mbps: 23s @ 0.99x (59.70fps)

and the DVR log shows

[TNR] Opened connection to 1323AADB/0 for ch52 TVLANDP
[HLS] Starting transcoder for channel 52 from 172.18.0.1 (encoder=remux, resolution=, deinterlacer=, bitrate=0)
[HLS] Probed live stream in 1.533872316s: mpeg2video 528x480 tt 526659bps
[HLS] Session ch52-dANY-ip172.18.0.1 started in 3.547164406s
[ENC] Starting encoder for ch52 in /shares/DVR/Streaming/ch52-dANY-ip172.18.0.1-855957980/encoder-1-559396235 at 1 (1.825478) (encoder=libx264, resolution=480, deinterlacer=linear, bitrate=10000 segment_size=0.01)

My log

2021/08/26 22:35:48.538360 [TNR] Opened connection to 10817BFD/2 for ch2.1 WMAR-HD
2021/08/26 22:35:48.539031 [HLS] Starting transcoder for channel 2.1 from 172.17.0.1 (encoder=remux, resolution=, deinterlacer=, bitrate=0)
2021/08/26 22:35:49.307342 [HLS] Probed live stream in 768.185982ms: mpeg2video 1280x720 progressive 4075934bps
2021/08/26 22:35:51.186037 [HLS] Session ch2.1-dANY-ip172.17.0.1 started in 3.026307244s
2021/08/26 22:35:51.192115 [ENC] Starting encoder for ch2.1 in /ChannelsDvr/Streaming/ch2.1-dANY-ip172.17.0.1-288443223/encoder-1-129551562 at 1 (1.078711) (encoder=h264_vaapi, resolution=, deinterlacer=hardware, bitrate=10000 segment_size=0.01)

1 Like

You have me convinced.
Mystery is how it happened and how it can work without the /dev/dri device mapping for the container.
I'll leave that up to the devs to figure out :smile:

Thanks for all info you provided.

P.S. Appears your time zone isn't set for that container and the time is UTC

"P.S. Appears your time zone isn't set for that container and the time is UTC"

I have to fix that but still no issues.

P.S. All is good I just forgot to add TZ=America/New_York to my environment.

1 Like

I have channels dvr running in docker desktop. Works great. Only problem I have is with remote access. I doesn't show the local ip and my router will only forward the port to a lan address. Is there a way to fix this? Thanks in advance. I hope this makes sense.
Forgot to mention that Ihave the port forwarded to the ip of the pc it is on. When setting channels up on windows remote works fine but using docker to use YTTV.

You have to add net host ... and port 8089 see below ...

sudo docker run --detach --name=channels-dvr-tve --net=host --env TZ=America/Los_Angeles -p 8089:8089 --restart=on-failure:10 --device /dev/dri:/dev/dri --volume /volume1/docker/channels-dvr:/channels-dvr --volume /volume1/DVR:/shares/DVR fancybits/channels-dvr:tve
1 Like

Here is what works for me without remote access:
channels-dvr:
image: fancybits/channels-dvr:tve
container_name: channels-dvr
ports:
- "8089:8089"
restart: on-failure:10
volumes:
- /mnt/disk/dvr/config:/channels-dvr
- /mnt/disk/dvr/recordings:/shares/DVR

I tried to copy and paste what you wrote and get errors. I'm very new to Docker desktop, so I'm sure I'm not fully understanding it. Can I just add a line or two to what I have to make it work? Thanks for the response.

here are some of the errors:
ERROR: yaml.scanner.ScannerError: while scanning a simple key
in ".\docker-compose.yml", line 4, column 3
could not find expected ':'
in ".\docker-compose.yml", line 5, column 3

copy this below ... It is the same as chdvrusr posted only change is adding --net=host

sudo docker run --detach --name=channels-dvr-tve --net=host --env TZ=America/Los_Angeles -p 8089:8089 --restart=on-failure:10 --device /dev/dri:/dev/dri --volume /volume1/docker/channels-dvr:/channels-dvr --volume /volume1/DVR:/shares/DVR fancybits/channels-dvr:tve

If I'm not mistaken Docker Desktop is for Mac and Windows.

I don't run docker on either of those platforms.

You might have better luck creating a new topic titled something like

Docker Desktop on Windows remote access possible?

It is the same nothing different. This is what I Used on my test windows machine .... but I see no reason to run your main DVR on a windows docker.

docker run -p 8089:8089 -e TZ=America/Los_Angeles --detach --name=channels-dvr --net=host  --restart=always --volume C:\ChannelsDVRMain:/ChannelsDVRMain --volume C:\ChannelsDVRMain:/shares/DVR fancybits/channels-dvr:tve
1 Like

I am running it in Windows. The reason I'm using it in a windows docker is it seems to work well with YTTV. I'm open to trying something else that will not have login problems with YTTV. Thanks for the responses.

I tried your docker run command and it created a folder "ChannelsDVRMain" but it is empty. So not sure what to do to get it to install.

1 Like

Try without this --net=host and see what happens see if it populates the folder. I have never used my Main DVR on Windows Docker ... I have TVE Pluto etc.. on Docker feeding the main DVR M3U and Guide data.

I see the below about Windows Docker ... So it might be best just to add TVE to docker and run the main channels DVR in Windows.

  • Use the fancybits/channels-dvr:tve image if you need TV Everywhere support
  • The --net=host option is required for the Channels apps to discovery your DVR via Bonjour.
  • Neither Docker for Mac nor Docker for Windows support --net=host . When running on these platforms, you'll have to connect to Channels DVR Server by IP address from Channels. You can do this in the Settings tab of the Channels Apps.

Thank you. The problem is YTTV login doesn't work for me on the main channels dvr in windows. Oh well will just use it locally not remotely (which is my only problem). Thanks again.

Well you can always setup a Channels DVR docker with just TVE on a different port and use the M3U and Guide data from it ... on your main DVR installed in Windows.