This project is a web frontend to interface with the HDHomeRun products and FFmpeg in order to provide a mobile ready VBR HLS live stream of a channel. Scroll down for images of this in action.
###Update - Chromecast support This app is now updated to support casting to Chromecast devices using desktop Chrome. Start the stream in a Chrome browser with the cast extension installed and the icon will appear next to the on/off slider when cast devices are discovered.
- PHP enabled webserver
- FFmpeg with libx264 support
- hdhomerun_config
- Clone this repo:
git clone https://github.com/Logan2211/hdhomerun_hls.git
- In
html/callback.php
configure the path tohdhrstream.class.php
- Copy
html/*
to a PHP enabled directory on your webserver. Make sure that your web server has write permissions to this directory so ffmpeg can write the stream segments here. - Copy
config.example.yml
toconfig.yml
and perform the initial configuration as follows.target_ip
should be set to the IP of the system hosting this appffmpeg_base
must point to your FFmpeg binarystream => path
must be set to the html directory whereindex.html
,callback.php
, etc reside. This is the directory where ffmpeg will output the m3u8 HLS playlists and transcoded stream segments.num_tuners
will typically be 3 on HDHomeRun Prime, may be different on other HDHR models.
- In
html/index.html
there are severalchannel_filter_*
settings at the top of the file which enable display filtering of channels. It is disabled by default but I use this to display only HD channels.
Once configured navigate to the index.html URL on your device and attempt to start the stream. Check the web server error log and hdhrstream log file (configured in hdhrstream.class.php
) if the stream does not start.
I have had spotty experience with HLS streaming on Android devices. On iOS, it seems to work best playing the stream in Safari. Other browsers work but sometimes not as reliably or smoothly as Safari.
This project is distributed under the GNU GPL v2 license which can be found in LICENSE.