Now that multi-view is working, I am kicking myself for only have the 2-stream HDHR. So, I had an old Xbox Hauppauge ATSC tuner sitting in the electronics junk drawer that I thought I'd put to work.
The setup is basically four parts (running on Ubuntu):
- Tuning the Hauppauge stick with
dvbv5-zapso/dev/dvb/adapter0/dvr0outputs the raw transport stream. - Piping that stream into
ffmpeg, which repackages the selected video+audio PIDs into segmented.tsfiles and a rolling.m3u8playlist. - Serving those files via nginx (I swapped out my quick Python http.server once it worked) so the HLS playlist is available at something like
http://192.168.x.x:8042/stream.m3u8. - Persistence: wrapped the whole thing in a systemd service so the tuner+ffmpeg pipeline comes back up automatically after reboots.
Right now it’s locked to one channel (NBC), but it’s smooth and stable. Next step is making it on-demand, where requesting abc.m3u8 or fox.m3u8 would tune the right frequency and spin up ffmpeg dynamically.
yes I know it's silly and uses a lot of resources, but hey this is called playground!