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

Thanks ! That worked. I´looking at scripts and m3us but i`m not sure how to go on.
Would meecool/youtubetv be a good starting point to open my app "Allente" and tune deeplinks ?
If so any chance you could give me some example for 2 channels with m3u and bmitune.sh based on the following info:

My apps name="allente.b2c.tvclient"
Channel 1 (name SVT1) and has the following deeplink: allente://play/live/20001
Channel 2 (name SVT2) and has the following deeplink: allente://play/live/20002

And then how would my m3u look for above channels?
Streamer ip 192.168.0.100
ah4c ip 192.168.0.101

Sure, you could use mecool/youtubetv as a starting point. These are very simple versions of the scripts needed, but they might be fine -- and would get you familiar with the concepts. Most anything else you could add, would be to deal with particular issues related to your specific streaming app.

prebmitune.sh would probably be fine as is:

#!/bin/bash
#prebmitune.sh for android/yttv
STREAMERIP="$1"
ADB_CMD="adb -s $STREAMERIP shell"
WAKE="input keyevent KEYCODE_WAKEUP"
HOME="input keyevent KEYCODE_HOME"
adb connect $STREAMERIP
$ADB_CMD $HOME

bmitune.sh would need to be modified. You'd want the line after "#Send the command" to mirror what you've done in your testing to launch the app and tune to the channel. Given your particular deep link, you'd want the URL in the M3U to send 2000x as your channel number. The command might look something like below, once you add the correct value of APP_LAUNCH:

#!/bin/bash
#bmitune.sh for android/yttv
STREAMERIP="$2"
ADB_CMD="adb -s $STREAMERIP shell"
CHANNEL=\""$1\""
APP_LAUNCH="com.google.android.youtube.tvunplugged"
APP_NAME="allente.b2c.tvclient"

#Send the command
$ADB_CMD am start -a android.intent.action.VIEW -d allente://play/live/$CHANNEL -n $APP_LAUNCH/$APP_NAME

stopbmitune.sh could be something like this:

#!/bin/bash
#stopbmitune.sh for android/yttv
STREAMERIP="$1"
ADB_CMD="adb -s $STREAMERIP shell"
SLEEP="input keyevent KEYCODE_SLEEP"
HOME="input keyevent KEYCODE_HOME"
$ADB_CMD $HOME
$ADB_CMD $SLEEP

And your M3U should be setup along these lines, though you should add your channel's specific Gracenote Station IDs, between the quotes after tvc-guide-stationid:

#EXTM3U
#EXTINF:-1 channel-id="SVT1" tvc-guide-stationid="",SVT1
http://{{ .IPADDRESS }}/play/tuner/20001
#EXTINF:-1 channel-id="SVT2" tvc-guide-stationid="",SVT2
http://{{ .IPADDRESS }}/play/tuner/20002

Setting this up for the first time, trying it out with just 1 tuner for now - using Fubo as the source, Linux, Docker w/ Portainer. Couple of issues that I ran into:

  1. The main issue was the 3 scripts were missing in /scripts/firetv/fubo. Downloaded them and copied them up and changed permissions fixed it. Concerned that if they get updated and I do a new pull & deploy - they won't actually get updated.

  2. Adding a channel for testing, I just added it to the existing m3u that came installed and just disabled the others. When adding it to cdvr - gave me messages the m3u was incorrect. Looking at the file it appears the existing channels that I disabled are not commented out correctly - or maybe it's not the way it should work. More of fyi than anything as a new m3u with only my test channel worked fine. Be a nice feature if it would work to be able to toggle channels - when switching channels from TVE or ADBtuner as hings change.

Otherwise - it went very smooth and works great. Tunes much faster. Hope this fixes my issues with Fubo I'm having with ADbtuner.

The last silly thing - can't seem to get the TZ for timestamps to work. Using TZ=America/New_York - same as my other stacks.

3 more tuners to go...

Right you are -- I see they are missing from my build system. I'll fix that shortly. Any updates to the scripts are probably going to be coming from you, since it would seem you're the only one using this particular combination atm. :slight_smile:

I adapted my firetv/directv scipts for Fubo somewhere along the way, but haven't looked at them again since my Fubo trial expired -- glad to hear they still work.

Comments in M3U files are not particularly intuitive, since the "#" has another purpose. I don't use comments often in M3Us, but my recollection is that #<space> is a comment, but # followed by any other character is not.

Also somewhere along the way, I switched to a build container that doesn't include tzdata without realizing it -- I'll add it to the next build, along with those scripts.

Thanks for the quality feedback!

Which HDMI encoder are you using here? Or better yet, you have a better breakdown to what all your using in the rack patch panel? I'm interested in your particular ENCODER as I would then be able to plug multiple HDMI devices into including a Chromecast and Firestick. Thanks

Here's the breakdown. Some items I had on-hand, but everything can be sourced from Amazon -- assuming you're in the US of course:

URayCoder H265 H264 4K HDMI Video Streaming Encoder IPTV for HDMI to RTSP RTMP HLS M3U8 UDP SRT ONVIF, HDMI to IP Live Broadcast Streamer Converter Hardware:
https://www.amazon.com/gp/product/B07TKMPCZH

AC Infinity Vented Cantilever 1U Universal Rack Shelf, 10" Deep, for 19” equipment racks:
https://www.amazon.com/gp/product/B01C9KYUG8

C2G Legrand 16 Port Patch Panel, Ethernet Keystone Panel with Blank 1U Keystone:
https://www.amazon.com/gp/product/B0002GWPTG

RiteAV USB 3.0 Keystone Jack A-A Female to Female - Black:
https://www.amazon.com/gp/product/B075DGXM9R

VCE HDMI Keystone Jack 6-Pack | 4K HDMI Female to Female Adapter | HDMI Coupler Snap-in | for Keystone Wall Plate | Black:
https://www.amazon.com/gp/product/B07214QPBD

Intellinet Cat.6 UTP Keystone Coupler:
https://www.amazon.com/gp/product/B00173ROGM

VCE 20-Pack Blank Keystone Jack Inserts | UL Listed | for Keystone Wall Plate and Patch Panel | Black:
https://www.amazon.com/VCE-20-Pack-Keystone-Inserts-Wallplate/dp/B07G8D1WYC

Monoprice Cat6A Ethernet Patch Cable - RJ45, Stranded, STP, 5-Pack, 36AWG, 0.5 Feet, Black - SlimRun Series:

Monoprice Cat6A Ethernet Patch Cable - Snagless RJ45 | 550Mhz | 10G | UTP | Pure Bare Copper Wire | 30AWG | 10-Pack | 1 Feet | Black | SlimRun Series:
https://www.amazon.com/gp/product/B01BGV2TAA

UCTRONICS Upgraded Ethernet and Power for Raspberry Pi Zero, Micro USB to Ethernet/PoE Adapter for Fire TV Stick, Chromecast, Google Mini, Wyze Cams and More, IEEE 802.3af Compliant:
https://www.amazon.com/gp/product/B0B9ZLVGJ4

REVODATA Gigabit PoE Splitter 12V 2A Output with IEEE 802.3af/at Standard Compliant 10,100,1000Mbps Power Over Ethernet Splitter Adapter for Security Camera CCTV Surveillance 5.5x2.1mm DC PlugPS5712TG:
https://www.amazon.com/gp/product/B08HS4NT13

CableCreation [2-Pack Micro USB to Micro USB Cable Short, USB2.0 Micro-B Male to Male OTG Cable Works for DJI Spark and Mavic, PS4, Android Phone and Tablet, DAC and More,8 inch / 20CM:
https://www.amazon.com/gp/product/B07CKW6RYD

ELECTOP 2 Pack USB 2.0 A Male to USB Micro Female Adapter Converter:
https://www.amazon.com/gp/product/B015PC65EM

Mediabridge™ Flex Series HDMI Cable (1 Foot) Supports 4K@50/60Hz, High Speed, Hand-Tested, HDMI 2.0 Ready - UHD, 18Gbps, Audio Return Channel:
https://www.amazon.com/gp/product/B007PESCCC

Amazon Fire TV Stick 4K Max streaming device | Wi-Fi 6 | Alexa Voice Remote (includes TV controls):
https://www.amazon.com/gp/product/B08MQZXN1X

I think that's everything. You'll need to work out the quantities based on the number of sticks you'll be using. The only change I'd make building now is to use the 2nd generation FireStick 4K Max devices. Obviously not a budget build (few of my projects are :slight_smile:), but it's been rock-solid since day one. Nothing has been rebooted, or touched, in many months.

Using this since my last post and getting down to 1 issue that I can't resolve.
Watching or recording, every 2nd subsequent request to the same device - is washed out. Like a dimmed version - not a normal bright display. Either watching live and it records that way. Hard to see. It's taken a few days troubleshooting with no answer, its very repeatable.

I thought it was a Firestick issue, so I swapped out to an ONN stick same issue. Swapped out to a different Firestick model. Changed ports on the encoder, rebooted things 1 at a time - testing step by step, reboot everything at once, reset device(s) to factory - nothing changes. I have a new test server spun up - same problem. When watching in VLC - you can see it as well. I'm not sure how else to test this out.

I copied out the logs to separate txt files and looked at them side by side but nothing jumps out to me. Here is the bad one - ran about 4 minutes after the good one. I can post the original if it will help..

2024-02-26T15:04:23.488102487Z Attempting network tune for device http://10.0.0.60/0.ts 10.0.0.64:5555 32639
2024-02-26T15:04:23.546138116Z [EXECUTE] Running [./scripts/firetv/fubo/prebmitune.sh 10.0.0.64:5555 32639]
2024-02-26T15:04:23.678067341Z [EXECUTE] Stdout: 'already connected to 10.0.0.64:5555
2024-02-26T15:04:23.678118801Z prebmitune.sh is exiting for 10.0.0.64:5555 with exit code 0
2024-02-26T15:04:23.678128258Z '
2024-02-26T15:04:23.678134573Z [EXECUTE] Stderr: '+ streamerIP=10.0.0.64:5555
2024-02-26T15:04:23.678140837Z + streamerNoPort=10.0.0.64
2024-02-26T15:04:23.678145690Z + adbTarget='adb -s 10.0.0.64:5555'
2024-02-26T15:04:23.678150523Z + mkdir -p 10.0.0.64
2024-02-26T15:04:23.678155306Z + trap finish EXIT
2024-02-26T15:04:23.678160437Z + main
2024-02-26T15:04:23.678165240Z + adbConnect
2024-02-26T15:04:23.678170073Z + adb connect 10.0.0.64:5555
2024-02-26T15:04:23.678174945Z + local -i adbMaxRetries=2
2024-02-26T15:04:23.678179828Z + local -i adbCounter=0
2024-02-26T15:04:23.678184571Z + true
2024-02-26T15:04:23.678189364Z + adb -s 10.0.0.64:5555 shell input keyevent KEYCODE_WAKEUP
2024-02-26T15:04:23.678194386Z + local adbEventSuccess=0
2024-02-26T15:04:23.678199358Z + [[ 0 -eq 0 ]]
2024-02-26T15:04:23.678204151Z + break
2024-02-26T15:04:23.678208795Z + finish
2024-02-26T15:04:23.678213826Z + echo 'prebmitune.sh is exiting for 10.0.0.64:5555 with exit code 0'
2024-02-26T15:04:23.678218898Z '
2024-02-26T15:04:23.678223750Z [EXECUTE] Finished running ./scripts/firetv/fubo/prebmitune.sh in 132.016672ms
2024-02-26T15:04:23.678747023Z [EXECUTE] Running [./scripts/firetv/fubo/bmitune.sh 32639 10.0.0.64:5555]
2024-02-26T15:04:30.085644709Z [EXECUTE] Stdout: 'Current PID for this script is 466
2024-02-26T15:04:30.085670275Z Not a special channel (exit nor reboot)
2024-02-26T15:04:30.085673357Z Starting: Intent { act=android.intent.action.VIEW dat=https://link.fubo.tv/... }
2024-02-26T15:04:30.085675734Z No active audio stream detected and app is not in focus after 4 seconds -- attempting to tune again...
2024-02-26T15:04:30.085677802Z Active audio stream detected with -26.3 LUF.
2024-02-26T15:04:30.085679751Z bmitune.sh is exiting for 10.0.0.64:5555 with exit code 0
2024-02-26T15:04:30.085693613Z '
2024-02-26T15:04:30.085696179Z [EXECUTE] Stderr: '+ channelID=32639
2024-02-26T15:04:30.085697889Z + specialID=32639
2024-02-26T15:04:30.085699580Z + streamerIP=10.0.0.64:5555
2024-02-26T15:04:30.085701250Z + streamerNoPort=10.0.0.64
2024-02-26T15:04:30.085702941Z + adbTarget='adb -s 10.0.0.64:5555'
2024-02-26T15:04:30.085704641Z + packageName=com.fubo.firetv.screen
2024-02-26T15:04:30.085706322Z + trap finish EXIT
2024-02-26T15:04:30.085707962Z + main
2024-02-26T15:04:30.085709683Z + updateReferenceFiles
2024-02-26T15:04:30.085711314Z + mkdir -p 10.0.0.64
2024-02-26T15:04:30.085712984Z + [[ -f 10.0.0.64/stream_stopped ]]
2024-02-26T15:04:30.085714635Z + [[ -f 10.0.0.64/last_channel ]]
2024-02-26T15:04:30.085716315Z + echo 466
2024-02-26T15:04:30.085717966Z + echo 'Current PID for this script is 466'
2024-02-26T15:04:30.085719637Z + matchEncoderURL
2024-02-26T15:04:30.085721268Z + case "$streamerIP" in
2024-02-26T15:04:30.085723266Z + encoderURL=http://10.0.0.60/0.ts
2024-02-26T15:04:30.085725026Z + specialChannels
2024-02-26T15:04:30.085726647Z + '[' 32639 = exit ']'
2024-02-26T15:04:30.085728268Z + '[' 32639 = reboot ']'
2024-02-26T15:04:30.085729929Z + [[ -f 10.0.0.64/adbCommunicationFail ]]
2024-02-26T15:04:30.085731609Z + echo 'Not a special channel (exit nor reboot)'
2024-02-26T15:04:30.085733300Z + tuneChannel
2024-02-26T15:04:30.085735030Z + adb -s 10.0.0.64:5555 shell am start -a android.intent.action.VIEW -d https://link.fubo.tv/al1%3Fv%3D1%26a%3Dplay%26t%3Dchannel%26channel_id%3D32639
2024-02-26T15:04:30.085736999Z Warning: Activity not started, its current task has been brought to the front
2024-02-26T15:04:30.085738739Z + activeAudioCheck
2024-02-26T15:04:30.085740350Z ++ date +%s
2024-02-26T15:04:30.085741961Z + local startTime=1708959863
2024-02-26T15:04:30.085743612Z + local maxDuration=60
2024-02-26T15:04:30.085745302Z + local minimumLoudness=-50
2024-02-26T15:04:30.085746953Z + local sleepDuration=0.5
2024-02-26T15:04:30.085748584Z + true
2024-02-26T15:04:30.085750264Z ++ ffmpeg -t 1 -i http://10.0.0.60/0.ts -filter:a ebur128 -map 0:a -f null -hide_banner -
2024-02-26T15:04:30.085751985Z ++ awk '/I: /{print $2}'
2024-02-26T15:04:30.085753645Z + checkLoudness=-70.0
2024-02-26T15:04:30.085755256Z ++ date +%s
2024-02-26T15:04:30.085756897Z + (( 1708959867 - 1708959863 > 60 ))
2024-02-26T15:04:30.085759234Z ++ echo '-70.0 > -50'
2024-02-26T15:04:30.085761014Z ++ bc -l
2024-02-26T15:04:30.085762694Z + (( 0 ))
2024-02-26T15:04:30.085766543Z + appFocusCheck 0
2024-02-26T15:04:30.085768362Z ++ adb -s 10.0.0.64:5555 shell dumpsys window windows
2024-02-26T15:04:30.085770083Z ++ grep -E mCurrentFocus
2024-02-26T15:04:30.085771733Z ++ cut -d / -f1
2024-02-26T15:04:30.085773364Z ++ sed 's/.* //g'
2024-02-26T15:04:30.085775502Z + appFocus=
2024-02-26T15:04:30.085777113Z + [[ '' == com.fubo.firetv.screen ]]
2024-02-26T15:04:30.085778764Z + return 1
2024-02-26T15:04:30.085780424Z ++ date +%s
2024-02-26T15:04:30.085782155Z + echo 'No active audio stream detected and app is not in focus after 4 seconds -- attempting to tune again...'
2024-02-26T15:04:30.085783945Z + adb -s 10.0.0.64:5555 shell input keyevent KEYCODE_CENTER
2024-02-26T15:04:30.085785645Z + true
2024-02-26T15:04:30.085788380Z ++ ffmpeg -t 1 -i http://10.0.0.60/0.ts -filter:a ebur128 -map 0:a -f null -hide_banner -
2024-02-26T15:04:30.085790219Z ++ awk '/I: /{print $2}'
2024-02-26T15:04:30.085791880Z + checkLoudness=-26.3
2024-02-26T15:04:30.085793541Z ++ date +%s
2024-02-26T15:04:30.085795221Z + (( 1708959870 - 1708959863 > 60 ))
2024-02-26T15:04:30.085797001Z ++ echo '-26.3 > -50'
2024-02-26T15:04:30.085798711Z ++ bc -l
2024-02-26T15:04:30.085800362Z + (( 1 ))
2024-02-26T15:04:30.085801963Z + echo 'Active audio stream detected with -26.3 LUF.'
2024-02-26T15:04:30.085803654Z + break
2024-02-26T15:04:30.085805274Z + finish
2024-02-26T15:04:30.085806925Z + echo 'bmitune.sh is exiting for 10.0.0.64:5555 with exit code 0'
2024-02-26T15:04:30.085808993Z '
2024-02-26T15:04:30.085810624Z [EXECUTE] Finished running ./scripts/firetv/fubo/bmitune.sh in 6.407330249s
2024-02-26T15:04:36.169211878Z [IO] io.Copy: write tcp 172.19.0.2:7654->10.0.0.37:34540: write: broken pipe
2024-02-26T15:04:36.169339032Z [IOINFO] Successfully copied 24864900 bytes
2024-02-26T15:04:36.169346957Z [IOINFO] Transfer speed: 15.925155478836098 Mbits/second
2024-02-26T15:04:36.169354256Z Performing Close() for 10.0.0.64:5555
2024-02-26T15:04:36.169363952Z [EXECUTE] Running [./scripts/firetv/fubo/stopbmitune.sh 10.0.0.64:5555 32639]
2024-02-26T15:04:38.749824196Z [EXECUTE] Stdout: 'Streaming stopped for 10.0.0.64:5555
2024-02-26T15:04:38.749881345Z Sleep initiated for 10.0.0.64:5555
2024-02-26T15:04:38.749891169Z 10.0.0.64/stream_stopped written with epoch stop time
2024-02-26T15:04:38.749898160Z '
2024-02-26T15:04:38.749903420Z [EXECUTE] Stderr: '+ streamerIP=10.0.0.64:5555
2024-02-26T15:04:38.749909566Z + streamerNoPort=10.0.0.64
2024-02-26T15:04:38.749915075Z + adbTarget='adb -s 10.0.0.64:5555'
2024-02-26T15:04:38.749921767Z + packageName=com.fubo.firetv.screen
2024-02-26T15:04:38.749962766Z + main
2024-02-26T15:04:38.749970244Z + bmituneDone
2024-02-26T15:04:38.749975037Z + bmitunePID=466
2024-02-26T15:04:38.749979681Z + ps -p 466
2024-02-26T15:04:38.749984275Z + adbStop
2024-02-26T15:04:38.749989038Z + stop='input keyevent KEYCODE_BACK; input keyevent KEYCODE_BACK; input keyevent KEYCODE_HOME'
2024-02-26T15:04:38.749994338Z + adb -s 10.0.0.64:5555 shell input keyevent 'KEYCODE_BACK;' input keyevent 'KEYCODE_BACK;' input keyevent KEYCODE_HOME
2024-02-26T15:04:38.749999787Z + sleep 2
2024-02-26T15:04:38.750004541Z + echo 'Streaming stopped for 10.0.0.64:5555'
2024-02-26T15:04:38.750009284Z + adbSleep
2024-02-26T15:04:38.750014594Z + sleep='input keyevent KEYCODE_SLEEP'
2024-02-26T15:04:38.750019178Z + adb -s 10.0.0.64:5555 shell input keyevent KEYCODE_SLEEP
2024-02-26T15:04:38.750023922Z + echo 'Sleep initiated for 10.0.0.64:5555'
2024-02-26T15:04:38.750028675Z + date +%s
2024-02-26T15:04:38.750033239Z + echo '10.0.0.64/stream_stopped written with epoch stop time'
2024-02-26T15:04:38.750038082Z '
2024-02-26T15:04:38.750042825Z [EXECUTE] Finished running ./scripts/firetv/fubo/stopbmitune.sh in 2.580601648s
2024-02-26T15:04:38.750095031Z [GIN-debug] Request: 10.0.0.37 GET /play/tuner/32639, latency: 15.261837806s, status: 200

My first reaction is that this doesn't sound like a coding issue. It strikes me as more like something to do with the encoder (settings?), or maybe power related? What encoder are you using? And, how are you powering your devices?

EDIT: ah4c is strictly a proxy, there's no processing of the video stream -- it's just passed to Channels as it's received.

Just got the following:
HDMI Encoder
FireStick TV (4K)
Google TV (4k)

and so I want to test.
So I enable ADB on the Google TV - Done
Got the ENCODER on the home network and have its ip address

now is there a doc or docs to complete the test. If this works then I try the other device (Firestick)

What brand of encoder did you get?

What streaming app are you hoping to use?

I got this encoder:
EXVIST H.265 1080P
https://www.amazon.com/dp/B08FDZ2VNZ?ref=ppx_yo2ov_dt_b_product_details&th=1
as a test, but also found one for $65 on order to try as well. I only plan on having a HDHomeRun, Firestick and Google TV for now.

As for the app to start with. For Firestick/FireTv let's go with Freevee (anything here)
For the GoogleTV my son has 3 months free of Youtube TV and so any local off that like NBC, CBS would be a good test.

If you have YTTV, and want to get things up-and-running as quickly as possible, I'd suggest you use the ADBTuner project:

Once you get familiar with the concepts, if you want to work up some scripts for apps that don't have deeplinks, you can circle back here.

First of all, thank you so much @bnhf for setting this up! I have everything generally up and running, but am seeing a couple of issues and wanted to check that I hadn't messed anything up and what the best way to workaround these issues is.

I am using this for DirecTV Stream on a Fire Stick. So I've set STREAMER_APP=scripts/firetv/directv. However, if I use the directv.m3u in Channels then some of the channel names don't quite match (largely if they have an "HD" suffix or not) so the search results don't return anything and things get stuck. I then tried switching to the dtvstream.m3u and that worked for some channels and not others, again largely because of the "HD" suffix issue.

Looking at the code I see this line in the bmitune.sh file:

m3uName="${STREAMER_APP#*/*/}.m3u"

Now if I'm reading that right it means that the name of the streamer app/script and the m3u need to match or it might pull the name of the station from the "wrong" m3u file. And in my setup the names of the script and m3u are different.

What's the best way to fix that? Should I just duplicate your firetv/directv scripts and give them a unique name and have it match to a new m3u file? (I'm probably going to create a new and large m3u file for my entire DirecTV Stream package so that I can use this method as the default ahead of TVE in Channels.) Or am I missing something and have it misconfigured some way?

Thanks for your help!

That is a known issue between having DTV and DTVStream credentials, and it's why there's basically a duplicated set of scripts under scripts/firetv/dtvstream, so switch your STREAMER_APP variable to that and it'll improve the situation.

@gfhartzell has been the primary maintainer of dtvstream.m3u, but like me he uses just a subset of the channels available. So it's very possible that the channels he uses are the ones that are working for you. Hopefully he'll see this discussion, and between the two of you can expand dtvstream.m3u to include all of the channels you want.

If you run into any troublesome channels, due to multiple matches in the search, we do have a section for such "problem children" -- so one way or another, we should be able to get you to 100% success. Though channel tuning is not fast using this method, it's quite reliable once you have everything setup properly. And for recordings at least, tuning accuracy is what matters -- speed is a distant second.

Ah ha! I didn't realize there was already a duplicate set of scripts because I didn't see them here: https://github.com/sullrich/ah4c/tree/main/scripts/firetv

I'll try that and work on a full dtvstream.m3u for my full list of channels. I'll share that here and you can decide if it makes sense to include (and I can open a PR or whatever you prefer). Admittedly it may not be ideal because I'm grandfathered into an old package that they call "Package: MGM+ + FreePreview + Free MAX + Unlimited Hours of Cloud DVR + NBA League Pass + Gotta Have It + DTVN EE - Enhanced Technology Fee + 20 In-Home Streams". Catchy!

Right you are! They're in the build though, and I'll add them to the repo along with at least one other that's in the queue from the Netherlands.

The marketing team must have been on vacation when they named that package! If we need to do another version of the DTV scripts/M3U for you, that's fine -- but if we can make it happen with the current DTVStream toolset, that'd would be ideal.

Just an FYI the dtvstream.m3u is for Philadelphia, PA and the HBO entiries are untested,
Also I found using the iPhone app to see the channel names sorted by number helped especially to find the search names for my locals. Olivetin now does the best job for finding the channel id. Have at it!

2 Likes

My encoder is the URay 4K 4 Channels H.265 H.264 HDMI IP Video Streaming Encoder, 2 Firesticks, 2 onn's. Everything is currently laid on my bench still. They are all powered by their usb - plugged directly in wall.

I noticed that some of my recordings were hard to see on the tv - I call it dimmed - lite - not bright as the others. I started troubleshooting : its no particular channel, tuner or device or port on the encoder. I finally realized it was every other recording. I swapped tuners to different ports, reset a couple devices to factory - the issues doesn't follow anything traceable.

I can duplicate 100% every time. I start watching a channel from channels browser while also watching in vlc. Evrything looks great the first time. I'll stop the browser watching and see the vlc closes everything and goes the test pattern screen. I then restart watching again in the browser - and the browser window and the vlc window are dull /dim. Repeat the process and screen(s) are back to full color & brightness. I can reboot everything and the issue remains. I first thought something in the scripts wasn't actually clearing everything and shutting it down all the way - leaving something hanging the process, then the 2nd time it effects the picture - the 3rd time reset to normal. But I don't see anything weird when watching the vlc session, no flashing, jittering or sound issues.

This does not happen with abdtuner that I still have setup 1 channel for.

I checked with Uray and I have the latest firmware. Not sure how to test this any further to isolate the issue...

Can you check the display settings on the Android device when the picture looks bad? My two chromecasts will sometimes switch to 8-bit RGB which looks horribly washed out and I haven't found a consistent cause, or easy fix, other than changing the setting back or rebooting.

Also take a look into the "match content" settings on the Android device. Maybe the video mode is changing between sources and that's causing it to bug out?

That's an important clue. I wonder if the Fubo app needs to be force closed after each tune? If you're using "compatibility mode" in ADBTuner, then that could be the difference.

This is the function in stopbmitune.sh to modify:

#Stop stream
adbStop() {
  stop="input keyevent KEYCODE_BACK; \
        input keyevent KEYCODE_BACK; \
        input keyevent KEYCODE_HOME"
  #stop="am force-stop $packageName"
  $adbTarget shell $stop; sleep 2
  echo "Streaming stopped for $streamerIP"
}

I think I changed from the force-stop to the KEYCODE approach in the interest of faster tuning, but the app may be misbehaving when left running.

1 Like