IPTV

Z Wiki UnArt Slavičín
Verze z 5. 7. 2011, 20:33, kterou vytvořil Sevcik.roman (diskuse | příspěvky) (→‎Dešifrování videa/kanálů)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaciSkočit na vyhledávání

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í).