Ta tutorial je namenjem FTTH uporabnikom, ki so hkrati tudi naročniki T-2 IPTV in imajo domače omrežje priklopljeno preko Linux routerja, želeli pa bi gledati televizijo na računalnikih v le-tem omrežju. Navodilo ne opisuje nastavitev na VDSL2 preprosto zato, ker ne vem kako se v tem primeru zadevi streže.
Namen tutoriala pa je predvsem to, da imamo nekje opisan postopek uporabe programa udpRelay.
IPTV promet se navadno pošilja na "multicast" način, kar omogoča enostavno razpošiljanje podatkov določeni skupini klientov (v našem primeru naročnikom T-2 televizije). Naš cilj je dobiti ta promet v privatno omrežje. Seveda pa ne želimo, da se promet razprši po vsem lokalnem omrežju. Zato bi želeli IPTV dohodni promet pretvoriti v "unicast" način razpošiljanja, tako da ga bo prejemal le tisti klient, ki ga je zahteval. Tu si bomo pomagali s programom udpRelay katerega avtor je tudi uporabnik T-2 foruma: gulikoza (http://t-2.rula.net/memberlist.php?mode ... ofile&u=15).
udpRelay je program, ki primarno deluje na *NIX sistemu, in (med drugim) omogoča "posredovanje" (ang. relaying) IPTV prometa v interno omrežje, tako da multicast promet pretvori v unicast in ga nameni samo uporabniku, ki ga je zahteval (npr. z multimedijskim predvajalnikom kot je VLC).
Namestitev (Linux):
- Za delovanje programa potrebujemo libpthread knjižnico. Distribucije kot je Debian, in tiste, ki temeljijo na njem (*buntu), jo že imajo, vendar pa boste na njih za kompilacijo programa potrebovali vsaj paket build-essential. Namestite ga z ukazom:
Koda: Izberi vse
sudo apt-get install build-essential
- Program povlečemo z interneta: http://sourceforge.net/project/showfile ... _id=298874
- Program odpakiramo in vstopimo v sveže odpakiran imenik:
Koda: Izberi vse
tar xvf udpRelay.tar.gz cd udpRelay
- Poženemo ukaz
Če se skripta ne izvede do konca, ker je bila prekinjena z neko napako to najverjetneje pomeni, da nam manjka določena knjižnica. Najverjetneje libpthread. Poskrbimo da jo imamo pravilno nameščeno in ponovimo ukaz.
Koda: Izberi vse
./configure
- Ko nam uspe zgornji korak poženemo še ukaz
Koda: Izberi vse
make
- Če je šlo vse po sreči je program udpRelay preveden v izvršilno obliko. Program potrebuje spisek T-2 kanalov v datoteki z imenom channel.txt, ki ga avtomatično dobimo s pomočjo nastavitvene skripte udpRelay_setup.sh. Naložimo jo iz interneta in nastavimo za izvajanje:
Koda: Izberi vse
wget http://dl.getdropbox.com/u/121855/pub/udpRelay_setup.sh chmod +x udpRelay_setup.sh
- Skripto poženemo z parametrom, ki predstavlja IP naslov routerja/strežnika na katerem bo deloval program udpRelay. Na primer, če je to naslov 192.168.1.1 jo poženemo na sledeč način:
Poleg nastavitve programa udpRelay, nam skripta zgradi tudi playlisto playlist.m3u, ki jo prenesemo na računalnik, kjer želimo gledati televizijo.
Koda: Izberi vse
./udpRelay_setup.sh 192.168.1.1
- Nujno moramo tudi odpreti vrata na routerjevem požarnem zidu. Vrata, ki jih moramo odpreti so UDP/5000 in vsa vrata za IGMP protokol. Na Linux-u, kjer imamo iptables ter T-2 optični switch priklopljen na mrežno napravo eth0 to kot uporabnik root naredimo na sledeč način:
Z zadnjim ukazom izklopimo tudi "reverse path filter", ki bi nam sicer preprečil posredovanje IPTV prometa.
Koda: Izberi vse
NAPRAVA=eth0 iptables -A INPUT -i $NAPRAVA -p igmp -j ACCEPT iptables -A INPUT -i $NAPRAVA -p udp --dport 5000 -j ACCEPT echo 0 > /proc/sys/net/ipv4/conf/$NAPRAVA/rp_filter
Priporočljivo je zgornje 4 vrstice dodati v skripto, ki se izvede ob zagonu sistema (odvisno od distribucije, v debian/*buntu je to /etc/rc.local) - Poženemo udpRelay:
Če želite, da se udpRelay požene ob vklopu routerja, dodajte v zagonsko skripto (npr. /etc/rc.local v *buntu/debian) ukaz za zagon z absolutno potjo (npr. /home/janez/udpRelay/udpRelay)
Koda: Izberi vse
./udpRelay &
- Namestimo udpRelay (glej Namestitev (Linux))
- Na računalniku z VideoLAN (VLC) predvajalnikom odpremo prej omenjeno playlisto in izberemo željeni kanal.
- Namestimo udpRelay (glej Namestitev (Linux))
- Na Popcorn Hour gremo pod Web Services --> Add / Edit (zgoraj levo) --> Add New Service. Polje Name izpolnemo po želji (npr. T-2). V polje URL pa vnesemo: http://hostname:2000/getchannellist kjer besedo hostname seveda nadomestimo z naslovom našega strežnika kamor smo namestili udpRelay.
- Pod Web Services poiščemo naš nov vnos in z pritiskom na Enter vstopimo vanj. Prikaže se nam seznam kanalov in radijskih postaj. Izberemo željeni kanal in uživamo v gledanju.
- Program udpRelay trenutno še ne omogoča gledanja televizije večim klientom hkrati. V takšnem primeru se obesi na rahlo neprijeten način (potrebno čakati za nedoločen čas, da se zapre povezava).
- Če se vam pri gledanju IPTV na Popcorn Hour zatika zvok imate verjetno v nastavitvah (Setup --> Audio/Video --> Video Zoom) izbrano možnost "Actual Size". Prestavite na "Fit To Screen".
- V primeru da sistem ne deluje, lahko poizkusimo udpRelay-u podati en parameter - IP naslov mrežne kartice, v katero je priklopljen T-2 switch. IP lahko preverimo z ukazom ifconfig.
- Če kdo v navodilu odkrije kakšno napako naj me prosim opomni.