Últimamente todo el mundo por la televisión sale hablando de una cosa difusa que llaman TDT. El nombre de TDT es algo que se inventó algún redactor de T5 por lo visto, lo que llaman TDT es la implementación del DVB-T en el territorio español. Vemos como aparecen en el mercado muchos sintonizadores TDT con HDTV y "nosecuantas" cosas "nuevas"... ¿qué es todo esto? pues vamos a intentar hacer una breve introducción para explicar conceptos fundamentales a ver si todos (incluído yo) nos enteramos un poco mejor... al final un ejemplo de uso: ver la "tele" digital en nuestro escritorio (o en nuestra consola!).

Introducción

Antes de nada, creo que habría que decir que esto de la TDT no es algo de ahora... tal vez alguno recuerde un operador de televisión que intentó competir con Via Digital y Canal Satélite Digital... se llamaba QuieroTV... ¡pues eso ya era TDT!. Por aquel entonces a todo eso se le llamaba "televisión digital", tanto por satélite, por cable o por "la antena normal de casa", lo que en términos más exactos se llama DVB o Digital Video Broadcasting. DVB también se llama al grupo de trabajo de la ETSI (el European Standard Telecommunications Series, una organización de empresas europeas interesadas en esto de emitir estándares). Entre los muchos estándares que han emitido los más conocidos en este ámbito son: DVB-S, DVB-C, DVB-T y recientemente DVB-H; que básicamente es la transmisión de televisión digital satelital, por cable, terrestre y por último para dispositivos tipo handhelds. Aquí tenemos como operador de DVB-S a Digital+, como operador de DVB-C por ejemplo a Ono y finalmente de DVB-T todos esos canales que se han subido al carro de la TDT (no me gusta nada este nombre...). Desconozco si existen en España emisiones de DVB-H.

Brevísima introducción al DVB-T

Bien, la señal DVB-T se modula mediante OFDM, esta modulación permite distribuir el flujo binario de información entre un gran numero de portadoras de forma que cada una maneje una velocidad de datos reducida con respecto a la del flujo total. Las otras portadoras pueden tener esquemas de modulación distintas, se usan: QPSK, 16-QAM y 64-QAM. En España todas usan 64-QAM que es la que tiene una constelación más compleja (tasas de transferencia mayores pero menor inmunidad al ruido... básicamente). Las portadoras pueden tener dos modos de transmisión distintas: de 2k y 8k, en el modo de 2k se pueden tener hasta 1.705 portadoras y en el modo de 8k hasta 6.817 portadoras, éste es el modo usado en territorio español. El modo de transmisión determina los parámetros de modulado internos. A parte, existen otros parámetros a tener en cuenta: la relación de codificación para protección interna de errores y las longitudes para el intervalo de guarda; estos factores determinan cómo y cúantos bits redundantes se añadirán a la señal para poder corregir posibles errores en la transmisión. Estos parámetros también están presentes en la transmisión DVB-S. En la modulación digital terrestre aparece además un nuevo parámetro: modulación jerárquica o no jerárquica. DVB-T permite dos flujos de transporte, uno de alta prioridad (baja velocidad y muy robusto frente al ruido) y otro de baja prioridad que complementa al anterior en cuanto a velocidad y a calidad de imagen (para asegurar cierta calidad de imagen en zonas con una mala cobertura). Debemos conocer todos estos parámetros para poder sintonizar correctamente un canal (o transpondedor) y sus portadoras. Exite una característica en el canal que permite la auto-sintonización en los receptores domésticos, pero ignoro si los sintonizadores para equipos personales tienen esta característica pero desde luego los programas que he encontrado para GNU/Linux no permiten autosintonizar (esto no es lo mismo que buscar canales de TV... es más bien "buscar transpondedores", la búsqueda de canales de TV la veremos más adelante...). En España cada provincia tiene sus propios parámetros para los canales, básicamente son todos iguales y sólo se diferencia en las frecuencias. Una vez que conocemos la frecuencia de un conjunto de portadoras y los parametros de las mismas podemos sintonizar nuestro receptor a esas portadoras... vemos ya la TV? pues no... todavía no...

El flujo de transporte

Toda la información DVB (sea cual sea el tipo) viaja dentro de un flujo MPEG, este flujo se llama concretamente MPEG2-TS (estándarizado por ISO), es decir: MPEG-2 Transport Stream. En este flujo se encapsula todo: audio, video, paquetes IP... etc. Este es el flujo que sintonizamos cuando establecemos los parámetros citados anteriormente en nuestro receptor y es en éste flujo en el que viajarán un determinado número de canales de TV, de radio y servicios interactivos de forma simultánea. Además también viaja información de señalización tales como horarios de programación o tipo de programa en emisión actual. Podéis crear/ver vuestros propios flujos de transporte con herramientas como ffmpeg o mplayer.

Sintonización de servicios

Una vez que nuestro receptor está recibiendo un flujo TS sólo nos queda seleccionar un servicio en concreto, esto se realiza mediante un nuevo valor llamado pid (que suele venir representado en hexadecimal). El pid identifica un servicio dentro de un conjunto del flujo. Aquí podemos realizar una pausa para hablar un poco de las sintonizadoras para PC que podemos encontrar por ahí, las podemos clasificar en dos grandes grupos: las que linux soporta y las que no... :-P vale... y ahora en otros dos grupos: las USB1.1 y las USB2.0 (dentro de las USB2.0 hay unas pocas que también permiten USB1.1, estas son 2.0 a todos los efectos...) esta distinción es muy importante ya que con las USB1.1 no se puede acceder al TS completo (debido a la tasa de transferencia sobre todo) y el mismo DSP del receptor demultiplexa el flujo y obtiene el servicio con el pid especificado. Las capturadoras USB2.0 tienen un modo de funcionamiento conocido como tsraw que permite obtener el flujo completo para luego tratarlo por software en un nivel superior. Éstas sintonizadoras son las necesarias para utilizar programas tipo VCR-Linux de captura de programación y son las que más versatilidad nos ofrecerán. Después de este inciso sigamos... Los canales de TV (y otras cosas) es lo que ya vamos a buscar dentro del flujo de transporte, esto se puede hacer de dos formas: un pid-scan y una búsqueda directa. Un pid-scan consiste en mandar al receptor pid's uno a uno para ver si encontramos algo o no, la forma directa emplea un pid conocido donde se encuentran señalizados el resto de pid's del flujo, es decir, contiene información del tipo: pid 0x101 --> La primera. La forma en la que nuestro programa busca los canales ya nos da igual, pero no está de más saberlo... ;-)

A lo que ibamos: ver la tele en KDE

Y que pasa con Gnome?!... más adelante... ya veréis porqué... Para ver la televisión digital instalaremos kaffeine que en realidad es un frontend de otros programas como xine por ejemplo (que es el que usaremos para Gnome). Al instalar kaffeine, el solito se bajará un montón de información sobre la sintonización de los canales en distintas áreas geográficas de todo el mundo (incluído Madrid ;-)). Lamentablemente (al menos no cuando yo lo hice) no viene la información para Ciudad Real. Eso lo haremos nosotros ahora, copiaremos el archivo de Madrid, por ejemplo:
$ cp ~/.kde/share/apps/kaffeine/dvb-t/es-Madrid ~/.kde/share/apps/kaffeine/dvb-t/es-CReal
Ahora abrimos el archivo con gedit por ejemplo y veremos algo como esto:
T 770000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE     # Canal 58: La Primera, La 2, Canal 24H, Clan/TVE 50, RNE1, RNE Clásica, RNE 3
T 810000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE     # Canal 63: Telemadrid, La Otra, Onda 6
T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE     # Canal 66: Veo, Veo 2, Net TV, Teledeporte
T 842000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE     # Canal 67: Cuatro, CNN+, 40 Latino, La Sexta 1
T 850000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE     # Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music
T 858000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE     # Canal 69: Antena 3, Antena Neox, Antena Nova, La Sexta 2
Esto es lo que se llama archivo de sintonización inicial y en cada fila se especifican los siguientes campos en este orden:
  1. Tipo de televisión digital. T de terrestial en este caso.
  2. Frecuencia.
  3. Ancho del canal. Suele ser 8Mhz pero en otros paises se usan anchos como 6Mhz y 7Mhz.
  4. Code rate (Hi) o relación de codificación para protección de errores. Los valores admisibles son: 1/2, 2/3, 3/4, 5/6 y 7/8.
  5. Code rate (Lo). Los valores admisibles son los mismos pero éstos se aplican al flujo de baja prioridad (o LP) mientras que el anterior se empleaba en el flujo de alta prioridad o HP.
  6. Guard interval o intervalo de guarda. Los valores admisibles son: 1/4, 1/8, 1/16 y 1/32.
  7. Esquema de modulación de las portadoras. Los permitidos por DVB-T son: QPSK, 16-QAM y 64-QAM. En España se emplea 64-QAM únicamente.
  8. Modo de transmisión. Los dos tipos son 2K y 8K, aquí usamos el de 8K.
  9. Guard interval o intervalo de guarda. Los valores admisibles son: 1/4, 1/8, 1/16 y 1/32.
  10. Parámetro de modulación jerárquica. En el territorio nacional no se emplea esta modulación.
Mediante este fichero proporcionamos al programa un punto de partida donde empezar a buscar servicios, el programa sintonizará el receptor con estos parametros y buscará los pid's para cada conjunto de ellos. Para empezar a buscar en nuestra zona territorial tenemos que buscar por internet dónde están los canales en dicha zona. El problema está que lo que encontraremos será algo como (datos de Ciudad Real):
Canal 65: La Primera, La 2, Canal 24H, Clan/TVE 50
Canal 66: VeoTV, NetTV, Teledeporte, Veo 2
Canal 67: Cuatro, CNN+, 40TV Latino, La Sexta 1
Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music
Canal 69: Antena 3, Antena 3 Nova, Antena 3 Neox, La Sexta 2
Pues vale... ¿y que hacemos con ésto?... muy fácil (o no): ahora tendremos que buscar por google la tabla de equivalencias entre canales y frecuencias, voy adelantando el trabajo y os planto aquí unos pocos:
65 - 826000000
66 - 834000000
67 - 842000000
68 - 850000000
69 - 858000000
Es curioso... la diferencia entre canales es... ¡tachán! 8Mhz ;-) Ahora cambiamos las frecuencias en el archivo de sintonización inicial y lo dejamos como sigue:
T 826000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE     # Canal 65: La Primera, La 2, Canal 24H, Clan/TVE 50
T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE     # Canal 66: VeoTV, NetTV, TeleDeporte, Veo 2
T 842000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE     # Canal 67: Cuatro, CNN+, 40TV Latino, La Sexta 1
T 850000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE     # Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music
T 858000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE     # Canal 69: Antena3, Antena3 Nova, Antena3 Neox, La Sexta 2
Lo de los canales no es necesario... es un comentario y kaffeine lo ignorará... pero así nosotros nos enteramos mejor. Ahora conectamos el sintonizador DVB-T y lanzamos kaffeine (es paquete Debian y supongo que Ubuntu también así que no es necesario explicar su instalación), ahora pinchamos en DVB > Configure DVB y como source elejimos es-CReal (nuestro archivo!) y aceptamos. Ahora volvemos a DVB > Channels, activamos los filtros de Emisión en abierto, TV y Radio y pinchamos en Start Scan. Si tenemos el sintonizador correctamente conectado a una buena antena empezarán a salir canales en la lista de encontrado, cuando finalice los seleccionamos todos (o los que queramos) y pinchamos en << Add Selected. Ahora si pinchamos en Digital TV podremos ver nuestros canales de TV favoritos (si es que tenéis alguno) ;-). Ah!... una cosa que a mi me encantó: probad las funciones de pause y control del flujo ;-).

Ahora sí: ver la tele en GNOME

Bueno... pues usaremos el (para mi) maravilloso xine (de hecho kaffeine usa el xine-engine para estas mismas labores). Xine tiene un "pequeño" problema: no permite la búsqueda de canales :-(. Tenemos que buscarlos nosotros... pero tranquilos! el paquete dvb-utils tiene herramientas que lo hacen por nosotros, así que: lo instalamos. Este paquete tiene una herramienta llamada scan que necesita de un archivo de sintonización inicial con el que poder buscar todos los servicios posibles.
Llegados a este punto he de reconocer mi ignorancia: la razón por la que primero configurábamos kaffeine era porque así teníamos un archivo de sintonización inicial con el que trabajar. Al escribir esta receta descubrí que el paquete dvb-utils YA incluye todos esos archivos que también están en kaffeine por lo que la instalación de dicho reproductor no es necesaria.
Para buscar los canales con scan simplemente tenemos que indicarle cual es el archivo de sintonización:
$ scan ~/.kde/share/apps/kaffeine/dvb-t/es-CReal
Si vuestra recepción no es muy buena, podéis encontrar algo más si indicáis a scan que se lo curre más:
$ scan -5 -n ~/.kde/share/apps/kaffeine/dvb-t/es-CReal
Veréis que la salida es una malgama de numeros y tal: parámetros de frecuencias, pid's, nombres de progama, etc. pues esto es justo lo que xine necesita para sintonizar canales DVB-T así pues tenemos dos opciones: copiamos la salida y la pegamos en un fichero que llamaremos channels.conf o ejecutamos lo siguiente:
$ scan -5 -n ~/.kde/share/apps/kaffeine/dvb-t/es-CReal > channels.conf
Ese archivo lo copiamos a ~/.xine/ y ahora ejecutamos xine, pinchamos en el botón de DVB y al desplegar la lista de reproducción tendremos los canales que encontramos con scan, los controles como pause también los tenemos disponibles ;-).

Algunos consejos sobre el hardware

Yo hasta ahora sólo he probado sintonizadoras USB de ambos tipos. Con la USB1.1 no conseguía muy buenos resultados pero algo se podía hacer. No son muchas las tarjetas que directamente soporta el núcleo linux y para el resto de tarjetas la cosa esta un poco verde. Mi recomendación (no lo toméis como publicidad) es: AverMedia DVB-T USB2.0 HDTV-1080i ready (o mod. A800). Es completamente compatible con linux (de hecho tiene una pegatina en la caja que lo dice!) y en su página tenéis un PDF de los de avermedia que explican cómo hacerla funcionar (que es tan fácil como pincharla y listo ;-)). Te funciona directamente hasta el mando a distancia... una delicia vamos...

Enlaces de interés

Veréis que en toda la receta no he puesto un sólo enlace... he preferido organizarlos todos aquí por orden, empecemos:
  • En la página de la ETSI, podéis descargar gratuitamente los estándares relativos a DVB previo registro. El correspondiente a DVB-T tiene como referencia EN 300 744, la versión más actual es la v1.5.1 (hasta la fecha de publicación de la receta). http://www.etsi.org/.
  • También podéis entrar en ISO/IEC y compraros el estándar del Mpeg2-ts que está definido en la norma ISO/IEC 13818-1. http://www.iso.org/.
  • Si queréis saber cómo se está implantando el DVB-T en España, legislación, etc. podéis consultar la página de la comisión de seguimiento de TDT en España: http://www.televisiondigital.es/Terrestre/Ciudadanos/index.htm
  • La página por excelencia de todo esto en linux, donde encontraréis los repositorios de toda la api DVB/V4L, documentación, información sobre el hardware... vamos, antes de compraros una sintonizadora visitad la página y leed detenidamente. Todas las que no aparezcan ahi... malo malo... en fin, la página es: http://linuxtv.org/.

Comentarios

Bueno... la receta ha resultado ser larga y probablemente "rollo", si os fijáis las cosas "linuxeras" que cuento son cuatro comandillos chorras... vamos que es muy fácil... lo que pretendía más bien era que todos vieramos un poco que esto de la TDT (sigue sin gustarme nada ese nombre) por si a alguno le pica el gusanillo... está muy interesante (o al menos para mi) y en cuanto a DVB... es un mundo... ya me contaréis si os vale esto para algo... ;-)


blog comments powered by Disqus