HDHomeRun Connect Quatro and Plex Server Integration

Submitted by nigel on Monday 28th December 2020

The SiliconDust HDHomeRun Connect Quatro (sic) product provides play, record and schedule live HD TV on smart devices across your home network. It gets its TV signal from a standard aerial socket and comes with four tuners (hence the incorrectly spelt Quatro designation) for watching four different TV channels concurrently. It is a boon for those wishing to stream live TV over their WiFi to reach rooms not serviced by aerial sockets. Furthermore it integrates with the Plex Media Server product to provide DVR capabilities. This precipitated the purchase for me - I have way too many recordings on my Sky HD box and getting them off is tortuous - either remove the hard drive and rip them directly (tutorials on how to do this on the Internet) or play the recordings back at regular speed and capture the output. Dire options. 

So this is the tutorial for setting up the HDHomeRun box, integrating into Plex to record shows, and playback on my MacBook, iPad and Android Samsung S20 phone. 

SilconDust HDHomeRun Connect Quatro
Quatro

Big box, small product. The box contains the Quatro, power supply with a fairly short cable, and an RJ45 LAN cable which was way too short to stretch to my switch. A glaring omission for me is the Quatro should have a coax cable passthrough socket, but since it doesn't....

Y Splitter
Y Splitter

..you will need a Y splitter if you, like me, are already using your aerial wall socket for your TV. In addition you will need...

Coax Cable
Coax Cable

..coax cable to route from the Y splitter to the Quatro. It really does surprise me this wasn't bundled.

Setup
Version
Update
Channel Listing

The box doesn't come with instructions beyond the somewhat obvious connecting to the aerial socket and the home network. Instead there is a glossy flyer pointing the reader to the website at https://my.hdhomerun.com

The webpage rather craftily detected the device on my network (which my home router failed to do) and the x against the firmware version suggested to me the firmware was at least two years old (see top screenshot). I clicked through and installed the update (second screenshot). 

By navigating back to the hdhomerun page I clicked on the 159 channels and got the 3rd screenshot above (snipped for brevity). 

On the front page you will note that there is an option for a yearly fee of $35 for the SiliconDust DVR. Since I intent to integrate the Quatro with Plex I am going to use Plex's DVR instead. However that isn't free - I will buy a lifetime Plex pass to enable recording. 

Device Setup
Device Setup

By scrolling down from the Quatro instructions page you are confronted with the device setup page. Thankfully the options I needed are available - MacBook, iPad and Android. There's also a Television DLNA option which I don't need since I'm using the aerial cable also on my TV. However the Firestick option could be useful at a later date - I have a first generation 50" plasma TV with no smarts, no longer in use which I intend to mount on my bedroom wall. 

Ok let's go through the device installations. 

MacOS Installation
MacOS Download
Orphaned Terminal
MacPlayback

By clicking on the Mac installation you see the three button view as per the first screenshot above. Annoyingly despite my setup being ready to go (i.e. connected to my aerial and LAN) I had to click through to the third circle which then provided me a download link. I downloaded and installed the app which left an orphaned terminal session I had to close down manually (2nd screenshot). I started the app (simple on the Mac - press Cmd-Space and start typing HD and it autocompletes to the HD app. I believe you can get remote controls for playback but I instantly figured out how to change channel on the keyboard by tapping arrow down. I was very pleased with the results. See the 3rd screenshot. 

Android Installation
Android Installation

To install on Android, point a browser on the Android device to the HDHomeRun Connect Quatro link previous provided, and tap through Android Install and then the three roundels will be displayed as per the MacOS installation. Tap the third roundel and then tap the link to the Google Play store. Install the app like any other, and then open the app. It starts on BBC1 as per the MacBook installation. I've only included a sample screenshot of the playback and not the installation to avoid repetition.  

IOS Installation
IOS Installation

You won't be surprised to know the installation for IOS was as straightforward as for MacOS and Android. I jumped on my iPad and again pointed a browser to the Connect Quatro webpage. This time I was directed to the Apple Appstore and the app was installed. Screenshot above. 

Plex Integration
Update installed
Update required
Live TV and DVR
TV channels
Guide Data

The first step in Plex integration is to upgrade your Plex account to unlock DVR functionality. I opted for the lifetime pass. Once that is done you must update your Ubuntu Plex server to the latest version - failure to do so can lead to problems in the DVR installation. I got to a postcode validation screen and it wouldn't accept any version of my postcode I supplied. To update the Debian package, the easiest way is to click on the Please Install Manually link (see first screenshot above) which will save a deb package locally, in my case onto my Macbook. I then used scp to upload it to my Plex Ubuntu server and followed the simple instructions here 

After a reboot it can be seen in the 2nd screenshot above that I have the latest version. 

Next go to Live TV & DVR in the settings and you should see that Plex has already picked up the Connect Quatro. See the 3rd screenshot. 

Clicking continue brings up the channel list. I had to populate the country field at this point. See screenshot 4. 

The next step is the one which caused problems - postcode validation. I neglected taking a screenshot but basically you need the first three characters of the postcode only (UK) and as previously noted the latest version of Ubuntu Plex server. 

Once past the postcode, the installation is complete apart from the download of guide data - see screenshot 5. This takes a lot of time to accomplish so go for a cup of tea or three. 

Plex Playback
Plex Playback
Plex Playback Sean

Plex playback is achieved through a browser. I navigated to Live TV and DVR and then Guide - see screenshot 1 above. The second screenshot shows live playback. However it became immediately apparent that Plex playback isn't really a good choice - there was lag with the spinner constantly pausing the playing out of the TV show.

Plex Playback - BBC1 Issue
Audio issue

There is a problem with playback of BBC1 through Plex. Many have reported audio missing, but in my case I couldn't even get video. The solution is to go to Settings -> Account -> Audio and Subtitles and then edit. Check the box for automatically selecting audio and subtitle tracks and ensure the language is set to English as shown in the screenshot above. This fixes the audio / video issue. 

DVR Use
DVR Guide
Film
Detect commercials
Schedule

The DVR feature is accessed through the Plex TV guide. It is the primary reason for my purchase of the Connect Quatro and the Plex Lifetime Pass - so everything is pinned on this working correctly! The first screenshot shows the guide and through this interface records are selected. You can see I have chosen to record Ten Little Indians in the first screenshot. 

Note in the second screenshot Plex has identified the recording as a film and therefore will be placed in one of my two film-type collections. One is called simply films and the other Documentaries (Single). The films collection is chosen and therefore the recording should be saved on the file storage allocated to the films collection - in my case my FreeNAS server under a dedicated directory for films. 

In the advanced settings it is possible to select an option to detect commercials and remove them during the recording. Since this is my first attempt at recording I've elected not to try this just yet. See screenshot 3. 

My DVR Schedule now shows that Ten Little Indians is lined up to be recorded overnight. We'll see! Screenshot 4. 

DVR Troubleshooting
Silnet Failure
Frustration! My first recording failed silently. Or rather, I woke up to discover Plex had actually rescheduled the recording for later in the week when it was being broadcast again - see the first screenshot above. Crazy! Nothing else for it but to troubleshoot. The Plex logs for around 23:50 (the time of the broadcast) provides the evidence:
Dec 28, 2020 23:50:00.492 [0x7f7e78ff9700] DEBUG - [Grabber/6c03fabdb0be2839bb5ebe0e2412563e991a9910] Grabber: checking for 15018 MB of available disk space in grab path and 100 MB in the transcode cache path
Dec 28, 2020 23:50:00.498 [0x7f7e817fa700] DEBUG - [Grabber/6c03fabdb0be2839bb5ebe0e2412563e991a9910] HTTP 200 response from GET http://192.168.0.14:80/lineup_status.json
Dec 28, 2020 23:50:00.518 [0x7f7e78ff9700] DEBUG - [Grabber/6c03fabdb0be2839bb5ebe0e2412563e991a9910] IsOnSameVolume: failed to stat "/mnt/freenas/Movies/Unfiled/.grab": No such file or directory
Dec 28, 2020 23:50:00.519 [0x7f7e78ff9700] ERROR - [Grabber/6c03fabdb0be2839bb5ebe0e2412563e991a9910] Failed to calculate available disk space for path '"/mnt/freenas/Movies/Unfiled/.grab"': 2 (No such file or directory)
Dec 28, 2020 23:50:00.520 [0x7f7e78ff9700] DEBUG - [Grabber/6c03fabdb0be2839bb5ebe0e2412563e991a9910] Grabber: Saving recording to "/mnt/freenas/Movies/Unfiled/.grab/6c03fabdb0be2839bb5ebe0e2412563e991a9910-83fff151e63f57b4526b75632ece7504e44f3183"
Dec 28, 2020 23:50:00.525 [0x7f7e78ff9700] ERROR - [Grabber/6c03fabdb0be2839bb5ebe0e2412563e991a9910] Grabber: No write permission.
Dec 28, 2020 23:50:00.525 [0x7f7e78ff9700] DEBUG - [Grabber/6c03fabdb0be2839bb5ebe0e2412563e991a9910] Grabber: Operation for 'Ten Little Indians (1966)' on channel 081 completed with status error (No write access to destination)
So clearly the issue is the Plex server doesn't have write permissions to my FreeNAS drive which contains all my media collections. Plex server by default has a user:group combination of plex:plex whilst I was connecting from the server to FreeNAS by credentials for my own account. I am mounting the FreeNAS point by CIFS. I changed the line in the /etc/fstab file to use the following mount instead:
# CIFS FreeNas mount
//192.168.0.200/personal	/mnt/freenas	cifs	credentials=/root/.cifs,uid=111,gid=117,vers=3.0	0	0
The uid was changed to that of the plex user, and the gid changed to the plex group. I then created an account called plex on my FreeNAS server and ensured it had write permissions to the media directories. That fixed it!
DVR Recording Playback Issues
Recording
Ready for playback
TV Show Collection
CPU Usage

During my troubleshooting I attempted two other recordings which both failed. However once I got the permission model correct, I fired off a random recording and as you can see by the red dot in the Nature's Weirdest Events broadcast in the first screenshot, the recording ran correctly. You can see in the 2nd screenshot the video is ready for playback, and in the 3rd screenshot the video has automatically been added to my collection of TV Shows. 

I inspected the filesystem and noted that the video has a ts file type which is standard for streamed videos. There aren't many options for playing back ts files apart from Plex itself and VLC Player. Having done some research it appears that Plex can record directly to mp4 but needs serious CPU to achieve this. I clearly don't have the horsepower just now - see below!!

I attempted to playback the recording and was appalled. The video stuttered alarmingly and was totally unwatchable. I switched to the dashboard view which give CPU and bandwidth insights and it was patently obvious why I was having problems. The CPU usage was over 200%!! See screenshot four above. So not only transcoding to mp4 is out of the question, merely playing anything back is too! 

Moving Plex Server to Ubuntu 20.04LTS on Fast Laptop with 16GB RAM
Nitro
top
Bees

I decided to move my Plex server to the super fast 16GB RAM Nitro gaming Laptop (first screenshot above) I discussed in this article and installed a fresh copy of Ubuntu 20.04TS with the Gnome desktop. I decided that if running the GUI caused problems I would change the boot sequence to command line only. The migration was simplicity since I used an earlier blog as a basis, but since I wasn't having to move the underlying VM too, I merely copy and pasted the file copy commands from that article. 

Once I'd brought up the Plex service on the Nitro laptop, I pointed a web browser to my IP address (I allocated it 192.168.0.205. All my servers are in the range 192.168.0.200 onwards so my ISP hub has been configured to only allocate IP addresses from 192.168.0.2 to 192.168.0.199 by DHCP.

I had to login in to the new Plex instance but once I had I was good to go. First task was of course to play back the ts video recording I'd made earlier (see third screnshot above). Playback was fine - and I had a top term output running on Gnome (screenshot 2 above) that showed all RAM had been grabbed (no surprise) and the CPU was at approximately 10%-15%, so had plenty of headroom left. Thank goodness the move to the gaming laptop had yielded positive results.

Transcoding Recordings
Transcode Live DVR setting
Transcoder Settings
5 minute recording
Transcoder term
Penguin

Instead of streamed files I really want H.264 format videos. To achieve this you need to configure Plex to transcode as it is recording. This is achieved by floating over Live TV and DVR and clicking the hamburger menu then clicking settings, then in the popup window device settings. Move the drop down to Transcode and click save as per the first screenshot. 

Transcoding has a number of different options - and some experimentation is probably required here. Navigate to Settings->Transcoder and my settings are listed in the second screenshot, but your mileage may vary. 

To test this I picked an imminent show that was only five minutes long. Good enough for a proof of concept test. This is the recording under the heading today in the third screenshot. 

When the recording was underway I looked at the top output again on the server. It was again around 10%-15% CPU so plenty of headroom spare. Maybe I could be a bit more aggressive with my transcoder settings. 

The recording finished in 5 minutes and played back with no problems - see screenshot five. 

Inspecting the file was a little disappointing. It is still in the dreaded ts format - but importantly it is merely a ts container. You can use a Post Processing script to remux the container from ts to mp4 or mkv. The remux should only take a few seconds since it is not actually changing the internal video (H.264) format. So that is a wash up activity for another day. And perhaps another blog. 

Bill of Materials
Conclusion

This was quite an adventure spread over two days. I now have industrial strength recording of TV shows direct to hard disk in my FreeNAS storage and can play back on any device in my property. I needed to upgrade my Plex server hardware in the process though and it was somewhat fortunate I had a spare 16GB Nitro ultra fast gaming laptop doing nothing. It's i7. i7-9750H. 2.60 GHz spec with 6 cores is awesome and has no problems running a Plex server. Without it I could've been looking at many hundreds of outlay. 

blog terms
Hardware