Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/deanochips/HLS-XMLTV---Home-Broadcasting

Create your own TV Channel's on your home network
https://github.com/deanochips/HLS-XMLTV---Home-Broadcasting

broadcasting ffmpeg ffprobe hls iptv m3u8 nginx xmltv

Last synced: about 2 months ago
JSON representation

Create your own TV Channel's on your home network

Awesome Lists containing this project

README

        

# HLS / XMLTV Home broadcasting

HLS / XMLTV Home broadcasting is a home broadcasting system, it leverages FFMPEG & Nginx to broadcast your own do it yourself channels 24 hours a day across a home network

A M3U is auto generated from the FFMPEG HLS (M3U8) outputs
A XMLTV is generated by probing the video files for their duration using FFPROBE, with this info it extrapolates and writes a valid matching XMLTV file

These M3U and XMLTV files are supported popular systems:
I personally run it on [TiviMate](https://play.google.com/store/apps/details?id=ar.tvplayer.tv&hl=en_GB) and a Enimga2 Box, but it will run on much much more

## Major Features Include:

* Querys TVMAZE to get episode descriptions etc...
* Randomizing Episodes
* Randomized Idents - The channel stays in order but "Idents" are injected between the episodes to recreate the channel surfing experience
* Metadata & Probe Info Caching System

## Important:

a TMPFS in the NGINX web directory is required to run this effectively

to quickly setup a ram disk:

$ mount -t tmpfs -o size=512m tmpfs /var/www/html/streams

to make it automatic when linux boots edit the /etc/fstab with something like this:

$ tmpfs /var/www/html/streams tmpfs nodev,nosuid,noexec,nodiratime,size=512M 0 0

## Important 2:

Video files on the same channel all have to be the same format,

If yours don't,

**I Recommend**
[FFmpeg Batch AV Converter](https://sourceforge.net/projects/ffmpeg-batch/)

here is the parameters i use to match 4:3 & 16:9 content in one go

-c:v libx264 -crf 23 -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" -c:a aac -b:a 128K -ar 48K -ac 2

### Requirements

* BASH
* NGINX
* FFMPEG / FFPROBE
* PYTHON
* JQ (LINUX PACKAGE - needed to query TV_MAZE, will still run without it but it will fallback to just filenames)

### Setup

* Make sure all the required software mentioned above are installed
* Clone the repository into your machine
* Edit the config file with your installations info
* Add your channel playlists to concat_files directory (see example for formating)
* Run cron.sh to launch all channels (gives pretty output)

### This Is Alpha Software so expect occational bugs

## For the Curious this is what it looks like when setup on TiviMate
[![HLS / XMLTV Home broadcasting](https://img.youtube.com/vi/_mWtT-z2smU/0.jpg)](https://www.youtube.com/watch?v=_mWtT-z2smU)

### License

* [GNU GPL v3](http://www.gnu.org/licenses/gpl.html)
* Copyright 2010-2020

# Docker Versions
#### Confusingly they both have the same name but they have different approches:

### [HLS-XMLTV-Docker](https://github.com/deanochips/HLS-XMLTV-Docker)
My personal docker version, matches development machine and pulls master branch, image is about 125mb

### [HLS-XMLTV-Docker](https://github.com/chasx003/HLS-XMLTV-Docker)
Created by chasx003, it has a fixed version and had its variables rewritten to docker variables, image is about 157mb