HDHomeRun 4k Plex & Jellyfin

SiliconDust HDHomeRun 4k tuners have the ability to access ATSC 3.0 over the air NextGen TV 4k video. Plex and Jellyfin can access these channels, but without audio, In this video, we learn one possible solution to this.

The solution is to create an emulated HDHomeRun tuner that can accept and decode the Dolby AC-4 audio stream coming from an ATSC 3.0 broadcast received by an HDHomeRun Connect 4k or an HDHomeRun Flex 4k tuner. The AC-4 audio is decoded and encoded to AC-3 which is usable on Plex and Jellyfin.

The 2fauth project documenation is here.

In my example, I created a LXD container on my IoT network which is where my real HDHomeRun Flex 4k tuner is located. You will need an appropriate LXD Profile to bridge this container to your LAN where your tuner is located. Watch my videos on bridging LXD containers.

Create the container:

lxc launch ubuntu:22.04 hdhomerun --profile default --profile vlan30 -c security.nesting=true -c limits.memory=2048MB -c limits.cpu.allowance=20% -c boot.autostart=true

Connect to the container:

lxc exec hdhomerun bash

Upgrade the container:

apt update && apt upgrade -y

Install docker and docker-compose:

curl https://get.docker.com | sh
apt install docker-compose

Add a user account:

adduser scott

Grant the user account sudo and docker:

usermod -aG sudo scott
usermod -aG docker scott

Move over to the account:

su - scott

Get the hdhr-ac4 project from github:

wget https://github.com/johnb-7/hdhr-ac4/archive/refs/tags/v1.5.0rc.zip

Install unzip:

sudo apt install unzip

Unzip the file, delete the zip, rename the folder and move into it:

unzip v1.5.0rc.zip
rm v1.5.0rc.zip
mv hdhr-ac4-1.5.0rc hdhomerun
cd hdhomerun

Get a copy of the Emby Media server beta installation package, but don’t install it. When we build the docker container, code bits are used from it for AC-4 audio decoding.

wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.8.0.36/emby-server-deb_4.8.0.36_amd64.deb

Edit the Dockerfile as shown in the video and update the version number of the emby package you just downloaded in the two places shown in the video:

nano Dockerfile

Save the file with a CTRL O and Enter and then a CTRL X to exit the editor.

Build the docker project.

docker build -f Dockerfile -t hdhr-ac4 .

Create a docker-compose file.

nano docker-compose.yml

Insert the following into the docker compose file. Change the HDHR_IP address to the address of your HDHomeRun Flex 4k and change the HOST_IP to be the IP address of the LXD container. NOTE: You can’t change port 80 or port 5004 in the following.

version: '3'
services:
  HDHomeRun:
    image: 'hdhr-ac4'
    restart: unless-stopped
    ports:
      - '80:80'
      - '5004:5004'
    environment:
      - HDHR_IP=192.168.30.134
      - HOST_IP=192.168.30.201
      - DEVICEID_SWAP=1

Start the container:

docker compose up -d

Finally, go into your Plex and/or Jellyfin Live TV configuration and add the new emulated HDHomeRun tuner that we just created. When you access the channel, you should now get audio on the ATSC 3.0 channels.

1 Like

I have a windows plex machine running just fine. Can I set this up in a seperate linux box and point plex to it? Or does it have to be on the same machine?

1 Like

Yes you can. Come to https://chat.scottibyte.com/ to ask questions.