Raspberry Pi: Stream the 2018 World Cup to your mobile phone yourself

Especially those who want to follow sporting events such as the 2018 Football World Cup on their mobile phones can do so conveniently with the help of a Raspberry Pi with tvheadend and VPN via PPTPD.

Everything you need for this setup is already there when you tvheadend on a Raspberry Pi with DVB-C ...is beginning. If this is not the case, you should first follow the above instructions so that the television reception itself will work. Once this has been done, the next step is to set up the PPTPD server.

Tl;dr

For the impatient: at the end of this article you will find a Raspberry Pi, which serves as both tvheadend and PPTPD VPN server, allowing TV streaming of any program to your smartphone. Practical especially for sports events such as Formula 1 or the soccer world championship - and of course highlights such as the final between Germany and Argentina. And this is how the whole thing is then operated:

Preparation

The following parts are needed to implement this manual (or generally for live television with the Raspberry Pi and tvheadend):

Once the Raspberry Pi is set up and streams the TV program to the home network, you can move on to the next step, the setup of the PPTPD VPN server.

Setting up the PPTPD server

One might now object that it would be safer to use OpenVPN. But this is much more complicated to set up and requires additional apps. In principle, you can also implement this guide with OpenVPN, but I will introduce the PPTPD variant here. Users of a Fritz!Box can also skip the following steps, they can directly use the VPN functionality of the Fritzbox. All others can continue reading:

I use Archlinux on my Raspberry Pi, but the configuration can also be transferred to Raspbian (the content of the .conf files remains the same).

1. install packages

~# pacman -Syu
~# pacman -S pptpd

2. edit /etc/pptpd.conf

This file is used to configure the advanced pptpd-options file as well as the IP address range of the PPTPD server and the PPTPD clients. In this case the VPN client will get an IP between 192.168.0.100 and .150. Since this is in the same IP address range as the tvheadend server, access from it is possible without any problems.

option /etc/ppp/pptpd-options
localip 192.168.0.73 # IP of the Raspberry Pi
remoteip 192.168.0.100-150 # IP range of the clients

3. edit /etc/ppp/pptpd-options

name pptpd
refuse-pap
refuse-chap
refuse-schap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 8.8.8.8
ms-dns 8.8.4.4

4. create user in /etc/ppp/chap-secrets

Several users can be created in the chap-secrets file, each with login and password. One user per line is entered, this data will be used later for the login.

 pptpd  *
 pptpd 

5. enable IP forwarding in /etc/sysctl.d/99-sysctl.conf

The following line must be added to the sysctl.conf file so that network access and Internet access also works with VPN connection.

net.ipv4.ip_forward=1

Afterwards with ~# sysctl --system reload the system files so that all changes are applied. Last but not least, the iptables firewall needs to be adjusted to allow access for PPTPD clients:

iptables -A INPUT -i ppp+ -j ACCEPT
iptables -A OUTPUT -o ppp+ -j ACCEPT

iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p 47 -j ACCEPT
iptables -A OUTPUT -p 47 -j ACCEPT

iptables -F FORWARD
iptables -A FORWARD -j ACCEPT

iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
iptables -A POSTROUTING -t nat -o ppp+ -j MASQUERADE

Start PPTPD server and test login

Once everything is set up, the PPTPD server must be started and anchored in the system start scripts so that the VPN server on the Raspberry Pi is automatically loaded at each system start.

~# systemctl start pptpd.service
~# systemctl enable pptpd.service
PPTPD-VPN setup under Android 4.4.2
PPTPD-VPN setup under Android 4.4.2

A VPN connection must now be set up on the smartphone, which is necessary for Android 4.4 and iOS is no problem and can be done without additional apps (that's why we use PPTPD and not OpenVPN).

If the setup was successful (for external access a DynDNS service should be used and the TCP port 1723 must be forwarded on the router to the IP of the Raspberry Pi ) you can connect via VPN and then have access to the local network as if you were on site. This allows for various application scenarios; the World Cup is to be about streaming. All that is needed now is the right apps on the smartphone or tablet.

tvheadend streaming on Android

TVHguide for Android: tvheadend client
TVHguide for Android: tvheadend client

To bring tvheadend together with Android, there is the free app TVHguide. On my Sony Xperia Z1 Compact it still needs an external media player (I use BSPlayer in the free version).

With a connected VPN, you can use the app just as you would in your home network - so you can also stream the DVB-C signal to the nearest beer garden or office: no more missing a game! Even on 7.2 Mbps limited LTE from Congstar is enough to transmit the television picture. The pleasure is only limited by the available data volume, so you should use a WLAN if possible.

Leave a Reply

Your email address will not be published. Required fields are marked *