CDVR Virtual Channels for External Players and the CDVR WebUI

I've added the ability to play CDVR Virtual Channels in external players (like VLC or whatever), and the CDVR WebUI, via ah4c. This should also work in other media centers. This support has been added under bnhf/ah4c:test currently, until I can get someone besides me to try it out. :slight_smile:

For the moment, this requires a Firestick to be connected to the HDMI encoder you're using for ah4c -- though I'd be happy to add support for another streaming stick, for a willing tester.

Setup the ah4c container in the usual fashion, with scripts/firetv/channels as the STREAMER_APP value. From there, you'll need to build an M3U that matches the virtual channels you've created. Here's mine, as an example:

#EXTM3U

#EXTINF:-1 channel-id="10001" tvg-logo="/dvr/uploads/3/content",Police Dramas
http://{{ .IPADDRESS }}/play/tuner/10001

#EXTINF:-1 channel-id="10002" tvg-logo="/dvr/uploads/4/content",The Sixties
http://{{ .IPADDRESS }}/play/tuner/10002

#EXTINF:-1 channel-id="10003" tvg-logo="/dvr/uploads/5/content",Victorian Age
http://{{ .IPADDRESS }}/play/tuner/10003

#EXTINF:-1 channel-id="10004" tvg-logo="/dvr/uploads/6/content",Star Wars
http://{{ .IPADDRESS }}/play/tuner/10004

#EXTINF:-1 channel-id="10005" tvg-logo="/dvr/uploads/7/content",Political
http://{{ .IPADDRESS }}/play/tuner/10005

#EXTINF:-1 channel-id="10006" tvg-logo="/dvr/uploads/8/content",Medical
http://{{ .IPADDRESS }}/play/tuner/10006

#EXTINF:-1 channel-id="10007" tvg-logo="/dvr/uploads/9/content",Napoleonic Era
http://{{ .IPADDRESS }}/play/tuner/10007

#EXTINF:-1 channel-id="10008" tvg-logo="/dvr/uploads/10/content",Chicago Shows
http://{{ .IPADDRESS }}/play/tuner/10008

#EXTINF:-1 channel-id="10009" tvg-logo="/dvr/uploads/11/content",Police Consultants
http://{{ .IPADDRESS }}/play/tuner/10009

#EXTINF:-1 channel-id="10010" tvg-logo="/dvr/uploads/14/content",Global Catastrophe
http://{{ .IPADDRESS }}/play/tuner/10009

#EXTINF:-1 channel-id="10011" tvg-logo="/dvr/uploads/15/content",Criminals
http://{{ .IPADDRESS }}/play/tuner/10011

The channel-id values would be the channel numbers you're using for your virtual channels, and those need to match the number at the end of the stream URL. Replace the sample channels.m3u in scripts/m3u with your M3U. I've uploaded my Virtual Channels logos to CDVR, which is why they're showing as paths, but you could also use a URL for the logo.

Your source should be setup similar to this:

Note the way the XML guide data is setup, using just the VIRTUAL source. The channel numbers should be set to an unused range.

1 Like

Here's me playing one of my Virtual Channels in the CDVR WebUI:

And, in VLC:

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

Nice work again @bnhf! Could this work as a way to feed virtual channels from a primary CDVR to another CDVR server using the primary as a source? As far as I know there is no CDVR capability to share virtual channels with another CDVR server.

I don't see why not.

When I originally set up this project, I tested it some myself, but was then looking for a couple of other people to help with any fine tuning -- which would be primarily related to using non-FireStick devices. No takers at the time though...

It's a pretty simple concept in a way, in that it uses a Channels app to view the Virtual Channels on a streaming stick, and then capture that using ah4c and an encoder. The Channels app has an API, so ah4c uses it to change channels. Presto -- a virtual channel becomes a live channel!

Hey buddy

I've wanted to achieve the concept of watching the CDVR virtual channels in the WebUI for awhile now. Haven't had much experience as to using these third party HDMI capture devices - any chance you could give a quick and dirty requirements needed and rough guide on how to get this going please?

Cheers

Hardware Requirements:

HDMI Encoder (LinkPi ENC1-V3/ENC5-V2 recommended)
Streaming Stick(s) (FireStick 4K Max Gen2 recommended)

Software Requirements:

Docker w/Portainer (full version, not extension)
ah4c Container (use scripts/firetv/channels for STREAMER_APP value)

You can find the recommended Docker Compose here, along with a set of sample env vars to use in Portainer-Stacks. Don't edit the compose, put your env vars in the section of the Stacks Editor specifically designed for these values.

Thanks mate much appreciated. I'll give this a go!

1 Like

Got it working thanks - did you want me to test anything at all?

Glad to hear it. Nothing I can think of to test, but let me know if you have any issues. I've added this capability to ADBTuner as well, but I'm unsure if it will be merged -- as the project is not currently open source.