Skip to content

PHP Laravel Application for transcoding between your TV decoder and mobile device using FFMPEG

Notifications You must be signed in to change notification settings

theyosh/DreamboxReStream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dreambox ReStream

Dreambox ReStream is a Laravel PHP framework application that allows you to watch television on your mobile phone while you are not at home. Using FFMPEG it can transcode a live tv channel from your Dreambox to an HLS live stream wich can be watched on a Desktop, mobile or any other device that supports HLS live streaming. This software is made for PERSONAL usage. It does not facilitate free television streaming! Dreambox ReStream overview image

Features

  • Stream any channel to your mobile
  • Stream any recording to your mobile
  • Electronic program guide
  • Ambilight effect
  • Hardware enabled transcoding (VAAPI, NVIDIA)

Translations

  • English

Installation

Dreambox ReStream requires a webserver with PHP enabled. And FFMPEG for transcoding. This software is tested with NGINX on an Ubuntu server. To get it working smoothly a decent upstream connection (minimal 512 Kbps) is needed. And ofcourse an Enigma2 enabled TV Decoder is needed. Best known are the Dreamboxes.

Vagrant installation

If you have Vagrant installed already, then you can skip the installation below by using the vagrant file that is provided with this software. Just run

git clone https://github.com/theyosh/DreamboxReStream.git
cd DreamboxReStream
vagrant plugin install vagrant-vbguest
vagrant up

and everything will be installed and configured.

Manual installation

Install the dependencies

sudo apt install git nginx php-fpm php-cli php-mbstring php-xml ffmpeg

Install PHP Composer

Install php composer according to the website: https://getcomposer.org/download/

Install Dreambox ReStream

git clone https://github.com/theyosh/DreamboxReStream.git
cd DreamboxReStream
php composer.phar install --no-dev
touch database/restream.sqlite
cp .env.example .env
sed -i -e 's@APP_NAME=.*@APP_NAME=DreamboxReStream@g' .env
sed -i -e 's@APP_DEBUG=.*@APP_DEBUG=false@g' .env
sed -i -e 's@DB_CONNECTION=.*@DB_CONNECTION=sqlite@g' .env
sed -i -e 's@DB_DATABASE=.*@DB_DATABASE='`pwd`'/database/restream\.sqlite@g' .env
php artisan key:generate
php artisan migrate
php artisan storage:link
php artisan version:absorb
php artisan version:timestamp

Configure NGINX

cp nginx.conf.example nginx.conf
sed -i -e 's@root .*@root '`pwd`'/public;@g' nginx.conf
sed -i -e 's@server_name .*@server_name [YOUR_DOMAIN_NAME];@g' .env
sudo ln -s `pwd`/nginx.conf /etc/nginx/sites-enabled/dreambox_restream.conf
sudo nginx -t
sudo service nginx reload

Setup

When the installation is finished, go with a browser to your configured domain. This will load a setup screen where you can enter the needed information to connect to your TV encoder. It is pretty straight forward.

The amount of 'Streaming profiles' thant can be used is depending on the CPU power. So start with 1 or 2 profiles, and when that works well, you can later add more profiles until your CPU gets loaded to much.