DVB Howto
Obsah |
Obecné informace
Tento návod obsahuje informace jako si nainstalovat DVB pro koncového uživatele a následně streamovat do sítě pomocí VLS.
Před koupením DVB karty by jste se nejprve měli přesvědčit, že je tato karta skutočně v seznamu podporovaných DVB karet, ktoré můžete nájít např. zde
Pro zakoupení karty je důležité zjistit čip a výrobce, aby jsme věděli jaké ovladače na ně máme použít.
Může nám pomoci výstup z příkazu: lspci
Důležité jsou řádky:
Multimedia video controller: ... Multimedia controller: ...
Kernel 2.6.
Pokud máte nový překompilovaný kernel, tak nejprve ověřte zda je pro vaši kartu dostupný modul a případně ho zaveďte.
# lsmod # modprobe
Pokud kernel kompilujete sami, najdete všechny podporované karty v
Device Drivers -> Multimedia Devices -> Digital Video Broadcasting Devices
Následně, po úspešném zavedení modulu, by sa mělo vytvořit nové zařízení.
/dev/dvb/adapter0/
Pokud jste tento adresář po zavedení modulu neobjevili, tak něco neproběhlo správně. Podotýkam, že není potřeba vytvářet ho ručně, vytvoří se automaticky sám. V případě problémů sa zkuste podívat do dmesg logu, kde by měla být příčnina neůspěšného zavedení.
První použití DVB tools
V první řadě si musíte samotný balík dvb-utils nainstalovat. V debianu pomocí příkazu:
# apt-get install dvb-utils
První krok je proskenovat stanice, které jsme schopni prijímat. V různých distribucích můžeme najít program, který je součástí právě zmiňovaných dvb-utils. Např.
scan, scandvb,dvbscan
Program ale musí samozrejmě vědět informace o kanálech pro naši lokaci. Tyto může získtat ze souborů, které jsou součástí většiny distribučních balíků. Můžeme je najít např. v
/usr/share/doc/dvb-utils/examples/scan/dvb-t/
Soubor který hledáme by měl mít formát cc-Ttttt, kde cc je kód země a Ttttt je jméno vysílače pro danou oblast.
# scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/cz-CRa
Pokud uvidíte, že výstup dává smysl, vytvořte soubor s kanály
# mkdir /root/.tzap # scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/cz-CRa > /root/.tzap/channels.conf
To, že sa vam podaří proskenovat stanice ještě neznamená, že můžete něco přijímat. Jeden řádek v channels.conf by měl vypadat např. takto:
CTSPORT:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1025:1041:4
První informace je název kanálu, druhá je frekvence atd.
Pokud chceme nějaký kanál naladit a oveřit, zda má náš přijímač dostatečný signál, uděláme to použitim programu tzap:
# tzap 24cz using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' tuning to 778000000 Hz video pid 0x040f, audio pid 0x040e status 1f | signal 5100 | snr 6200 | ber 00000000 | unc 00000000 | FE_HAS_LOCK status 1f | signal 5100 | snr 6200 | ber 00000000 | unc 00000000 | FE_HAS_LOCK status 1f | signal 5100 | snr 6200 | ber 00000000 | unc 00000000 | FE_HAS_LOCK# ...
Ne všechny čísla musí být implementované ve vašich driverech, ale dobrý signál je > 8000, status 1f (všetky bity nastavené), srn (poměr signálu k šumu) by měl být> 8000, ber (úroveň chybovosti) čím menší, tím lepší, unc (neopraviteľné bloky) čím menší, tím lepší.
Utility
dvbtraffic, dvbdata – zobrazí informace, které přichází na každý kanál. Užitečné při ladění.
dvbsoop – splňuje stejnou funkci, má ale více možností než dvbtraffic.
dvbstream – program na uložení streamu např. do souboru.
Streamovanie pomocou VLS
VideoLAN server. Domovská stránka http://www.videolan.org.
Na nainstalování VLS potřebujeme některé dodatečné knihovny.
# libdvbpsi # libdvb
Pokud máte nainstalované tyto knihovny, zkuste si stahnout samotný VLS a nainstalovat.
Např.
# tar -xvzf videolan-server.tar.gz # ./configure --enable-dvb –with-dvb=CESTA_K_OVLADACOM --with-libdvb=CESTA_K_LIBDVB # make # make install
Konfigurák vls.cfg
VLS konfigurační soubor je rozdělený do sekcí a každá sekce může obsahovat několik proměnných.
BEGIN "FirstSection" Variable1 = "value1" Variable2 = "value2" [...] END BEGIN "SecondSection" Variable1 = "value1" Variable3 = "value3" [...] END [...]
Příkladný konfigurák s komentáři
Najlepší teorie je praxe, takže následuje část příkladného konfiguráku s komentáři.
## Sekce Vls slouží k určení obecných nastavení, např. logování BEGIN "Vls" LogFile = "vls.log" # logovací soubor ScreenLog = "enable" # logování do konzole povoleno SystemLog = "disable" # logování do systemlog zakázané END ## Sekce Groups – slouží na definování skupin uživatelů a jejich práv BEGIN "Groups" monitor = "help|browse|logout" master = "help|browse|start|resume|suspend|stop|shutdown|logout|config|program|input|channel|show" END ## Sekcia Users – slouží na definování uživatelů s právy do administračního rozhraní. ##Hesla musí být zakryptování v linuxu pomocí crypt, či mkpasswd. Ve windows musí být nešifrované. BEGIN "Users" monitor = "FtoBbPepmlbRs:monitor" cooler = "1DNOHM5/7Gbac:master" END ## Sekcia Telnet – konfigurácia telnet rozhrania BEGIN "Telnet" Domain = "Inet6" # Inet4 alebo Inet6 LocalPort = "9999" # číslo portu END ## Sekce inputs na definování vstupů BEGIN "Inputs" dvb0 = "dvb" # DVB karta číslo 1 dvb1 = "dvb" # DVB karta číslo 2 END ## Definice sekcí definovaných v Inputs BEGIN "dvb0" DeviceNumber = "0" # /dev/dvb/adapter číslo zariadenia SendMethod = "0" # 0 – Posílá všechny PID, 1 – Posílá jen MPEG2 data END BEGIN "dvb1" DeviceNumber = "1" SendMethod = "0" END ## Definice vysílaných kanálů BEGIN "Channels" multicast1 = "network" # definujeme kanál vysílaný multicastem client2 = "network" # a kanál vysílaný na unicast (jeden host) END ## Definice multicast1 a client2 BEGIN "multicast1” Type = "multicast" # typ je multicast TTL = "10" # Time To Live DstHost = "239.194.10.11" # multicastová cílová adresa DstPort = "1234" # cílový port END BEGIN "client2" DstHost = "147.32.127.214" DstPort = "11111" END ## Definování prořadů které se při startu spustí BEGIN "LaunchOnStartUp" command1 = "start CT1 multicast1 dvb0 –rtp" command2 = "start OCKO-TV client2 dvb1 –rtp" END
Zdroje informací
www.linuxtv.org
www.videolan.org
root@dvb.sh.cvut.cz
Rastislav Macko (cooler)