Init7 launched a free IPTV service for their customers (https://www.init7.net/en/tv/offer/) based on multicast. I am extremely impressed by the quality of that service!
Multicast has a few limitation and I choose to use udpxy to bridge the IPTV streams to devices on my LAN.
This guide show how I implement it.
My setup:
- TV - LG 55EG920V - WebOS
- Android mobile phone
- Raspberry Pi 1
- Router: MikroTik hex S
Limitations:
- Raspberry PI 1 is not that powerful and can only serve one client at the same time
- Haven't figured out how to get the LG TV to autostart SS IPTV
The cool stuff:
- Zapping on TV is working properly
- No dependency to Cablecom
- No delayed TV signal
- Lot's of HD channels
==================================================================================================
Init7 network
(public network) +------------------+ +----------------------------------------+
| Multicast IPTV | | Init7 Playlist |
| 224.0.0.0/4 | | http://api.init7.net/tvchannels.xspf |
+--------|---------+ +---------------------|------------------+
| |
+-------------------------+----------+
|
+-------------|------------+
| Mikrotik hex S |
============================================| 192.168.178.1 |==========================
LAN | igmpproxy |
+---|---|------------------+
| |
+----------------------------+ |
| |
+---------|-------+ +---------------|----+ +----------------------+
| Raspberry PI | | Orbi Wifi Router | <-MESH-> | Orbi Wifi Satelite |
| 192.168.178.11 | | | | |
| udpxy | | | | |
+-----------------+ +-----------*--------+ +----*-----------------+
* * *
* * ((( Wireless ))) *
* * *
+-------*---+ +--------*-----+ +-*--------+
| LG TV | | Android | | Laptop |
| SS IPTV | | IPTV / VLC | | VLC |
+-----------+ +--------------+ +----------+
WLAN
==================================================================================================
We need to do two things on the router:
- Install and configure multicast
- Grant firewall access for multicast and igmp traffic
Assumption:
- Router is accessible on http://192.168.178.1
- Firmware is version 6.42.3 (please make sure you are updated)
-
Go to the mikrotik download page (http://www.mikrotik.com/download) and get the "Extra Packages" for your router (Mikrotik hex S = mmips)
-
Unzip the all
all_packages-mmips-6.42.3.zip
-
Upload the
multicast-6.42.3-mmips.npk
to the root directory of the router usinghttp://192.168.178.1/webfig/#Files
-
Reboot the router to install
-
Open http://192.168.178.1/webfig/#Routing:IGMP_Proxy and add two new interfaces
-
Open http://192.168.178.1/webfig/#IP:Firewall and add three rules above the drop all not from LAN rule
With this configuration it is already possible for wired connected LAN devices to read the multicast IPTV traffic.
It is a challenge to read multicast streams with wireless devices. I am using an old Raspberry Pi 1 to act as a proxy to transform UDP-to-HTTP traffic using udpxy.
-
Prepare a SD card with Raspbian
-
Connect the Raspberry Pi directly to the Mikrotik (shortest physical distance). I had issues connecting the raspberry to the Orbi.
-
Boot the raspberry and configure a fixed IP (192.168.178.11)
-
Become root and download udpxy in /root -> http://www.udpxy.com/download/udpxy/udpxy-src.tar.gz
-
Unpack
udpxy-src.tar.gz
and cd into the new directory -
Run make, which generates the udpxy executable
-
Add a new systemd service file as
/etc/systemd/system/udpxy.service
Check the version. I was lazy.. ;)
[Unit] Description=udpxy Wants=basic.target After=basic.target network.target [Service] ExecStart=/root/udpxy-1.0.23-12/udpxy -p 4022 -T -s -n -20 ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=always RestartSec=18s User=root [Install] WantedBy=multi-user.target
-
run
systemctl enable udpxy.service
andsystemctl start udpxy.service
Now we have a proxy running on LAN to provide a UDP-to-HTTP bridge
LG WebOS seems not to support native IPTV. But there is SS IPTV available on the LG content store.
-
Install SS IPTV from the LG Content store
-
Launch SS IPTV and configure the upstream proxy location
-
Add init7 channel list
-
Enjoy TV
Android configuration is similar to the LG. The App I use here is IPTV together with VLC.
Configure Proxy and Playlist like on LG TV and enjoy TV.
To watch the TV stream on Linux I use VLC and the following script
$ ./tv7 srf
Multiple matches
================
SRF1 HD
SRFzwei HD
SRF Info HD
$ ./tv7 srf1
Playing: SRF1 HD
VLC media player 2.2.8 Weatherwax (revision 2.2.7-14-g3cc1d8cba9)
[0000000002485428] core libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
$
Find the tv7
script in this repo: tv7.