240px-Diamond warning sign (Vienna Convention style).svg.png Content of this wiki is DEPRECATED 240px-Diamond warning sign (Vienna Convention style).svg.png

DVB Howto

Z old-wiki.siliconhill.cz
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
Řádka 1: Řádka 1:
== Obecné informace ==
+
http://www.textliaclida.com
 +
== 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.  
+
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  
+
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.  
+
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'''  
+
Může nám pomoci výstup z příkazu: '''lspci'''  
  
  
Důležité jsou řádky:  
+
Důležité jsou řádky:  
  
 
  Multimedia video controller: ...
 
  Multimedia video controller: ...
Řádka 19: Řádka 20:
 
== 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
 
  # modprobe
 
  # modprobe
  
Pokud kernel kompilujete sami, najdete všechny podporované karty v  
+
Pokud kernel kompilujete sami, najdete vÅ¡echny podporované karty v  
  
  
Řádka 30: Řádka 31:
 
   
 
   
  
Následně, po úspešném zavedení modulu, by sa mělo vytvořit nové zařízení.  
+
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 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í.  
+
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 ==
+
== První použití DVB tools ==
  
V první řadě si musíte samotný balík dvb-utils nainstalovat. V debianu pomocí příkazu:  
+
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ř.  
+
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 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  
+
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 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.  
+
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 uvidíte, že výstup dává smysl, vytvořte soubor s kanály
+
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, ž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:  
+
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.  
+
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:  
+
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 76: Řádka 77:
 
  ...
 
  ...
  
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ší.  
+
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 82: Řádka 83:
 
== Utility ==
 
== Utility ==
 
   
 
   
'''dvbtraffic, dvbdata''' – zobrazí informace, které přichází na každý kanál. Užitečné při ladění.  
+
'''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, ale více možností než dvbtraffic.  
+
'''dvbsoop''' – splňuje stejnou funkci, má ale více možností než dvbtraffic.  
  
'''dvbstream''' program na uložení streamu např. do souboru.  
+
'''dvbstream''' – program na uložení streamu např. do souboru.  
  
  
 
'''Streamovanie pomocou VLS'''  
 
'''Streamovanie pomocou VLS'''  
  
VideoLAN server. Domovská stránka http://www.videolan.org.  
+
VideoLAN server. Domovská stránka http://www.videolan.org.  
  
Na nainstalování VLS potřebujeme některé dodatečné knihovny.  
+
Na nainstalování VLS potřebujeme některé dodatečné knihovny.  
  
 
  # libdvbpsi
 
  # libdvbpsi
 
  # libdvb
 
  # libdvb
  
Pokud máte nainstalované tyto knihovny, zkuste si stahnout samotný VLS a nainstalovat.  
+
Pokud máte nainstalované tyto knihovny, zkuste si stahnout samotný VLS a nainstalovat.  
  
Např.  
+
Např.  
  
 
  # tar -xvzf videolan-server.tar.gz
 
  # tar -xvzf videolan-server.tar.gz
  # ./configure --enable-dvb –with-dvb=CESTA_K_OVLADACOM --with-libdvb=CESTA_K_LIBDVB
+
  # ./configure --enable-dvb –with-dvb=CESTA_K_OVLADACOM --with-libdvb=CESTA_K_LIBDVB
 
  # make
 
  # make
 
  # make install
 
  # make install
  
  
== Konfigurák vls.cfg ==
+
== 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.  
+
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 125: Řádka 126:
  
  
== Příkladný konfigurák s komentáři ==
+
== Příkladný konfigurák s komentáři ==
  
Najlepší teorie je praxe, takže následuje část příkladného konfiguráku 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í
+
  ## Sekce Vls slouží k určení obecných nastavení, např. logování
 
  BEGIN "Vls"
 
  BEGIN "Vls"
   LogFile = "vls.log"   # logovací soubor
+
   LogFile = "vls.log"   # logovací soubor
   ScreenLog = "enable"   # logování do konzole povoleno
+
   ScreenLog = "enable"   # logování do konzole povoleno
   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"
 
   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 – 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"
 
   Domain = "Inet6" # Inet4 alebo Inet6
 
   Domain = "Inet6" # Inet4 alebo Inet6
   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"
   dvb0          = "dvb"                # DVB karta číslo 1
+
   dvb0          = "dvb"                # DVB karta číslo 1
   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 – Posílá všechny PID, 1 – Posílá jen MPEG2 data
+
   SendMethod  = "0" # 0 – Posílá vÅ¡echny PID, 1 – Posílá jen MPEG2 data
 
  END
 
  END
 
  BEGIN "dvb1"
 
  BEGIN "dvb1"
Řádka 165: Řádka 166:
 
   SendMethod  = "0"
 
   SendMethod  = "0"
 
  END
 
  END
  ## Definice vysílaných kanálů
+
  ## Definice vysílaných kanálů
 
  BEGIN "Channels"
 
  BEGIN "Channels"
   multicast1    = "network" # definujeme kanál vysílaný multicastem
+
   multicast1    = "network" # definujeme kanál vysílaný multicastem
   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”
 
   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" # multicastová cílová adresa
+
   DstHost = "239.194.10.11" # multicastová cílová adresa
   DstPort = "1234" # cílový port
+
   DstPort = "1234" # cílový port
 
  END
 
  END
 
  BEGIN "client2"
 
  BEGIN "client2"
Řádka 181: Řádka 182:
 
   DstPort = "11111"
 
   DstPort = "11111"
 
  END
 
  END
  ## Definování prořadů které se při startu spustí
+
  ## 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"
   command2 = "start OCKO-TV client2 dvb1 –rtp"
+
   command2 = "start OCKO-TV client2 dvb1 –rtp"
 
  END
 
  END
  
==Zdroje informací==
+
==Zdroje informací==
  
 
www.linuxtv.org
 
www.linuxtv.org

Verze z 22. 5. 2009, 13:49

http://www.textliaclida.com

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