Televisión Digital Terrestre en GNU/Linux
Pablo Santamaría
[email protected]
[email protected]
http://triton.fcaglp.unlp.edu.ar
Universidad Nacional de La Plata / CONICET
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
1/34
Mangrullo y Sifón.
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
2/34
Transmisión.
Características de la TDT.
Señales digitales en ISDB-Tb (Integrated Services of Digital
Broadcasting – Terrestrial):
Compresión (H264 y AAC).
Implementación de técnicas de detección y corrección de
errores.
Soportan más las fallas que las analógicas (no hay “lluvia” ni
“fantasmas”).
Multiprogramación: varias señales en un mismo canal.
Calidad de video HD, SD y LD, audio estéreo.
One Seg: Señal dedicada a dispositivos móviles.
Interactividad (Ginga).
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
3/34
Transmisión.
Antenas transmisoras.
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
4/34
Transmisión.
Canales en emisión.
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
5/34
Equipamiento.
Computadora con GNU/Linux.
Sistemas de prueba:
Workstation: AMD
Phenom x4, Mem
8GB, GeForce 8200
Netbook: Asus Eeepc,
Atom N270, Mem
1GB, Intel 945GME
Slackware Linux 13.1
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
6/34
Equipamiento
Dongle USB.
PixelView PlayTV USB SBTVD FullSeg:
Dispositivo USB2.0.
Modelo:
PV-D231U(RN)-F.
Chipset: DIB8076.
Norma TVD:
ISDB-Tb (FullSeg).
Antena 1/4 λ.
Control remoto.
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
7/34
Equipamiento
Antenas externas de recepción.
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
8/34
Conectando el dongle.
Soporte del hardware
Soporte provisto por:
kernel: subsistema DVB (Digital Video Broadcast)
espacio de usuario: dvb-apps
http://linuxtv.org
Se requiere el firmware dvb-usb-dib0700.1.120.fw
Descargarlo de http://linuxtv.org/downloads/firmware
# cp dvb-usb-dib0700.1.120.fw /lib/firmware
Saltear detalles
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
9/34
Conectando el dongle.
Soporte del hardware
Soporte provisto por:
kernel: subsistema DVB (Digital Video Broadcast)
espacio de usuario: dvb-apps
http://linuxtv.org
Se requiere el firmware dvb-usb-dib0700.1.120.fw
Descargarlo de http://linuxtv.org/downloads/firmware
# cp dvb-usb-dib0700.1.120.fw /lib/firmware
Saltear detalles
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
9/34
Conectando el dongle.
El sistema USB
Identificación (vendor/product ID):
$ /sbin/lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 1554:5010 Prolink Microsystems Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
10/34
Conectando el dongle.
El sistema USB
Identificación (vendor/product ID):
$ /sbin/lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 1554:5010 Prolink Microsystems Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
10/34
Conectando el dongle.
El kernel
Mensajes del kernel:
$ dmesg | tail
usb 1-1: new high speed USB device using ehci_hcd and address 5
usb 1-1: New USB device found, idVendor=1554, idProduct=5010
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: STK807X
usb 1-1: Manufacturer: DiBcom
usb 1-1: SerialNumber: 016
dvb-usb: found a ’Prolink Pixelview SBTVD’ in cold state, will try to load a firmware
usb 1-1: firmware: requesting dvb-usb-dib0700-1.20.fw
dvb-usb: downloading firmware from file ’dvb-usb-dib0700-1.20.fw’
dib0700: firmware started successfully.
dvb-usb: found a ’Prolink Pixelview SBTVD’ in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (Prolink Pixelview SBTVD)
DVB: registering adapter 0 frontend 0 (DiBcom 8000 ISDB-T)...
DiB0070: successfully identified
input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:02.1/usb1/1-1/input/input9
dvb-usb: schedule remote query interval to 50 msecs.
dvb-usb: Prolink Pixelview SBTVD successfully initialized and connected.
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
11/34
Conectando el dongle.
El kernel
Mensajes del kernel:
$ dmesg | tail
usb 1-1: new high speed USB device using ehci_hcd and address 5
usb 1-1: New USB device found, idVendor=1554, idProduct=5010
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: STK807X
usb 1-1: Manufacturer: DiBcom
usb 1-1: SerialNumber: 016
dvb-usb: found a ’Prolink Pixelview SBTVD’ in cold state, will try to load a firmware
usb 1-1: firmware: requesting dvb-usb-dib0700-1.20.fw
dvb-usb: downloading firmware from file ’dvb-usb-dib0700-1.20.fw’
dib0700: firmware started successfully.
dvb-usb: found a ’Prolink Pixelview SBTVD’ in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (Prolink Pixelview SBTVD)
DVB: registering adapter 0 frontend 0 (DiBcom 8000 ISDB-T)...
DiB0070: successfully identified
input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:02.1/usb1/1-1/input/input9
dvb-usb: schedule remote query interval to 50 msecs.
dvb-usb: Prolink Pixelview SBTVD successfully initialized and connected.
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
11/34
Conectando el dongle.
Módulos
Driver: dibcom0700
$ lsmod
Module
...
dvb_usb_dib0700
dib7000p
dib0090
dib7000m
dib0070
dvb_usb
dib8000
dvb_core
dib3000mc
dibx000_common
...
Size Used by
0
74739
16582
1 dvb_usb_dib0700
12661 1 dvb_usb_dib0700
14232
1 dvb_usb_dib0700
7528 2 dvb_usb_dib0700
14740
1 dvb_usb_dib0700
2 dvb_usb_dib0700
25312
91431
3 dib7000p,dvb_usb,dib8000
11404 1 dvb_usb_dib0700
2798 4 dib7000p,dib7000m,dib8000,dib3000mc
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
12/34
Conectando el dongle.
Módulos
Driver: dibcom0700
$ lsmod
Module
...
dvb_usb_dib0700
dib7000p
dib0090
dib7000m
dib0070
dvb_usb
dib8000
dvb_core
dib3000mc
dibx000_common
...
Size Used by
0
74739
16582
1 dvb_usb_dib0700
12661 1 dvb_usb_dib0700
14232
1 dvb_usb_dib0700
7528 2 dvb_usb_dib0700
14740
1 dvb_usb_dib0700
2 dvb_usb_dib0700
25312
91431
3 dib7000p,dvb_usb,dib8000
11404 1 dvb_usb_dib0700
2798 4 dib7000p,dib7000m,dib8000,dib3000mc
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
12/34
Conectando el dongle.
Dispositivo
Archivos de dispositivo:
$ ls -l /dev/dvb/adapter0
crw-rw–– 1 root video 212, 4 2010-10-19 12:42 /dev/dvb/adapter0/demux0
crw-rw–– 1 root video 212, 5 2010-10-19 12:42 /dev/dvb/adapter0/dvr0
crw-rw–– 1 root video 212, 3 2010-10-19 12:42 /dev/dvb/adapter0/frontend0
crw-rw–– 1 root video 212, 7 2010-10-19 12:42 /dev/dvb/adapter0/net0
frontend: controla el sintonizador y el demodulador.
demux: controla la descomposición del TS.
La decodificación de contenidos es por software con
posibilidad de aceleración por hardware en la GPU.
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
13/34
Conectando el dongle.
Dispositivo
Archivos de dispositivo:
$ ls -l /dev/dvb/adapter0
crw-rw–– 1 root video 212, 4 2010-10-19 12:42 /dev/dvb/adapter0/demux0
crw-rw–– 1 root video 212, 5 2010-10-19 12:42 /dev/dvb/adapter0/dvr0
crw-rw–– 1 root video 212, 3 2010-10-19 12:42 /dev/dvb/adapter0/frontend0
crw-rw–– 1 root video 212, 7 2010-10-19 12:42 /dev/dvb/adapter0/net0
frontend: controla el sintonizador y el demodulador.
demux: controla la descomposición del TS.
La decodificación de contenidos es por software con
posibilidad de aceleración por hardware en la GPU.
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
13/34
Conectando el dongle.
Dispositivo
Archivos de dispositivo:
$ ls -l /dev/dvb/adapter0
crw-rw–– 1 root video 212, 4 2010-10-19 12:42 /dev/dvb/adapter0/demux0
crw-rw–– 1 root video 212, 5 2010-10-19 12:42 /dev/dvb/adapter0/dvr0
crw-rw–– 1 root video 212, 3 2010-10-19 12:42 /dev/dvb/adapter0/frontend0
crw-rw–– 1 root video 212, 7 2010-10-19 12:42 /dev/dvb/adapter0/net0
frontend: controla el sintonizador y el demodulador.
demux: controla la descomposición del TS.
La decodificación de contenidos es por software con
posibilidad de aceleración por hardware en la GPU.
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
13/34
Conectando el dongle.
Anatomía del dongle
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
14/34
Escaneando.
Tabla de frecuencias
Obtener tabla de frecuencias UHF:
Disponible en http://www.linuxtv.org/wiki/index.php/
ISDB-T_Frequency_Table/.
$ cat freq.txt
...
T 521142857 6MHz AUTO AUTO AUTO AUTO AUTO NONE # channel 22
T 527142857 6MHz AUTO AUTO AUTO AUTO AUTO NONE # channel 23
T 533142857 6MHz AUTO AUTO AUTO AUTO AUTO NONE # channel 24
T 539142857 6MHz AUTO AUTO AUTO AUTO AUTO NONE # channel 25
...
Canales UHF 14 (473Mhz) a 69 (803Mhz) (37 no usado)
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
15/34
Escaneando.
Tabla de frecuencias
Obtener tabla de frecuencias UHF:
Disponible en http://www.linuxtv.org/wiki/index.php/
ISDB-T_Frequency_Table/.
$ cat freq.txt
...
T 521142857 6MHz AUTO AUTO AUTO AUTO AUTO NONE # channel 22
T 527142857 6MHz AUTO AUTO AUTO AUTO AUTO NONE # channel 23
T 533142857 6MHz AUTO AUTO AUTO AUTO AUTO NONE # channel 24
T 539142857 6MHz AUTO AUTO AUTO AUTO AUTO NONE # channel 25
...
Canales UHF 14 (473Mhz) a 69 (803Mhz) (37 no usado)
P. Santamaría, UNLP/CONICET
TDT en GNU/Linux
15/34
Escaneando.
Tabla de frecuencias
Obtener tabla de frecuencias UHF:
Disponible en http://www.linuxtv.org/wiki/index.php/
ISDB-T_Frequency_Table/.
$ cat freq.txt
...
T 521142857 6MHz AUTO AUTO AUTO AUTO AUTO NONE # channel 22
T 527142857 6MHz AUTO AUTO AUTO AUTO AUTO NONE # channel 23
T 533142857 6MHz AUTO AUTO AUTO AUTO AUTO NONE # channel 24
T 539142857 6MHz AUTO AUTO AUTO AUTO A
Comentarios de: Televisión Digital Terrestre en GNU/Linux (0)
No hay comentarios