HomeRun Proxy

Want to write your own code to work with a HDHomeRun or work with the HDHomeRun DVR? We are happy to help with concepts, APIs, best practices.
Post Reply
Posts: 1
Joined: Wed Jun 26, 2019 3:15 pm

HomeRun Proxy

Post by skivy71 » Wed Jun 26, 2019 3:24 pm


I'm a HR user in the UK and due to the 'choice' of audio codec's employed by FreeView, there are playback issue's when using this device within applications like google live channels (and I think Plex too).

I know for definite, that some of the HD channels use LATM_AAC, which cannot be natively decoded on my nvidia shield, but I think mp2 also causes problems.

So, I've come up with the idea of 'proxying' the homerun, which is located in a different subnet (via a VM) and relaying 'calls' back and forth via a little node application.

In the end, I would proxy streams, transcoding them to something better, like ac3 etc.

However, this requires some 'rewrites' of the HD homerun packet data (as well the lineup / channels etc)..

So, I started out writing the code to relay broadcast, which is working in a fashion, except to re-write the homerun IP, which then leads to a new payload bytes, which will then require the CRC to be recalculated.

Sort of started to lose interest here, and was wondering if there might be a simpler option.

Posts: 14043
Joined: Sun Oct 28, 2007 9:23 pm

Re: HomeRun Proxy

Post by jasonl » Wed Jun 26, 2019 5:02 pm

Odd that Plex would have issues, since that's pretty much what Plex is designed to do, take everything from every possible codec and transcode it until it gets something that will play on everything. Admittedly, I'm not familiar enough with the inner workings of Plex to know if there's a way to force transcode of audio but leave video untouched, but that would presumably be the answer that would provide the highest quality result.

If you're going to do it yourself, then trying to preserve the original container is a lot of work for no real gain. Just chuck it into ffmpeg, transcode the audio, copy the video, remux to TS, and call it a day.

Post Reply