DVB Howto
(Není zobrazeno 9 mezilehlých verzí od 5 uživatelů.) | |||
Řádka 15: | Řádka 15: | ||
Multimedia video controller: ... | Multimedia video controller: ... | ||
Multimedia controller: ... | Multimedia controller: ... | ||
− | |||
− | |||
== Kernel 2.6. == | == 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. | + | 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 | # lsmod | ||
Řádka 137: | Řádka 135: | ||
SystemLog = "disable" # logování do systemlog zakázané | SystemLog = "disable" # logování do systemlog zakázané | ||
END | END | ||
− | |||
## Sekce Groups – slouží na definování skupin uživatelů a jejich práv | ## Sekce Groups – slouží na definování skupin uživatelů a jejich práv | ||
BEGIN "Groups" | BEGIN "Groups" | ||
Řádka 143: | Řádka 140: | ||
master = "help|browse|start|resume|suspend|stop|shutdown|logout|config|program|input|channel|show" | master = "help|browse|start|resume|suspend|stop|shutdown|logout|config|program|input|channel|show" | ||
END | END | ||
− | + | ## Sekcia Users – slouží na definování uživatelů s právy do administračního rozhraní. | |
− | ## 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é. | + | ##Hesla musí být zakryptování v linuxu pomocí crypt, či mkpasswd. Ve windows musí být nešifrované. |
BEGIN "Users" | BEGIN "Users" | ||
monitor = "FtoBbPepmlbRs:monitor" | monitor = "FtoBbPepmlbRs:monitor" | ||
cooler = "1DNOHM5/7Gbac:master" | cooler = "1DNOHM5/7Gbac:master" | ||
END | END | ||
− | |||
## Sekcia Telnet – konfigurácia telnet rozhrania | ## Sekcia Telnet – konfigurácia telnet rozhrania | ||
BEGIN "Telnet" | BEGIN "Telnet" | ||
Řádka 155: | Řádka 151: | ||
LocalPort = "9999" # číslo portu | LocalPort = "9999" # číslo portu | ||
END | END | ||
− | |||
− | |||
## Sekce inputs na definování vstupů | ## Sekce inputs na definování vstupů | ||
BEGIN "Inputs" | BEGIN "Inputs" | ||
Řádka 162: | Řádka 156: | ||
dvb1 = "dvb" # DVB karta číslo 2 | dvb1 = "dvb" # DVB karta číslo 2 | ||
END | END | ||
− | |||
− | |||
## Definice sekcí definovaných v Inputs | ## Definice sekcí definovaných v Inputs | ||
BEGIN "dvb0" | BEGIN "dvb0" | ||
DeviceNumber = "0" # /dev/dvb/adapter<i> číslo zariadenia | DeviceNumber = "0" # /dev/dvb/adapter<i> číslo zariadenia | ||
− | SendMethod = "0" # 0 – | + | SendMethod = "0" # 0 – Posílá všechny PID, 1 – Posílá jen MPEG2 data |
END | END | ||
BEGIN "dvb1" | BEGIN "dvb1" | ||
Řádka 173: | Řádka 165: | ||
SendMethod = "0" | SendMethod = "0" | ||
END | END | ||
− | |||
− | |||
## Definice vysílaných kanálů | ## Definice vysílaných kanálů | ||
BEGIN "Channels" | BEGIN "Channels" | ||
Řádka 180: | Řádka 170: | ||
client2 = "network" # a kanál vysílaný na unicast (jeden host) | client2 = "network" # a kanál vysílaný na unicast (jeden host) | ||
END | END | ||
− | |||
− | |||
## Definice multicast1 a client2 | ## Definice multicast1 a client2 | ||
BEGIN "multicast1” | BEGIN "multicast1” | ||
Řádka 189: | Řádka 177: | ||
DstPort = "1234" # cílový port | DstPort = "1234" # cílový port | ||
END | END | ||
− | |||
BEGIN "client2" | BEGIN "client2" | ||
DstHost = "147.32.127.214" | DstHost = "147.32.127.214" | ||
DstPort = "11111" | DstPort = "11111" | ||
END | END | ||
− | + | ## Definování prořadů které se při startu spustí | |
− | + | ||
− | ## | + | |
BEGIN "LaunchOnStartUp" | BEGIN "LaunchOnStartUp" | ||
command1 = "start CT1 multicast1 dvb0 –rtp" | command1 = "start CT1 multicast1 dvb0 –rtp" | ||
Řádka 205: | Řádka 190: | ||
www.linuxtv.org | www.linuxtv.org | ||
+ | |||
www.videolan.org | www.videolan.org | ||
+ | |||
root@dvb.sh.cvut.cz | root@dvb.sh.cvut.cz | ||
+ | |||
+ | |||
+ | |||
+ | Rastislav Macko (cooler) |
Aktuální verze z 10. 4. 2011, 18:33
Obsah |
[editovat] 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: ...
[editovat] 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í.
[editovat] 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ší.
[editovat] 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
[editovat] 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 [...]
[editovat] 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
[editovat] Zdroje informací
www.linuxtv.org
www.videolan.org
root@dvb.sh.cvut.cz
Rastislav Macko (cooler)