Posted By: tdr (smrt trotlum) on 'CZtv'
Title: TV na Popcornu WAS: Re: Kombo STB a prepinani programu
Date: Tue Jan 6 14:53:11 2009
Na jetpacovu zadost pisu, jak dostat TV nebo jine streamovane video do Popcorn
Hour A-110. Myslim, ze i treba Sarta by to mohlo zajimat.
Mam na serveru s DVB tunery pusteny www server a na nem HTML stranku se
seznamem programu, kterou mam na Popcornu pridanou do Media Sources treba jako
http://192.168.125.1/pvr/tv.html. Osvedcila se mi tabulka s ikonkami danych
TV, rozmer ikony 50x50 nebo 75x50 bodu, max. 4 ikony na jeden radek v tabulce
na klasicke PAL televizi. Na HD to bude chtit asi vytunit. ;-) Pokud je na
kabelu programu opravdu hodne, neni problem tridit programy tematicky do
podstranek, Popcorn v tom umi hezky chodit.
1) Pokud je dana televize na serveru permanentne streamovana napr.
Getstreamem z DVB-T, staci odkaz
<a href="http://192.168.125.1:8101/ct1" vod>
<img src="http://192.168.125.1/pvr/ct1.gif"><br>CT 1</a>
2) Pokud jde o kabelovku, nemuzu streamovat vsechny programy naraz, tolik
karet nemam. Tam jsem si pomohl timhle:
<a href="http://192.168.125.1/cgi-bin/tv.cgi?kanal=csfilm" vod>
<img src="http://192.168.125.1/pvr/csfilm.gif"><br>CS Film</a>
V obou pripadech je dulezite mit to "vod" (video-on-demand) v A tagu, aby
Popcorn vedel, ze nema odkaz otevirat jako HTML stranku, ale zacit prehravat
stream.
Aby se mi snadneji rozpoznaval vlc proces spusteny z CGI skriptu, udelal jsem
si symbolickou linku vlc-tv ukazujici na vlc. Kostra CGI skriptu pak vypada
takto:
#!/usr/bin/perl
{
# prvni cislo je PID v ramci muxu, druhe cislo frekvence muxu v Hz
...
$kanaly{'noe'}="1,242000000";
$kanaly{'cnn'}="2,242000000";
$kanaly{'nasn'}="3,242000000";
$kanaly{'axncrime'}="4,242000000";
$kanaly{'axnscifi'}="5,242000000";
$kanaly{'history'}="6,242000000";
$kanaly{'markiza'}="1,250000000";
$kanaly{'joj'}="2,250000000";
$kanaly{'axn'}="3,250000000";
$kanaly{'filmp'}="4,250000000";
$kanaly{'hallmark'}="5,250000000";
$kanaly{'csfilm'}="6,250000000";
$kanaly{'jimjam'}="7,250000000";
$kanaly{'filmbox'}="1,258000000";
$kanaly{'mgm'}="2,258000000";
$kanaly{'mtv'}="3,258000000";
$kanaly{'vh1'}="4,258000000";
$kanaly{'vh1classic'}="5,258000000";
$kanaly{'jetix'}="6,258000000";
$kanaly{'minimax'}="7,258000000";
...
@ARGS=split('&',$ENV{'QUERY_STRING'});
$kanal="ct1";
...
foreach (@ARGS)
{
($key,$value)=split('=',$_);
if ($key eq "kanal") { $kanal=$value; }
...
}
@pid=split / +/,`ps -ef|grep vlc-tv|grep -v grep`;
if ($pid[1]) { `kill $pid[1]`; sleep 1; }
if ($kanaly{$kanal} ne "")
{
($program,$freq)=split /,/,$kanaly{$kanal},2;
`vlc-tv -I dummy --ts-es-id-pid --program=$program
--dvb-adapter=0 dvb: --dvb-frequency=$freq --dvb-srate=6900000
--dvb-modulation=64 --sout '#standard{access=http,mux=ts,dst=:8102}'
> /dev/null 2>&1 &`;
}
sleep 2; # aby melo vlc cas nabehnout
print "Location: http://192.168.125.1:8102nn";
}
Parametry --dvb-modulation a --dvb-srate samozrejme zalezi na tom, co dava
kabelovka.
Enjoy!
Nejlepsi polevka je pivo !!!
_______________________________
tdr, v.r.