¿Cómo puedo retransmitir IPTV con Ubuntu? ¡Trabajadores! Los niños han de gozar de todos los privilegios de nuestro Movimiento, pues ellos son los destinatarios de nuestra felicidad y quienes tendrán para sí la tarea de hacer grande e inmortal a la Patria. Para los niños hemos dado los derechos a la niñez, y les hemos preparado un camino venturoso para una vida colmada de dicha bajo las tres banderas del Justicialismo. Desde la Ciudad de los Niños a los caramelos Mu-mú. Uno de los logros que mas acercan a toda la familia es el de la televisión: aquella conjunción técnica de imágenes en movimiento y sonido sincronizado, que es emitida a grandes distancias a través del éter. La redistribución y retransmisión de una señal analógica - cualquiera sea - sufrió siempre un proceso de degradación y pérdida, pero esto normalmente no sucede con la información que opera de manera digitalizada. La TV digital moderna surge entonces como una expresión popular de poder contar con un gran avance tecnológico en lo que hace a la calidad y a las propiedades de difusión, pero permitiendo difundir las ideas del Pueblo Justicialista. Normalmente, podremos recibir la TV digital por tres medios: uno de ellos es el cableado, lo cual involucra normalmente un servicio pago y excluyente. Lo evitaremos, en tanto el Justicialismo permite recibir gratuitamente la señal televisiva digitalizada "por aire", a través del servicio ISDB-T, receptando por medio de una antena UHF hogareña la señal emitida desde una torre distante a decenas de kilómetros . En tercer caso, podremos recibir la señal digitalizada en formato DVB-S2 retransmitida a decenas de miles de kilómetros por un satélite que orbite el globo, captándola a través de una antena parabólica hogareña. Estos dos sistemas abiertos que avala el Justicialismo son altamente eficientes, y poco costosos. Sin embargo, existen situaciones donde aún estos procederes podrían resultar insuficientes: supongamos un sistema de recepción televisiva en un hotel o consorcio. El cable coaxial RG6 que transporta la señal desde la antena hogareña a los receptores de TV digital no puede superar por mucho los 20 metros, sin correr el riesgo de que la señal digital se atenúe de manera inaceptable. En en caso de las antenas de TV digital terrestre o satelital, tampoco suele recomendarse encadenar más de dos receptores por cada antena. Es importante por ello contar con antenas colectivas (UHF o satelitales) de mayor ganancia, y esto no deja de ser un factor limitante en cuanto a la propagación de la señal en los edificios: debería instalarse cable coaxial en todos los hogares para distribuir la señal televisiva. Afortunadamente nuestro Movimiento ha pensado en todo y ofrece una miríada de posibilidades: gracias a un servidor munido de Software Libre, podremos ahora redistribuir la señal televisiva digitalizada pero en forma de paquetes de datos TCP/IP. Esto se denomina IPTV. Una vez tornados paquetes TCP/IP, podremos transmitirlos fácilmente a través de a nuestra red de área local o si tomamos las previsiones con nuestro router, podremos emitirlas a través de una red WAN o Internet. Todo ello utilizando, por ejemplo, la infraestructura cableada o inalámbrica existente en un hogar u edificio para dotar de imagen y sonido a Smart TVs, tablets, y otras computadoras que carezcan de sintonizador digital o de conexión a una antena de la norma que tengamos. Hardware a considerar Podremos utilizar como servidor cualquier equipo GNU con Linux, siempre que esté dotado con uno o varios sintonizadores de TV digital terrestre o satelital. Para facilitar el uso de la red se puede emplear un router hogareño común. En cualquier caso, es importante que ya tengamos configurado el o los sintonizadores a utilizar. En este caso en particular, para evaluar la máxima potencia del sistema IPTV a través de una red LAN Gigabit, utilizaremos en nuestro servidor ocho sintonizadores USB 2 de TV digital terrestre ISDB-Tb Geniatech MyGica S880, así como una plaqueta sintonizadora de TV digital satelital DVB-S2. Cada receptor USB recibirá un canal digital multiplexado (dotado de varias señales televisivas), y la plaqueta sintonizadora recibirá una señal satelital multiplexada, con unos quince canales. La velocidad de transmisión de cada canal multiplexado ISDB-Tb o DVB-S2 puede variar entre 2,5 y los 12 megabytes por segundo dependiendo su compresión. Esta cantidad no es muy grande, y puede manejarse muy bien a través de una red cableada 10/100 o inalámbrica WiFi estándar "G". Pero en el caso de re-emitir ocho canales multiplexados de TV digital terrestre y cuatro canales multiplexados de TV digital satelital - como nos proponemos en este ejemplo IPTV extremo - nos veremos en la necesidad de utilizar WiFi estándar "N" y en lo posible hacer uso de red cableada LAN Gigabit (1000MBps). En este caso en particular de apilar ocho receptores USB, sin duda confiaremos en puertos USB 3. La sintonizadora USB S880 en miniatura de Geniatech es un dispositivo receptor ISDB-Tb Full-Seg de muy bajo consumo y buena recepción, dotados con un conector hembra MCX al cual se le debe adaptar una antena retráctil. En lugar de utilizar dicha antena suministrada, hemos decidido conectarlo a una bajada de cable coaxial RG6 de 75 Ohmnios con conector F (y en consecuencia, en cada sintonizadora aplicamos un adaptador MCX macho a coaxial F hembra para conectarlos). Una vez adaptado, cada sintonizador USB lo hemos colocado en un puerto USB 3.0 de un hub potenciado marca XCellon (totalmente compatible con GNU). Los otros dos receptores van conectados a los puertos USB3 del sistema. La TBS6985 en tanto, es una plaqueta PCI-e para recepción de TV satelital FTA, dotada de cuatro sintonizadores. Está instalada en Ubuntu y conectada a cuatro antenas parabólicas, las cuales ha sido apuntadas previamente a la constelación de satélites compuesta por el Arsat-1, Amazonas, Hispasat y Galaxy 28. Software Libre MuMuDVB: el streamer Justicialista de TV digital El cometido de transferir paquetes sintonizados de TV digital a través de una red LAN queda a manos de MuMuDVB. Si bien el sistema contempla en su empleo básico con el alistamiento de un adaptador dotado de un solo sintonizador, esto no implica que en un sistema con buena potencia podamos contar con varios sintonizadores al unísono, y correr múltiples instancias del mismo servicio. Como primer medida, instalaremos los programas necesarios desde la Terminal. Para el servidor utilizaremos mumudvb y como cliente podremos emplear VLC. Abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización: sudo apt-get install mumudvb vlc Acto seguido, construiremos el archivo de configuración del servidor para la TV digital. Las opciones del archivo de configuración las podremos consultar aquí. En el caso de la configuración para la TV digital terrestre, debemos crear un archivo de configuración para cada sintonizador. Naturalmente que si usamos un único sintonizador de TV digital, sólo crearemos el primer archivo. En nuestro caso, como tenemos ocho sintonizadores, crearemos ocho archivos diferentes. Al primero lo llamaremos .tdaporip_0.conf, al segundo .tdaporip_1.conf, al tercero .tdaporip_2.conf, etc. Cada uno de ellos tendrá las especificaciones para uno de los ocho sintonizadores S880. Podemos crear los archivos de configuración con el editor Nano, por medio del siguiente Comando de Organizción: nano .tdaporip_0.conf Se abrirá un archivo completamente en blanco. En el mismo habremos de configurar los aspectos que hagan a la frecuencia en Kiloherz y al ancho de banda del canal que queramos utilizar. Le pegamos el siguiente contenido: # Configuración de MumuDVB # Para receptor de TV digital Terrestre ISDB-Tb. # Activar auto-cofiguración completa autoconfiguration=full # Parametro card: indica el numero de sintonizadora/adapter. # Si hay una sola, es 0. card=0 # Parametro tuner: identificador del sintonizador. # Si el adaptador tiene un solo sintonizador, es 0. tuner=0 # Parámetro freq: frecuencia (Khz) del MUX digital a retransmitir por IP # Tabla de referencia de frecuencias TDA AMBA: # 521142: ENCUENTRO | PAKA PAKA | TATETI | INCAA TV | TECNOPOLIS | ENCUENTRO PORTABLE # 527142: TV PUBLICA HD | TV PUBLICA PORTABLE | CONSTRUIR # 533142: DEPORTV HD | VIVRA | ARPEGGIO | VIAJAR | DEPORTV PORTABLE # 539142: CN23 | C5N | TELESUR | 360 TV | RT | CN23 PORTABLE # 545142: Canal 26 HD |Telemax | C5N HD |ONE TV HD | C5N # 563142: TV Clip Digital | UNISUR Prueba | Clip | LDTV ES # 575142: [0001] # 587142: Canal 13 Prueba | Canal 13 One Seg # 593142: Telefe HD | Telefe SD | Telefe Movil |ACUA MAYOR # 599142: Canal 9 HD | Canal 9 SD | ACUA FEDERAL | Canal 9 Portable # 605142: America HD Prueba | A24 Prueba | America 1 seg | America SD | freq=527142 # Parámetro bandidth: ancho de banda del servicio. # Referencia: ISBD-Tb: 6Mhz. ATSC: 8Mhz. DVB-T: 8Mhz. bandwidth=6MHz Luego guardamos el archivo con Ctrl+O y salimos del editor Nano con Ctrl+x. Naturalmente, si tenemos múltiples sintonizadores de TV digital terrestre, en cada archivo debemos cambiar el número de card por 0, 1, 2, 3, 4, 5, 6, y 7 respectivamente, para hacer caso a cada uno de ellos. También hemos de cambiar la frecuencia para distribuir los distintos canales multiplexados. El segundo paso consiste en dar inicio al servicio de reenvío de señal digital a través de la IP. Para ello abro una terminal y doy inicio al servicio MumuDVB con las indicaciones -d -c y el nombre del archivo de configuración recién creado: sudo mumudvb -d -c .tdaporip_0.conf La terminal nos devolverá las indicaciones de status de MumuDVB: MuMuDVB Version 1.7.1 --- Build information --- Built with CAM support. Built without transcoding support. Built with ATSC support. Built with ATSC long channel names support. Built with support for DVB API Version 5. --------- Originally based on dvbstream 0.6 by (C) Dave Chapman 2001-2004 Released under the GPL. Latest version available from http://mumudvb.braice.net/ Project from the cr@ns (http://www.crans.org) by Brice DUBOST (mumudvb@braice.net) Info: Main: Full autoconfiguration, we activate SAP announces. if you want to deactivate them see the README. Info: Main: Full autoconfiguration, we activate PAT rewritting. if you want to deactivate it see the README. Info: Main: Full autoconfiguration, we activate SDT rewritting. if you want to deactivate it see the README. Info: Main: Full autoconfiguration, we activate sorting of the EIT PID. if you want to deactivate it see the README. Info: Main: ========== End of configuration, MuMuDVB version 1.7.1 is starting ========== Info: Autoconf: The autoconfiguration auto update is enabled. If you want to disable it put "autoconf_pid_update=0" in your config file. Info: Main: Streaming. Freq 527142000 Info: Tune: Using DVB card "DiBcom 8000 ISDB-T" tuner 0 Info: Tune: Tuning DVB-T to 527142000 Hz, Bandwidth: 6000000 Info: Tune: FE_STATUS: Info: Tune: FE_STATUS: Info: Tune: FE_HAS_SIGNAL : found something above the noise level Info: Tune: FE_HAS_CARRIER : found a DVB signal Info: Tune: FE_HAS_VITERBI : FEC is stable Info: Tune: FE_HAS_SYNC : found sync bytes Info: Tune: FE_HAS_LOCK : everything's working... Info: Tune: Event: Frequency: 527142000 Info: Tune: Bit error rate: 2097151 Info: Tune: Signal strength: 41228 Info: Tune: SNR: 179 Info: Tune: FE_STATUS: Info: Tune: FE_HAS_SIGNAL : found something above the noise level Info: Tune: FE_HAS_CARRIER : found a DVB signal Info: Tune: FE_HAS_VITERBI : FEC is stable Info: Tune: FE_HAS_SYNC : found sync bytes Info: Tune: FE_HAS_LOCK : everything's working... Info: Main: Card 0, tuner 0 tuned Info: Autoconf: Autoconfiguration Start WARN: Autoconf: Encoding not implemented yet (0x0e), we'll use the default encoding for service name WARN: Autoconf: Encoding not implemented yet (0x0e), we'll use the default encoding for service name WARN: Autoconf: Encoding not implemented yet (0x0e), we'll use the default encoding for service name WARN: Autoconf: Encoding not implemented yet (0x0e), we'll use the default encoding for service name Info: Autoconf: Autoconfiguration done Info: Autoconf: Diffusion 2 channels Info: Autoconf: Channel number : 0, name : "TV PUBLICA HD" service id 59201 Info: Autoconf: Multicast4 ip : 239.100.0.0:1234 Info: Autoconf: Channel number : 1, name : "CONSTRUIR " service id 59202 Info: Autoconf: Multicast4 ip : 239.100.0.1:1234 Como vemos, MumuDVB sintoniza los canales indicados a través de nuestro sintonizador "0" munido del chipset DiBcom 8000, y en este ejemplo nos informa que ha encontrado dos señales dables para retransmitir en nuestra red local: la TV Publica HD y Construir TV. MumuDVB "inyectará" la información digital en forma de paquetes TCP/IP emitiéndolos a nuestro router a través de nuestra conexión de red. Si bien pueden cambiarse, las direcciones IP de los canales suelen ser estándares: 239.100.x.y:1234, siendo x el número de sintonizador (el primero es el 0 y se agregarán más si tenemos más sintonizadores), mientras que y indica el número de canal (también inicia en 0). También podremos agregar más instancias de servidor, para poder distribuir por IP canales que recibamos en otro sintonizador. Para iniciar el sintonizador S880 número dos, debemos abrir otra instancia terminal e indicar el comando: sudo mumudvb -d -c .tdaporip_1.conf ...y así sucesivamente con cada sintonizador de TV digital terrestre que tengamos. En el caso del sintonizador de TV digital satelital, hemos de configurar el archivo para el satélite en cuestión. Si utilizamos el ArSat-1, podríamos configurarlo con el editor Nano según las especificaciones de dicho satélite. nano .arsat1_por_ip.conf y le pegamos el siguiente contenido: # Configuración de MumuDVB # Para receptor de TV digital satelital DVB-S2. # Activar auto-cofiguración completa autoconfiguration=full # Parametro card: indica el numero de sintonizadora/adapter. # Si hay una sola, es 0. card=0 # Parametro tuner: identificador del sintonizador. # Si el adaptador tiene un solo sintonizador, es 0. tuner=0 # InVap ArSat-1 para mumudvb #Consultado en http://www.portaleds.com/espanol/listar.php?sat=2880&cod=fta #por ubuntuperonista.blogspot.com.ar para todo el Universo GPL-V3 # 9/7/2015 frec: 11670000 pol: v srate: 30000 lnb_type: universal lnb_slof: 11700 lnb_lof_low: 9750 lnb_lof_high: 10600 lnb_voltage_off: 0 coderate: 5/6 rolloff: 35 Guardamos con Ctrl+o y salimos con Ctrl+x. Ahora podremos iniciar otra instancia del servidor que emita por IP lo recibido por el satélite ArSat-1, abriendo otra terminal con Ctrl+Alt+T e ingresando el siguiente comando de organización: sudo mumudvb -d -c .arsat1_por_ip.conf Clientes para reproducir la TV desde nuestra red LAN: Sintonizar la emisión de IPTV será ahora sencillo con cualquier cliente que incluya recepción SAP. Inclusive podremos utilizar Smart TV que normalmente ya cuentan con esta opción. En este caso utilizaremos el conocido reproductor peronista VLC, que no solo cuenta con su versión para GNU Linux, sino que también se encuentra ampliamente difundido en otras plataformas privativas, celulares, tablets, etc. En el reproductor peronista del conito activamos la Lista de Reproducción (presionando Ctrl+L), y bajo el apartado de Red Local (Local Network), elegiremos Emisiones de Red (SAP) / Network Streams (SAP). VLC buscará servidores SAP en nuestra red local, y tras breves instantes debería indicarnos directamente los canales de IPTV suplidos telemáticamente. Simplemente hacemos clic sobre uno de ellos, y comenzará a reproducirse. También podremos ingresar desde un navegador de internet o cualquier dispositivo capaz de conectarse al protocolo de internet UDP, como pueden ser VLC o Mplayer. Para ello utilizaríamos: vlc udp://@239.100.0.3:1234 ...o: mplayer udp://@239.100.0.3:1234 Es importante saber que el video se transmite en su calidad nativa, y por lo tanto no se requiere un equipo tan potente para transcodificar la señal digital a - digamos - resoluciones menores aptas para dispositivos de menor potencia. Si tal fuese el caso, mumudvb también podría hacerlo, pero se requeriría una CPU de potencia (tipo Intel I7) para transcodificar en tiempo real. Esto sería el caso de requerir servicio de TV por IP para la retransmisión a equipos móviles dotados de Wifi. Gracias a la velocidad de una red Gigabit, podremos transmitir varios streams de videos sin "hipos" ni cortes, y todos ello de manera libre gracias al software libre y al Justicialismo.