IPTV: Porovnání verzí

Z Wiki UnArt Slavičín
Skočit na navigaciSkočit na vyhledávání
 
(Není zobrazeno 5 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
=Strana serveru=
==Strana serveru==
*[http://www.abclinuxu.cz/show/188236#5 Diskuse k článku Getstream+DVB-T na Abclinuxu] - proč nepoužívat Getstream ani VLC, ale VLS
*[http://www.czela.net/wiki/index.php/Video-on-demand Stránky na Czela.net]
*[http://www.cssf.cz/showthread.php?p=246412#post246412 Rozchození EMM u CS Link]
*[http://www.cssf.cz/archive/index.php/t-22458.html  Rozchození EMM u CS Link - 2]
*[http://209.85.135.104/search?q=cache:V_pyqGoooHwJ:www.her-ur.org/navody-vdr/vdr-na-serveru+cs+link+linux&hl=cs&client=firefox-a&gl=cz&strip=1 Rozchození pluginu pro CI kartu s VDR]


===DVB-S karta===
Kanály, které budeme streamovat do sítě je potřeba nějakým způsobem získat. Máme na výběr pozemní digitální vysílání, satelitní digitální vysílání nebo kabelové digitální vysílání. U nás je možnost pouze satelitního nebo pozemního digitálního.
Bude použita karta Skystar HD2
*Karta, určená pro příjem digitálního vysílání ve formě DVB-S2 - cena cca [http://www.czechcomputer.cz/product_doc-202576A52527F435C12573FE003B679E.html 2500 Kč vč. DPH]


==Instalace==
===Pozemní digitální===
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 
[ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.tar.gz 2.6.30.] a provést kompilaci.


====Prerekvizty====
Veškeré programy jsou nekódované(FTA) a dají se bez problémů streamovat např. pomocí getstreamu. Platí co jeden multiplex to jeden tuner.


apt-get install gcc cpp g++ make
===Satelitní digitální===


====Kompilace nového jádra====
Tady je problém, že většina programů je šifrovaná a před samotným streamováním je nutné programy dešifrovat. K tomu jsou potřeba klíče z legálně držené karty (Skylink,Gital,...). Kartu můžeme umístit do čtečky karet a zapojit do USB nebo COM1 nebo přijímat klíče "po síti"Pro samotné rozšifrování lze použít sasc-ng nebo vdr s modulem sc. Samotné streamování lze pomocí mumudvb, vlc, gestreamem, atd.
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
====Dešifrování videa/kanálů====
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====
Jak použít sasc-ng pro dešifrování kanálu najdete [http://wiki.slfree.net/index.php/Instalace_Sasc-ng zde]. Sasc-ng vytvoří virtuální adaptér, který je spojený s původním adaptérem a postupně dešifruje data. Virtuální adaptér obsahuje již dešifrované kanály. Samozřejmě musíte mít na dané kartě daný kanál zaplacený.
=====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


Zkompilujte :
===Streamování videa===
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=====
[https://opensvn.csie.org/traccgi/opensascng/wiki/install Návod] k instalaci.
svn co http://opensvn.csie.org/opensascng opensascng
cd opensascng
./configure
make module
make
[http://www.christhonie.co.za/node/9 Návod] ke konfiguraci.
Je nutné
===Streamování videa===
Pro streamováni použijeme program getstream.
Pro streamováni použijeme program getstream.


Řádek 610: Řádek 544:
|239.0.1.48
|239.0.1.48
|1234
|1234
|-
|
|
|
|
|}
|}



Aktuální verze z 5. 7. 2011, 20:33

Strana serveru

Kanály, které budeme streamovat do sítě je potřeba nějakým způsobem získat. Máme na výběr pozemní digitální vysílání, satelitní digitální vysílání nebo kabelové digitální vysílání. U nás je možnost pouze satelitního nebo pozemního digitálního.

Pozemní digitální

Veškeré programy jsou nekódované(FTA) a dají se bez problémů streamovat např. pomocí getstreamu. Platí co jeden multiplex to jeden tuner.

Satelitní digitální

Tady je problém, že většina programů je šifrovaná a před samotným streamováním je nutné programy dešifrovat. K tomu jsou potřeba klíče z legálně držené karty (Skylink,Gital,...). Kartu můžeme umístit do čtečky karet a zapojit do USB nebo COM1 nebo přijímat klíče "po síti". Pro samotné rozšifrování lze použít sasc-ng nebo vdr s modulem sc. Samotné streamování lze pomocí mumudvb, vlc, gestreamem, atd.

Dešifrování videa/kanálů

Jak použít sasc-ng pro dešifrování kanálu najdete zde. Sasc-ng vytvoří virtuální adaptér, který je spojený s původním adaptérem a postupně dešifruje data. Virtuální adaptér obsahuje již dešifrované kanály. Samozřejmě musíte mít na dané kartě daný kanál zaplacený.

Streamování videa

Pro streamováni použijeme program getstream.

apt-get install libevent-dev libglib2.0-dev libssl-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 Radio BEAT 239.0.1.31 1234
STV 1 239.0.1.13 1234 slovensko 239.0.1.32 1234
STV 2 239.0.1.14 1234 Devin 239.0.1.33 1234
STV 3 239.0.1.15 1234 Radio FM 239.0.1.34 1234
Markíza 239.0.1.16 1234 Slovakia 239.0.1.35 1234
Očko 239.0.1.17 1234 FUN-R 239.0.1.36 1234
Z 1 239.0.1.18 1234 OKEY S 239.0.1.37 1234
Public Tv 239.0.1.19 1234 VIVA 239.0.1.38 1234
Regina BA 239.0.1.39 1234
Regina BB 239.0.1.40 1234
Regina KE 239.0.1.41 1234
Patria RD 239.0.1.42 1234
Radio 7 239.0.1.43 1234
Patria FM 239.0.1.44 1234
Lumen 239.0.1.45 1234
Radio Hej 239.0.1.46 1234
Jemne melodie 239.0.1.47 1234
OKEY V 239.0.1.48 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í).