DVB Howto
Řádka 1: | Řádka 1: | ||
− | + | == Obecné informace == | |
− | == | + | |
− | Tento | + | 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 | + | 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 video controller: ... | ||
Řádka 20: | Řádka 19: | ||
== Kernel 2.6. == | == Kernel 2.6. == | ||
− | Pokud | + | 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 | ||
# modprobe | # modprobe | ||
− | Pokud kernel kompilujete sami, najdete | + | Pokud kernel kompilujete sami, najdete všechny podporované karty v |
Řádka 31: | Řádka 30: | ||
− | + | Následně, po úspešném zavedení modulu, by sa mělo vytvořit nové zařízení. | |
/dev/dvb/adapter0/ | /dev/dvb/adapter0/ | ||
− | Pokud jste tento | + | 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 | + | V první řadě si musíte samotný balík dvb-utils nainstalovat. V debianu pomocí příkazu: |
# apt-get install dvb-utils | # 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''' | '''scan, scandvb,dvbscan''' | ||
− | Program ale | + | 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/ | /usr/share/doc/dvb-utils/examples/scan/dvb-t/ | ||
− | Soubor | + | 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 | # scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/cz-CRa | ||
− | Pokud | + | Pokud uvidíte, že výstup dává smysl, vytvořte soubor s kanály |
# mkdir /root/.tzap | # mkdir /root/.tzap | ||
# scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/cz-CRa > /root/.tzap/channels.conf | # scan /usr/share/doc/dvb-utils/examples/scan/dvb-t/cz-CRa > /root/.tzap/channels.conf | ||
− | To, | + | 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 | 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 | + | 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 | # tzap 24cz | ||
Řádka 77: | Řádka 76: | ||
... | ... | ||
− | Ne | + | 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ší. |
Řádka 83: | Řádka 82: | ||
== Utility == | == Utility == | ||
− | '''dvbtraffic, dvbdata''' | + | '''dvbtraffic, dvbdata''' – zobrazí informace, které přichází na každý kanál. Užitečné při ladění. |
− | '''dvbsoop''' | + | '''dvbsoop''' – splňuje stejnou funkci, má ale více možností než dvbtraffic. |
− | '''dvbstream''' | + | '''dvbstream''' – program na uložení streamu např. do souboru. |
'''Streamovanie pomocou VLS''' | '''Streamovanie pomocou VLS''' | ||
− | VideoLAN server. | + | VideoLAN server. Domovská stránka http://www.videolan.org. |
− | Na | + | Na nainstalování VLS potřebujeme některé dodatečné knihovny. |
# libdvbpsi | # libdvbpsi | ||
# libdvb | # libdvb | ||
− | Pokud | + | Pokud máte nainstalované tyto knihovny, zkuste si stahnout samotný VLS a nainstalovat. |
− | + | Např. | |
# tar -xvzf videolan-server.tar.gz | # tar -xvzf videolan-server.tar.gz | ||
− | # ./configure --enable-dvb | + | # ./configure --enable-dvb –with-dvb=CESTA_K_OVLADACOM --with-libdvb=CESTA_K_LIBDVB |
# make | # make | ||
# make install | # make install | ||
− | == | + | == Konfigurák vls.cfg == |
− | VLS | + | VLS konfigurační soubor je rozdělený do sekcí a každá sekce může obsahovat několik proměnných. |
BEGIN "FirstSection" | BEGIN "FirstSection" | ||
Řádka 126: | Řádka 125: | ||
− | == | + | == 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 | + | ## Sekce Vls slouží k určení obecných nastavení, např. logování |
BEGIN "Vls" | BEGIN "Vls" | ||
− | LogFile = "vls.log" # | + | LogFile = "vls.log" # logovací soubor |
− | ScreenLog = "enable" # | + | ScreenLog = "enable" # logování do konzole povoleno |
− | SystemLog = "disable" # | + | SystemLog = "disable" # logování do systemlog zakázané |
END | END | ||
− | ## Sekce Groups | + | ## Sekce Groups – slouží na definování skupin uživatelů a jejich práv |
BEGIN "Groups" | BEGIN "Groups" | ||
monitor = "help|browse|logout" | monitor = "help|browse|logout" | ||
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 | + | ## Sekcia Users – slouží na definování uživatelů s právy do administračního rozhraní. |
− | ##Hesla | + | ##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 | + | ## Sekcia Telnet – konfigurácia telnet rozhrania |
BEGIN "Telnet" | BEGIN "Telnet" | ||
Domain = "Inet6" # Inet4 alebo Inet6 | Domain = "Inet6" # Inet4 alebo Inet6 | ||
− | LocalPort = "9999" # | + | LocalPort = "9999" # číslo portu |
END | END | ||
− | ## Sekce inputs na | + | ## Sekce inputs na definování vstupů |
BEGIN "Inputs" | BEGIN "Inputs" | ||
− | dvb0 = "dvb" # DVB karta | + | dvb0 = "dvb" # DVB karta číslo 1 |
− | dvb1 = "dvb" # DVB karta | + | dvb1 = "dvb" # DVB karta číslo 2 |
END | END | ||
− | ## Definice | + | ## Definice sekcí definovaných v Inputs |
BEGIN "dvb0" | BEGIN "dvb0" | ||
− | DeviceNumber = "0" # /dev/dvb/adapter<i> | + | 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 166: | Řádka 165: | ||
SendMethod = "0" | SendMethod = "0" | ||
END | END | ||
− | ## Definice | + | ## Definice vysílaných kanálů |
BEGIN "Channels" | BEGIN "Channels" | ||
− | multicast1 = "network" # definujeme | + | multicast1 = "network" # definujeme kanál vysílaný multicastem |
− | client2 = "network" # a | + | client2 = "network" # a kanál vysílaný na unicast (jeden host) |
END | END | ||
## Definice multicast1 a client2 | ## Definice multicast1 a client2 | ||
− | BEGIN " | + | BEGIN "multicast1” |
Type = "multicast" # typ je multicast | Type = "multicast" # typ je multicast | ||
TTL = "10" # Time To Live | TTL = "10" # Time To Live | ||
− | DstHost = "239.194.10.11" # | + | DstHost = "239.194.10.11" # multicastová cílová adresa |
− | DstPort = "1234" # | + | DstPort = "1234" # cílový port |
END | END | ||
BEGIN "client2" | BEGIN "client2" | ||
Řádka 182: | Řádka 181: | ||
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 | + | command1 = "start CT1 multicast1 dvb0 –rtp" |
− | command2 = "start OCKO-TV client2 dvb1 | + | command2 = "start OCKO-TV client2 dvb1 –rtp" |
END | END | ||
− | ==Zdroje | + | ==Zdroje informací== |
www.linuxtv.org | www.linuxtv.org |
Verze z 21. 7. 2009, 09:07
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)