IPTV

Z Wiki UnArt Slavičín
Skočit na navigaciSkočit na vyhledávání

Strana serveru

DVB-S karta

Bude použita karta Skystar HD2

  • Karta, určená pro příjem digitálního vysílání ve formě DVB-S2 - cena cca 2500 Kč vč. DPH

Instalace

Jako systém je zvolen linux distribuce Debian 5.0 lenny. K tomu aby se nám podařilo nainstalovat dvb-s kartu ,je nutné stáhnout ze serveru www.kernel.org vanilla jádro 2.6.30. a provést kompilaci.

Prerekvizty

apt-get install gcc cpp g++ make

Kompilace nového jádra

Nejprve stáhneme jádro :

wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.tar.gz

Rozbalíme :

tar zxvf linux-2.6.30.tar.gz

Kompilace

meke menuconfig
make-kpkg clean

Vytvoříme image

time make-kpkg –initrd –revision=2:shadow.1 kernel_image
cd..
dpkg -i linux-image-2.6.30_shadow.1_amd64.deb

Restartujeme do nového jádra.

Instalace ovladačů karty

Nainstalujeme mercurial
apt-get install mercurial

Instalace Mantis/S2API

hg clone http://mercurial.intuxication.org/hg/s2-liplianin
ln -s s2-liplianin s2 
cd s2-liplianin
make menuconfig

V menuconfig najedeme do :

 Multimedia devices ---> Video captur adapters--->

A zakážeme :

Phillips SAA7134 support

Zkompilujte :

make 
make install

A restartujeme.

Po restartu zjistíme, co vše obsahuje složka /dev/dvb/adapter0. Měla by obsahovat :

-ca0
-demux0
-dvr0
-frontrd0
-net0

Mě se neobjevil modul -fronted0, tak jsem ho přidal ručně :

modcongf
--->kernel/drivers/media/dvb/bt8xx

Zde přidáme dvb-bt8xx.

scan kanálů
hg clone http://mercurial.intuxication.org/hg/scan-s2
cd scan-s2
make
./scan-s2 dvb-s/Ku-band/*S23,5E.ini > ~/.szap/channels.conf
Vyladění kanálu Ct24
hg clone http://mercurial.intuxication.org/hg/szap-s2
cd szap-s2
make
./szap-s2 > ~/.szap/channels.conf -4

Dekodování kódovaných kanálů

Instalace a konfigurace openasc-ng

Návod k instalaci.

svn co http://opensvn.csie.org/opensascng opensascng
cd opensascng
./configure
make module
make

Návod ke konfiguraci. Je nutné

Streamování videa

Pro streamováni použijeme program getstream.

apt-get install libevent-dev libglib2.0-dev
wget http://silicon-verl.de/home/flo/projects/streaming/download/getstream2-20081204.tgz
tar xzvf getstream2-20081204.tgz
cd /getstream2-20081204
make

Getstream spustíme:

getstream -c /etc/getstream/getstream.c

Konfigurace :

http {
    8001;
};
adapter 1 {
         packet-buffer 50;
         stat-interval 120;
         stuck-interval 200;
.
         dvb-s {
               lnb {
                    lof1 9750000;
                    lof2 10600000;
                    slof 11700000;
                };
.
               transponder {
                            frequency 12525000;
                            polarisation v;
                            symbol-rate 27500000;
                };
          };
.
          stream {
                  name "ct 24";
                  input {
                         pnr 8006;
                   };
                   output-http {
                               url /tv/ct24;
                   };
                   output-udp {
                              remote-address 239.0.1.4;
                              remote-port 1234;
                              sap { 
                                   scope global;
                                   ttl 4;
                                   playgroup " CZ Tv";
                              };
                    };
           };
.
           stream {
                  name "Tv NOe";
                  input {
                         pnr 8008;
                   };
                   output-http {
                               url /tv/noe;
                   };
                   output-udp {
                               remote-address 239.0.1.5;
                               remote-port 1234;
                               sap {
                                    scope global;
                                    ttl 4;
                                    playgroup "CZ Tv";
                                 };
                    };
           };
. 
             stream {
                    name "CRo 1 Radiozurnal";
                    input {
                           pnr 8018;
                    };
                     output-http {
                                  url /radio/cro1;
                    };
                    output-udp {
                               remote-address 239.0.1.20;
                               remote-port 1234;
                               sap {
                                    scope global;
                                    ttl 4;
                                    playgroup "CZ Radio";
                                }; 
                    };
           };
.
               stream {
                      name "CRo 2 Praha";
                      input {
                             pnr 8019;
                      };
                       output-http {
                                   url /radio/cro2;
                      };
                      output-udp {
                                remote-address 239.0.1.21;
                                remote-port 1234;
                                sap {
                                     scope global;
                                     ttl 4;
                                     playgroup "CZ Radio";
                                }; 
                       };
            };
. 
                stream {
                       name "CRo 3 Vltava";
                       input {
                              pnr 8020;
                       };
                        output-http {
                                    url /radio/cro3;
                       };
                       output-udp {
                                  remote-address 239.0.1.22;
                                  remote-port 1234;
                                  sap {
                                      scope global;
                                      ttl 4;
                                      playgroup "CZ Radio";
                                  }; 
                        };
            };
. 
                 stream {
                        name "Proglas";
                        input {
                               pnr 8021;
                        };
                         output-http {
                                     url /radio/proglas;
                        };
                        output-udp {
                                   remote-address 239.0.1.23;
                                   remote-port 1234;
                                   sap {
                                       scope global;
                                       ttl 4;
                                       playgroup "CZ Radio";
                                   }; 
                        };
            };
.
                 stream {
                        name "CRo 6/CRo 7";
                        input {
                               pnr 8022;
                        };
                         output-http {
                                     url /radio/cro67;
                        };
                        output-udp {
                                    remote-address 239.0.1.24;
                                    remote-port 1234;
                                    sap {
                                         scope global;
                                         ttl 4;
                                         playgroup "CZ Tv";
                                     }; 
                         };
            };
.  
                 stream {
                        name "CRo Region";
                        input {
                               pnr 8023;
                        };
                         output-http {
                                     url /radio/croregion;
                        };
                        output-udp {
                                    remote-address 239.0.1.25;
                                    remote-port 1234;
                                    sap {
                                         scope global;
                                         ttl 4;
                                         playgroup "CZ Radio";
                                     }; 
                         };
            };
.
                 stream {
                        name "BBC CZ";
                        input {
                               pnr 8024;
                        };
                         output-http {
                                     url /radio/bbccz;
                        };
                         output-udp {
                                    remote-address 239.0.1.26;
                                    remote-port 1234;
                                    sap {
                                         scope global;
                                         ttl 4;
                                         playgroup "CZ Radio";
                                    }; 
                        };
            };
. 
                 stream {
                        name "CRo D-dur";
                        input {
                               pnr 8025;
                        };
                         output-http {
                                     url /radio/croddur;
                        };
                       output-udp {
                                  remote-address 239.0.1.27;
                                  remote-port 1234;
                                  sap {
                                       scope global;
                                       ttl 4;
                                       playgroup "CZ Radio";
                                   }; 
                        };
            };
. 
               
                 stream {
                        name "CRo Leonardo";
                        input {
                               pnr 8026;
                        };
                         output-http {
                                     url /radio/croleonardo;
                        };
                        output-udp {
                                   remote-address 239.0.1.28;
                                   remote-port 1234;
                                   sap {
                                       scope global;
                                       ttl 4;
                                       playgroup "CZ Radio";
                                    }; 
                        };
            };
.    
               
                 stream {
                        name "CRo Radio Cesko";
                        input {
                               pnr 8027;
                        };
                         output-http {
                                     url /radio/croradiocesko;
                        };
                         output-udp {
                                  remote-address 239.0.1.29;
                                  remote-port 1234;
                                  sap {
                                       scope global;
                                       ttl 4;
                                       playgroup "CZ Radio";
                                   }; 
                        };
             
            };
. 
                 stream {
                         name "CRo Radio Wave";
                         input {
                                 pnr 8028;
                         };
                          output-http {
                                     url /radio/croradiovawe
                         };
                         output-udp {
                                    remote-address 239.0.1.30;
                                    remote-port 1234;
                                    sap {
                                         scope global;
                                         ttl 4;
                                         playgroup "CZ Radio";
                                    }; 
                         };
            };    
};

Adresní plán

Předpokládané multicast adresy jednotlivých televizních a rozhlasových kanálů :

Tv kanál IP adresa Port Radio IP adresa Port
CT 1 239.0.1.1 1234 CRo 1 Radiozurnal 239.0.1.20 1234
CT 2 239.0.1.2 1234 CRo 2 Praha 239.0.1.21 1234
CT 4 Sport 239.0.1.3 1234 CRo 3 Vltava 239.0.1.22 1234
CT 24 239.0.1.4 1234 Proglas 239.0.1.23 1234
Tv Noe 239.0.1.5 1234 CRo 6/CRo 7 239.0.1.24 1234
Tv Nova 239.0.1.6 1234 CRo Region 239.0.1.25 1234
Nova Cinema 239.0.1.7 1234 BBC CZ 239.0.1.26 1234
Prima COOL 239.0.1.8 1234 CRo D-dur 239.0.1.27 1234
Tv Prima 239.0.1.9 1234 CRo Leonardo 239.0.1.28 1234
Tv Barandov 239.0.1.10 1234 CRo Radio Cesko 239.0.1.29 1234
Tv JoJ 239.0.1.11 1234 CRo Radio Wave 239.0.1.30 1234
JoJ+ 239.0.1.12 1234
STV 1 239.0.1.13 1234
STV 2 239.0.1.14 1234
STV 3 239.0.1.15 1234
Markíza 239.0.1.16 1234
Očko 239.0.1.17 1234
Z 1 239.0.1.18 1234
Public Tv 239.0.1.19 1234


Strana klientů

Set-top boxy pro IPTV

Speciální krabičky

Hauppauge MediaMVP

  • Nejlevnější Linuxový set-top box, použitelný pro příjem IPTV - cena 2000 Kč vč. DPH
  • Asi jediný komerční set-top box, pro nějž je vyvíjen regulérní OpenSource firmware, další info ve Wiki (pozn. autora: jasně, DreamBox a jeho klony mají také alternativní firmwary, ale kde je dokumentace? Kde jsou jejich zdrojáky? Ony by asi byly, ale protože každý Dreambox má čtečku CI karet a DVB tuner a protože všechny Linuxové firmwary umožňují využít tento HW ke sdílení jedné CI karty mezi nekonečný počet uživatelů a protože v některých zemích - např. v Německu je trestné i šíření třeba jen informací o tom, jak překonat ochranu autorských práv, jsou tyto firmwary vyvíjeny v modu ilegality - tj. na webu najdete v podstatě jen binárky, chybí jakákoli dokumentace - jak uživatelská, tak programátorská, prostě hrůza.

Linksys KISS DP 600

AmiNet 110, AmiNet 130, Motorola VIP-1910, ...

aneb set-top boxy, používané komerčními provozovateli IPTV v ČR:

Všechny tyto boxy mají nějaký SmartCard reader, otázka je, jestli by bylo možné v rozchodit např. kartu CS link a dekódovat pomocí ní kódovaný stream s obsahem celého satelitního transponderu ?

Dreambox a jeho klony

Dreambox není určen primárně pro IPTV, je to digitální satelitní přijímač (DVB-S), existuje i verze pro DVB-T. Nicméně je to linuxová krabička s ethernetem a velmi malou spotřebou, existuje k němu SDK, takže pro IPTV jej rozhodně lze využít. Pokud někdo potřebuje satelitní přijímač se schopností IPTV, není asi lepší volba.

Inetbox 300 S

Nejlevnější klon DM500s, momentálně dostupný za 3000 Kč s DPH

IPBOX 200s

  • IBM Power PC 405, 350MIPS, Data/Vyrovnávací paměť - 16KB/16KB, Flash Memory 8MB, SDRAM 32MB
  • Čtečka Smart karet (X-Crypt CAS, Firecrypt CAS )
  • Propojení s PC pomocí Ethernet 10/100 , RS 232
  • Až 4000 předvoleb
  • podpora jedno a dvojúrovňových DiSEqC 1.0 , 1.1 prepínačů a motorů DiSEqC 1.2 , USALS
  • Polarizácia 13/18V (max. 400mA)
  • Digitální optický výstup SPDIF s podporou AC3
  • Ethernet 10/100.
  • Sériové rozhranie 9 Pin D-Sub, RS 232C
  • Vstup/Výstup
    • VCR SCART
    • TV SCART
    • RCA (CINCH)
    • 1 x Video, 2 x Audio
  • Napájanie AC90-240V, 50Hz/60Hz, Príkon max. 30W

IPBOX 250s PVR

  • 64MB SDRAM, 8MB Flash

DreamBox 500s

  • 250 MHz IBM PowerPC Procesor (350 Mips), 32MB RAM, Flash??
  • < 10W / 12V

Dreambox 600 PVR

  • 32 MByte RAM, 96 MByte Ram
  • < 15W / 12V

Home Theatre PC (HTPC)

Home Theatre PC - česky něco jako "PC pro domácí kino" - není set-top box, ale plnohodnotný počítač, na kterém kromě TV, videa, DVD můžete zároveň i normálně pracovat, hrát hry, brouzdat po internetu... Postavit HTPC není sranda, jak HW tak SW konfigurace obnáší spoustu zádrhelů, kterým se musíte vyvarovat. Je téměř nemožné postavit z běžně dostupných PC komponent HTPC s tak nízkou spotřebou a tak nízkou cenou, jako mají set-top-boxy - takže přes velké naděje, které přinesly desky mini-ITX, bych do této varianty asi nakonec nešel (nemám tolik peněz a mám "zelené" myšlení).