AndroidHDMI for Channels (ah4c): A virtual channel tuner using HDMI Encoder(s) + streaming stick(s)

OliveTin-for-Channels doesn't care where your CDVR server is running, so that won't be an issue. There's no particular advantage to having CDVR installed in Docker.

Docker is popular with open source developers, given that one's application is packaged with the OS it's going to run on, which greatly reduces testing and installer requirements. And it's popular with users, as it allows applications to be added or removed with nothing modified or left behind.

Docker requires some additional resources vs installing directly, but overall it's a win for both developers and users.

Yes, so that will just remain as the current M3U source in CDVR. Someday, once (if) ATSC 3.0 becomes available in my area I may want to look into processing through ah4c if necessary (if it's even worth it).

I use ATV's only for my current CDVR implementation, but I purchased additional ones off eBay to set up as Spectrum ATV tuners specifically for this project. Also purchased 2 Magewell dual port HDMI (fanless) for this project. I see someone has about 10 of these on eBay right now for about $65 each - less than I paid.

You'll be blazing a new trail here using Magewell cards in Docker. I don't see any reason why they wouldn't work, but the previous couple of people I can think of that used Magewell had ah4c installed at the OS level. On paper, it should just be a matter of passing the devices into the container.

The other thing that I remember being interesting about Magewell, is that their streams required ffmpeg post processing. When using network encoders, they're doing all the encoding work, but with Magewell there's going to be a load on your Docker host to consider.

They sound a lot more like a capture device than an encoder in the way I've seen them being used with ah4c. Probably worth mentioning too here, that the sum total of what you're doing should be considered "advanced". It should be doable, and I'm sure you'll have people willing to help, but this combination of gear is not from the mainstream of users.

ah4c:appletv is available only as docker, is that correct? Time to put on the learning hat and blaze the trail I guess.

Yes, the other Magewell users were capturing from Android devices -- as the vast majority of ah4c and ADBTuner users are. It's technically possible to do this without using Docker, but you'd be very much on your own.

Hmmm, ok. I started planning this out after reading following thread about 2 years ago, but just never got back to it: HDMI for Channels - #1315 by chasut

So, now that we have appletv docker, I really think it is the way to go. I wanted to use the Magewell capture cards after hearing some of the praise from @KompilerDJ and others and hearing you could encode 5.1 audio using it (I believe Spectrum app outputs this for at least some channels). I also felt perhaps they were more reliable and/or better quality than some of the Chinese encoders I've read about here. I could be wrong about all this as many seem to be happy with the encoders. I didn't foresee having to get capture card to work through docker, but am willing to give it a whirl. Worst case, I transition to an external encoder. Thanks again for your input.

EDIT: I found some of our old conversation on this topic pre-appletv docker, located here for reference: HDMI for Channels - #1363 by bnhf

Good point. I plan to pass Intel Quick Sync hardware encoding capabilities through to the Docker container which should pick up the major part of the transcoding load. So, I don't know how much additional load on docker host to run ffmpeg. I know others are running Nvidia graphics cards to do the transcoding/encoding, but probably on the host OS and not within docker. Intel QuickSync is just as powerful, but has much lower power draw for a system on 24x7. Just hope I can get it all to work. Agree this is a bit of an "advanced" project.

Also, I'm thinking more about that Linux upgrade and switch to server you mentioned. It's sounding more and more like a good idea.

Currently running two magewell ecos, but not in docker. I never got around to mucking around to get it all working in docker and I mess around so much with experimenting that the docker version of ah4c just wouldn't suit me. I am using intel quick sync to encode.

It might serve you to get the system up and going without docker at first to get a sense of what you will need to create an image with the magewell driver.

You will definitely need to install a version of linux and get the driver that give 5.1 audio installed (See Ju 16th post above).

That will give you the magewell2ts application and the EDID required.

Is there a FAQ for this? Is it possible to get the ESPN+ events through this container?

ELI5 for a novice, please.

Both ah4c and ADBTuner are projects designed to capture the output from an app running on an Android-based streaming stick using an encoder. That part is relatively easy; what's trickier is being able to do virtual channel changing in that app.

Apps that have deeplinks (not always easy to figure out), make the best candidates, but ah4c also supports remote control emulation (trickier to make reliable) to do that virtual channel changing. I don't believe the ESPN app is a very good candidate for either.

1 Like

Hey quick question. Before i dive into ah4c i see nba league pass is now on prime video. Is prime video good for tuning to specific games with ah4c? I already had adb tuner working its taken away from youtube tv.

How do I get started?

@arwrite So it sounds like you have someone willing/able to guide you, if you choose to install ah4c directly on your Linux host. If you decide to go this route, and you have the option, you may want to set up a test server to get this going, rather than using your production CDVR server.

Not a requirement obviously, but that's what I'd do, as things can get a bit messy when you're trying to get something like this going directly on the host OS. One of the beauties of containerization (and virtualization in general), is that you can always blow away a container or VM and start over with a clean slate.

When I'm doing something experimental, I'll almost always do a fresh installation once I figure out the steps, both to confirm those steps are correct, and to get rid of any unneeded installations or tweaks I did along the way.

Do you have any idea if the Prime app supports deeplinks? If not, you'd need to determine if you think the way games are presented in the app would lend itself to a remote control emulation approach to tuning.

Back when I was using remote control emulation with DTV, I would navigate to the search box, and then use a search that would match one (and only one channel) to do the tuning. This worked pretty well, but was not super quick. Deeplinks are always the way to go when available, but figuring them out can be tricky.

Either way, you'll need to do some light Bash scripting to make it all happen.

1 Like

Got it. This makes a lot of sense

Like I said, I don't think ESPN/ESPN+ is a good candidate, but if you want you mess around with it anyway you could set things up as though you were using DTV. You could use a STREAMER_APP value of scripts/firetv/dtvdeeplinks and a CDVR_M3U_NAME of dtvdeeplinks.m3u.

This would give you an idea of what the scripts would look like, and an M3U. You can find the Docker Compose, and some example env vars here:

2 posts were merged into an existing topic: ADBTuner: A "channel tuning" application for networked Google TV / Android TV devices

MovieSphere Gold got recently added to DTV/Stream. For those who need the streamlink, its

http://{{ .IPADDRESS }}/play/tuner/MVSGLD~6b272ceb-e01c-4c9a-b464-9e169f766fdb

and gracenote id is 185303

2 Likes

Thank you! MovieSphere Gold also has been added to FRNDLY's lineup.

@bnhf I've been trying out the pyatv version of ah4c for the last few days, and am trying to figure out if I can delay tuning while prebmitune and bmitune run so the stream seems more seamless (not showing app UI elements and button presses). Is there a way to run the above ffmpeg command simultaneous to prebmitune and bmitune? Right now, it seems like the tuning scripts run after CMD1.