Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 3 months ago
JSON representation
Create your own TV Channel's on your home network
- Host: GitHub
- URL: https://github.com/deanochips/HLS-XMLTV---Home-Broadcasting
- Owner: deanochips
- Created: 2019-12-30T22:37:34.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-07T01:31:24.000Z (over 3 years ago)
- Last Synced: 2024-07-09T00:09:27.790Z (7 months ago)
- Topics: broadcasting, ffmpeg, ffprobe, hls, iptv, m3u8, nginx, xmltv
- Language: Shell
- Homepage:
- Size: 103 KB
- Stars: 33
- Watchers: 4
- Forks: 12
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
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 fileThese 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