DVB Howto

Z wiki.siliconhill.cz
Přejít na: navigace, hledání

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)

Jmenné prostory

Varianty
Akce