Por fin he dado con la mejor alternativa para montar un Servidor de Streaming IPTV casero. Si has seguido estos apuntes habrás observado que llevo tiempo investigando y documentando varias alternativas. Actualizo (Julio 2016): es el mejor Servidor si tienes MUCHAS fuentes externas (SAT o TDT y/o IPTV), pero si solo vas a usar fuentes IPTV (sin sintonizadoras) te recomiendo también explorar la opción de montarlo en tu propio Linux (mira este otro apunte).
Se trata de MOI Pro + Tvheadend, un servidor de Streaming IP basado en Linux capaz de entregar entre 80-100 canales, es uno de los mejores servidores de IPTV que he encontrado en el mercado y además con un precio asequible (equiparable a equipos de gama alta estilo Dreambox, VUPlus basados en Linux).
Una alternativa algo más barata, si te vale con una única sintonizadora (o SIN sintonizadoras si solo quieres IPTV) es el MOI+. En mi caso he optado por la MOIpro, que me ha permitido instalar dos tarjetas PCI, una para sintonizar 2xSatélite y la otra para sintonizar 2xTDT. El equipo cuenta con una CPU Quad ARM Cortex-A9, 2GB de RAM DDR3, una Flash de 16G EMMC y tarjeta Ethernet de 100M/1Gb (también incluye Wifi: 802.11n aunque no la uso), soporta hasta 2 tarjetas sintonizadoras y como decía, su firmware está basado en Linux.
Respecto al Linux, no lo se a ciencia cierta pero creo que está basado en Ubuntu (tienen otro producto llamado MatrixTV y parece que usan la misma fuente. Eso sí, el Linux del MOI está muy limitado (incluye muy pocas cosas, no trae compilador, ni el gestor de paquetes), pero puedes conectar vía SSH y meterle bastante mano, hacerte scripts, retocar/manipular las configuraciones desde línea de comandos, como veremos a continuación.
Lo mejor de este equipo es que incluye Tvheadend y soporta tarjetas de Satélite, Cable o TDT, así como fuentes IPTV. Esto me permite aunar en un solo sitio la agregación de todas mis fuentes de video para poder servirlas a los equipos IP de mi red (Raspberry’s, ordenadores, tablets, móviles, TV con KODI, etc..). He instalado dos tarjetas, una para Satélite (con dos sintonizadores) y una para TDT (también con dos sintonizadores):
Combinar el «MOI» + Tvheadend y clientes RaspberryPiv2 + KODI en la(s) TV de tu casa es de momento mi solución ideal para un servicio de TV IP casero multi-cliente, es decir, que puedes ver varios canales o contenidos multmedia simultaneamente en varias TV’s, tablets, teléfonos, ordenadores, etc.
Primero voy a describir la configuración básica del equipo MOI, después entraré a su Linux para hacer un ajuste fino, a continuación Tvheadend y la configuración de las fuentes y por último describo cómo he solucionado el EPG.
MoiPro
Una vez que terminas de montar el hardware del equipo (las tarjetas sintonizadoras vienen por separado) lo conectas a tu red, lo normal es que reciba una IP vía DHCP (puedes ver cual ha sido en el frontal del equipo). Conecta con ella desde un navegador, el usuario es root y la contraseña root. Lo primero que te recomiendo que hagas es cambiarle a una dirección IP fija.
Configura una dirección IP estática, la puerta de enlace y la dirección de tu DNS Server interno (si lo tienes), en caso contratrio deberás usar siempre direcciones IP en vez de nombres.
hago click en Tvheadend y al cabo de unos segundos arranca el servicio, conectacto automáticamente por el puerto 9981 con el Web UI del mismo.
Retocar el MOI Pro desde Linux
Como has visto, el interfaz Web del MOI Pro es sencillo y simple, de hecho ya tenemos acceso al Tvheadend, antes de ir corriendo a trastear vamos a tunear el equipo, así que aguanta y no configures todavía Tvheadend.
Conectar vía SSH y trabajar con él desde la línea de comandos. El usuario por defecto es «root» y la contraseña «root».
1 2 3 4 | $ ssh -l root moipro.parchis.org [root@MOIPro ~]# |
Timezone
La zona horaria que trae por defecto no es buena para mi, adáptala a tu zona horaria:
1 2 3 | [root@MOIPro ~]# ln -sf /usr/share/zoneinfo/Europe/Madrid /etc/localtime |
Si tienes un NTP Server identificado, configúralo modificando la línea apropiada en el fichero /etc/network.
Gestión de Tvheadend
Podrás hacer la activación, desactivación, arranque o parada de Tvheadend desde la línea de comandos. En mi caso nunca uso el Web UI inicial del MOI Pro.
- systemctl enable tvheadend Arrancar tvheadend durante el boot
- systemctl disable tvheadend Deshabilitar Tvheadend durante el boot
- systemctl start tvheadend Arrancar tvheadend
- systemctl stop tvheadend Parar tvheadend
- syjournalctl -f Ver el log del Moi Pro (y por tanto de Tvheadend)
MOI: Acceso vía NFS a /media/Recordings
Para poder grabar los programas de TV es necesario indicarle a Tvheadend el directorio donde debe dejar dichas grabaciones. Dado que no tiene sentido usar el disco duro propio del MOI lo lógico es hacerlo en un disco remoto usando el protocolo NFS.
Configuro el MOI para poder acceder a un servidor NFS externo. Necesito acceso a dos servicios de ficheros externos. El primero es para poder realizar las grabaciones (Recordings) desde Tvheadend y el segundo es para poder dejar la guía EPG de Movistar TV (lo veremos más adelante, pero ya voy avisando), de momento solo explico cómo configurar el primero.
Creo dos ficheros bajo /etc/systemd/system para montar automáticamente: /media/Recordings.
1 2 3 4 5 6 7 8 9 10 11 12 13 | [Unit] Description=Montar por NFS el directorio Recordings After=syslog.target Before=tvheadend.service [Mount] What=panoramix.parchis.org:/Recordings Where=/media/Recordings Options= Type=nfs [Install] WantedBy=multi-user.target |
1 2 3 4 5 6 7 8 | [Unit] Description=Automount /media/Recordings [Automount] Where=/media/Recordings [Install] WantedBy=multi-user.target |
Habilito las units de Systemd y rearranco el equipo.
1 2 3 4 5 | [root@MOIPro /etc/systemd/system]# systemctl enable media-Recordings.mount [root@MOIPro /etc/systemd/system]# systemctl enable media-Recordings.automount [root@MOIPro /etc/systemd/system]# reboot |
MOI: Asegurar la red
¿Qué quiero decir con asegurar la red?. Durante las pruebas experimenté ciertas inestabilidades en la red y descubrí que sin venir a cuento me desconfiguraba el DNS server, o mejor dicho el programa «Connection Manager (connmand)» activa su propio DNS Proxy y no siempre funciona con demasiado acierto.
Copio el archivo original «connman.service» y lo modifico para adaptarlo a mi gusto.
1 2 3 | [root@MOIPro /etc/systemd/system]# cp /lib/systemd/system/connman.service /etc/systemd/system |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [Unit] Description=Connection service After=syslog.target network-link.service ConditionPathExists=/run/geexbox/network/connman [Service] Type=dbus BusName=net.connman ExecStartPre=/usr/lib/connman/connman-parse-configuration #ExecStartPre=/usr/lib/connman/connman-parse-configuration2 ExecStart=/usr/sbin/connmand -n -r [Install] WantedBy=network.target |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | NETWORK_BACKEND="connman" NETWORK="LAN" IFACE="eth0" ADDRESS="192.168.1.239/24" GATEWAY="192.168.1.1" DNS_SERVER="192.168.1.1 192.168.1.246" SSID="" HIDDEN="" SECURITY="$" PASSPHRASE="" TIMESERVERS="0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org" TELNET_SERVER=true FTP_SERVER=true HTTP_SERVER="false" SAMBA_SERVER=true ZEROCONF="true" WAIT_FOR_SLOW_DEVICE="true" static="false" dynamic="false" |
Rearranco el Connection Manager y confirmo que el fichero /etc/resolv.conf queda bien configurado.
1 2 3 4 5 6 7 8 | [root@MOIPro ~]# systemctl daemon-reload [root@MOIPro ~]# systemctl restart connman [root@MOIPro ~]# cat /etc/resolv.conf # Generated by Connection Manager nameserver 192.168.1.1 nameserver 192.168.1.246 |
Tvheadend
A continuación vamos a ver cómo configurar Tvheadend y cómo dar de alta cada una de las fuentes.
Antes de empezar voy a desactivar la Guía (EPG) OTA (Over The Air), ¿qué es eso de EPG OTA?, pues se trata de aprender la guía electrónica de programación (EPG) a través de la señal de la fuente. De hecho hay dos métodos. El primero consiste en usar OTA (Over The Air), es decir aprovechar que la propia señal incluye la Guía (EPG) o programación de los canales. La segunda opción es completamente distinta, consiste en usar algún tipo de script externo para que se baje dicha Guía a través de Internet.
Recomiendo usar la segunda opción, ¿porqué? pues porque las guías OTA suelen estar bastante limitadas, el ejemplo extremo es IPTV (Movistar TV) donde simplemente no existe OTA, otro ejemplos de limitación es cuando traen muy poca información (solo las próximas 2 horas) o incluso no funcionan o viene la guía de pocos canales.
Lo primero que hago es quitar el OTA a nivel general y después en cada una de las tarjetas sintonizadoras.
Desde Configuration->Channel/EPG->EPG Grabber, desactivo Over-the-air Grabbers:
Desde Configuration->DVB Inputs->TV Adapters, desactivo Over-the-air Grabbers en las tarjetas sintonizadoras.
Al final del apunte explico cómo hacer la inserción del EPG (Guía) mediante Scripts.
Fuentes
A partir de aquí describo cómo he configurado las tres fuentes (TDT, Movistar TV y Satélite), notar que este artículo está parcialmente «Work in Progress» porque el proyecto Tvheadend es joven y está muy activo, así que iré actualizando según continúe mi investigación.
Fuentes TDT
Para poder sintonizar las frecuencias TDT he instalado la tarjeta «TBS6281 DVB-T2/T/C Dual Tuner PCIe Card» que incluye dos sintonizadores.
Preparar Muxes Pre-Definidos
Tvheadend permite, cuando se configuran las sintonizadoras, seleccionar muxes predefinidos y es recomendable actualizar los que incluye el paquete de sofware con los originales, que están disponibles en internet.
Baja una copia de las DTV Scan Tables y copialas al servidor MOIPro.
1 2 3 4 5 6 7 8 9 10 | En otro ordenador donde tengas git instalado: $ cd tmp $ git clone https://git.linuxtv.org//dtv-scan-tables.git $ cd dtv-scan-tables $ scp -r * root@moipro.parchis.org:/usr/share/tvheadend/data/dvb-scan Conecta con el MOIPro vía SSH: # ssh -l root moipro.parchis.org # ln -s /usr/share/tvheadend/data/dvb-scan /usr/share/dvb # systemctl restart tvheadend |
Además en el caso de TDT puede que te interese actualizar el fichero concreto de tu zona donde vives. En este ejemplo enseño cómo hacer el de Madrid, ya que el que he bajado de internet está desactualizado. Actualizo el fichero con las frecuencias actualizadas a fecha de Mayo de 2015 para Madrid. Nota que tienes todos los datos para hacerte el tuyo propio en esta fuente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | #------------------------------------------------------------------------------ # Fichero generado por LuisPa desde el original generado por w_scan # # Lo he editado a mano, en teoría debería poderse auto-generar usando # el comando siguiente en el MOI Pro, pero no me funcionó: # # w_scan -ft -c ES -x # # ssh -l root moipro.parchis.org # cd /media/mmcblk0p1/usr/share/tvheadend/data/dvb-scan/dvb-t # cat > es-Madrid (COPY / PASTE este fichero) # chown 1000:1000 es-Madrid # systemctl restart tvheadend # # # Network->Add->DBVB-T "TDT-Madrid". Pre-dfined Muxes: es-Madrid # # # (http://wirbel.htpc-forum.de/w_scan/index2.html) #! 20110306 2 0 OFDM ES #------------------------------------------------------------------------------ # # date (yyyy-mm-dd) : 2015-05-01 # Fuente de los datos : http://www.tdt1.com/canales-madrid/ # #------------------------------------------------------------------------------ # # CANAL 26, Boing, Energy, Gol Television # [CHANNEL] DELIVERY_SYSTEM = DVBT FREQUENCY = 514000000 BANDWIDTH_HZ = 8000000 CODE_RATE_HP = 2/3 CODE_RATE_LP = NONE MODULATION = QAM/64 TRANSMISSION_MODE = 8K GUARD_INTERVAL = 1/4 HIERARCHY = NONE INVERSION = AUTO # # CANAL 33, 13TV, Discovery MAX, Disney Channel, Paramount Channel # [CHANNEL] DELIVERY_SYSTEM = DVBT FREQUENCY = 570000000 BANDWIDTH_HZ = 8000000 CODE_RATE_HP = 2/3 CODE_RATE_LP = NONE MODULATION = QAM/64 TRANSMISSION_MODE = 8K GUARD_INTERVAL = 1/4 HIERARCHY = NONE INVERSION = AUTO # # CANAL 39, 8Madrid, 13TV Madrid, Kiss TV, Intereconomia # [CHANNEL] DELIVERY_SYSTEM = DVBT FREQUENCY = 618000000 BANDWIDTH_HZ = 8000000 CODE_RATE_HP = 2/3 CODE_RATE_LP = NONE MODULATION = QAM/64 TRANSMISSION_MODE = 8K GUARD_INTERVAL = 1/4 HIERARCHY = NONE INVERSION = AUTO # # CANAL 41, La 1 HD, TDP, TDP HD, # [CHANNEL] DELIVERY_SYSTEM = DVBT FREQUENCY = 634000000 BANDWIDTH_HZ = 8000000 CODE_RATE_HP = 2/3 CODE_RATE_LP = NONE MODULATION = QAM/64 TRANSMISSION_MODE = 8K GUARD_INTERVAL = 1/4 HIERARCHY = NONE INVERSION = AUTO # # CANAL 49, Telecinco, Telecinco HD, Cuatro, Cuatro HD, FDF, Divinity, # [CHANNEL] DELIVERY_SYSTEM = DVBT FREQUENCY = 698000000 BANDWIDTH_HZ = 8000000 CODE_RATE_HP = 2/3 CODE_RATE_LP = NONE MODULATION = QAM/64 TRANSMISSION_MODE = 8K GUARD_INTERVAL = 1/4 HIERARCHY = NONE INVERSION = AUTO # # CANAL 50, 8Madrid, Ver-t, TBN # [CHANNEL] DELIVERY_SYSTEM = DVBT FREQUENCY = 706000000 BANDWIDTH_HZ = 8000000 CODE_RATE_HP = 2/3 CODE_RATE_LP = NONE MODULATION = QAM/64 TRANSMISSION_MODE = 8K GUARD_INTERVAL = 1/4 HIERARCHY = NONE INVERSION = AUTO # # CANAL 55, Telemadrid, La Otra, Telemadrid HD, EHS TV # [CHANNEL] DELIVERY_SYSTEM = DVBT FREQUENCY = 746000000 BANDWIDTH_HZ = 8000000 CODE_RATE_HP = 2/3 CODE_RATE_LP = NONE MODULATION = QAM/64 TRANSMISSION_MODE = 8K GUARD_INTERVAL = 1/4 HIERARCHY = NONE INVERSION = AUTO # # CANAL 58, La 1, La 1 HD, La 2, 24h, Clan # [CHANNEL] DELIVERY_SYSTEM = DVBT FREQUENCY = 770000000 BANDWIDTH_HZ = 8000000 CODE_RATE_HP = 2/3 CODE_RATE_LP = NONE MODULATION = QAM/64 TRANSMISSION_MODE = 8K GUARD_INTERVAL = 1/4 HIERARCHY = NONE INVERSION = AUTO # # CANAL 59, Antena 3, Antena 3 HD, laSexta, laSexta HD, Neox, Nova # [CHANNEL] DELIVERY_SYSTEM = DVBT FREQUENCY = 778000000 BANDWIDTH_HZ = 8000000 CODE_RATE_HP = 2/3 CODE_RATE_LP = NONE MODULATION = QAM/64 TRANSMISSION_MODE = 8K GUARD_INTERVAL = 1/4 HIERARCHY = NONE INVERSION = AUTO |
1 2 3 4 5 6 7 8 9 10 | $ ssh -l root moipro.parchis.org # cd /media/mmcblk0p1/usr/share/tvheadend/data/dvb-scan/dvb-t # cat > es-Madrid __(PEGAR EL CONTENIDO DEL FICHERO ANTERIOR)___ # chown 1000:1000 es-Madrid # systemctl restart tvheadend |
Crear la «Network» para TDT
El siguiente paso consiste en Añadir una «Network» de tipo TDT usando el listado de frecuencias pre-definido que vimos antes. En mi caso la voy a llamar «TDT-Madrid».
- Network->Add
- DBVB-T «TDT-Madrid»
- Pre-defined Muxes: es-Madrid
- Ok
Vincular la «Network» TDT con la Sintonizadora
Vinculamos esta «Network» recién creada con la sintonizadora TDT del equipo.
Si dejas un Terminal conectado por SSH con el MOI Pro y visualizas el «log» ( journalctl -f) observarás cómo se van «descubriendo» servicios nuevos. Otra forma de «ver» cómo va detectando los servicios es porque así nos lo va indicando en las diferentes lengüetas debajo de DVB-Inputs: verás cómo poco a poco se incrementa el número de Servicios en «Networks» o en «Services».
Si te encuentras con que Services tienen como resultado de Scan «Fallido (Fail)», ignóralo de momento, lo importante es ir viendo cómo algunos otros dicen «OK» y crece el número de servicios detectados.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $ ssh -l root moipro.parchis.org [root@MOIPro ~]# journalctl -f : May 01 14:54:34 MOIPro tvheadend[23806]: 2015-05-01 14:54:34.163 [ INFO] mpegts: 706MHz in TDT-Madrid - scan no data, failed May 01 14:54:34 MOIPro tvheadend[23806]: 2015-05-01 14:54:34.163 [ INFO] subscription: 0012: "scan" unsubscribing May 01 14:54:34 MOIPro tvheadend[23806]: mpegts: 680MHz in TDT-Madrid - tuning on TurboSight TBS 62x1 DVBT/T2 frontend : DVB-T #0 May 01 14:54:34 MOIPro tvheadend[23806]: opentv-ausat: registering mux 680MHz in TDT-Madrid May 01 14:54:34 MOIPro tvheadend[23806]: 2015-05-01 14:54:34.574 [ INFO] mpegts: 680MHz in TDT-Madrid - tuning on TurboSight TBS 62x1 DVBT/T2 frontend : DVB-T #0 May 01 14:54:34 MOIPro tvheadend[23806]: 2015-05-01 14:54:34.574 [ INFO] opentv-ausat: registering mux 680MHz in TDT-Madrid May 01 14:54:34 MOIPro tvheadend[23806]: 2015-05-01 14:54:34.583 [ INFO] subscription: 0013: "scan" subscribing to mux, weight: 5, adapter: "TurboSight TBS 62x1 DVBT/T2 frontend : DVB-T #0", network: "TDT-Madrid", mux: "680MHz", hostname: "<N/A>", username: "<N/A>", client: "<N/A>" May 01 14:54:34 MOIPro tvheadend[23806]: subscription: 0013: "scan" subscribing to mux, weight: 5, adapter: "TurboSight TBS 62x1 DVBT/T2 frontend : DVB-T #0", network: "TDT-Madrid", mux: "680MHz", hostname: "<N/A>", username: "<N/A>", client: "<N/A>" : |
Crear los Canales
Una vez que los Muxes han descubierto y «creado» los Services ya podemos crear Canales y vincularlos a dichos Services. Podrías hacerlo manualmente, uno por uno, vinculándolos al «Service» que corresponda, o mucho más sencillo, apoyarte en una función que trae Tvheadend: «Map Services«.
Desde Configuration->DVB Input->Services, haz una selección múltiple en el navegador de todas las líneas con los Servicios que te interesan, haz click en Map Selected, a continuación haz clic en todos los campos y pulsa en Map:
En la sección Configuration->Channels/EPG->Channels podrás observar cómo se han creado automáticamente los canales. A partir de aquí puedes cambiar los Tags y el número de canal a tu gusto.
Fíjate en un dato importante, Tvheadend ha asignado un nombre de icono muy especial a cada canal. Es correcto, déjalo tal cual. Lo que ha hecho es usar como nombre de icono una combinación de los detalles técnicos del canal. En internet hay paquetes que incluyen todos los logos de los canales usando dicha nomenclatura y va a sernos muy útil en el siguiente paso.
Iconos de los canales
Vamos con los iconos. Tienes que buscar un «pack» de logos que contenga todos los canales TDT. Para facilitarlo dejo aquí uno que te vale, descárgalo: LuisPa-Picon-TDT.tgz). Copia todos los logos debajo el directorio /root/.hts/picon del MOI Pro y por último le indicarás dicho directorio a la configuraicón de Tvheadend.
- Copia todos los ficheros PNG al directorio de picons
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $ scp LuisPa-Picon-TDT.tgz root@moipro.parchis.org:. $ ssh -l root moipro.parchis.org : [root@MOIPro ~]# cd .hts/ [root@MOIPro ~/.hts]# mkdir picon [root@MOIPro ~/.hts]# cd picon [root@MOIPro ~/.hts/picon]# tar xvfz ../LuisPa-Picon-TDT.tgz : [root@MOIPro ~/.hts]# systemctl restart tvheadend |
- Configuration->General->Picon path:
- Rearranca Tvheadend
1 2 | [root@MOIPro ~]# systemctl restart tvheadend |
Usar más de un sintonizador TDT
La tarjeta «TBS6281 DVB-T2/T/C Dual Tuner PCIe Card» incluye un unico conector pero por dentro tiene dos sintonizadores que pueden usarse simultáneamente:
- Configuration->DVB Input->TV Adapters
Selecciono el segundo adaptador y le asigno el mismo network que al primero, es decir: «Network» TDT-Madrid. Esta es la forma correcta de configurarlo, en vez de utilizar la opción de «Linked input».
Con dos o más sintonizadores es posible ver al menos dos (o más) canales (de distintas frecuencias) simultáneamente, o incluso grabar uno y visualizar otro.
Solo nos queda el EPG, pero eso lo vemos en la sección final de este apunte.
Fuentes Movistar TV
Para poder sintonizar los canales IPTV de Movistar TV necesitas tener un contrato de Fusión o Fusión Fibra. Si es el caso, puede usar el equipo MOI Pro como un agregador único para todas las fuentes, incluidos los canales IPTV.
Al usar como fuente los canales IPTV no es necesario instalar ningun sintonizador (El MOI Pro usará su tarjeta NIC para conectar por TCP/IP a las fuentes). Lo que sí es importante es que tengas bien configurado el acceso a los canales, es decir, el MOI tiene que ser capaz de «hablar» con el router de Movistar.
En este apunte: Movistar Fusión Fibra + TV + VoIP con router Linux describo cómo funciona el IPTV de Movistar TV. Recuerdo brevemente: El tráfico IPTV es entregado en Multicast UDP desde el ONT a través de la VLAN-2 hacia el router, si es el original entonces los clientes solo pueden suscribirse a los canales utilizando el protocolo RTP (ejemplo: rtp://239.0.0.76:8208 donde 239.0.0.76:8288 es el canal de TVE, Tvheadend soporta RTP). Ahora bien, si optas por cambiar a un router con soporte de udpxy entonces podrías solicitar los canales mediante HTTP (ejemplo: http://192.168.1.1:4022/udp/239.0.0.76:8208 donde 192.168.1.1:4022 es la dirección:puerto del udpxy y 239.0.0.76:8288 vuelve a ser TVE, Tvheadend también soporta HTTP).
El udpxy es una Daemon que se ejecuta en Linux y permite hacer relay del tráfico multicast UDP hacia clientes TCP (HTTP). Es decir, él va a tratar por un lado el tráfico/protocolo multicast (hacia el ONT/Movistar) y por otro nos ofrecerá los canales en HTTP (hacia la red casera y el Tvheadend/MOI).
Utilizo udpxy porque yo uso este router linux, así que tenlo en cuenta cuando veas más adelante HTTP en mi configuración de los Muxes.
Da igual el protocolo que uses para acceder a los canales, el problema es que hay que dar de alta bastantes y manualmente sería una pesadilla, voy enseñarte cómo crearlos de forma automática con un par de scripts disponibles aquí: luispa/iptv2hts (son forks de dos proyectos independientes: movistartv2xmltv e iptv2hts).
1. Parar Tvheadend y hacer un backup
Antes de nada, haz un backup por si las moscas…
1 2 3 4 5 6 7 8 | obelix:~ luis$ ssh -l root moipro.parchis.org root@moipro.parchis.org's password: : [root@MOIPro ~]# cd /(null)/.hts/ [root@MOIPro /(null)/.hts]# systemctl stop tvheadend [root@MOIPro /(null)/.hts]# [root@MOIPro /(null)/.hts]# tar cvfz 2015-05-01-tvheadend-backup.tgz tvheadend/ |
2. Preparar el fichero movistartv-canales.m3u
Preparo el fichero movistartv-canales.m3u. Puede crearse usando el script movistartv2xmltv o copiar el que dejo a continuación.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | #EXTM3U #EXTINF:-1,0 - Movistar TV #EXTTV:Ocio y cultura;es;CPROM;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/597.jpg rtp://239.0.0.77:8208 #EXTINF:-1,1 - La 1 HD #EXTTV:Ocio y cultura;es;LA1HD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2543.jpg rtp://239.0.0.185:8208 #EXTINF:-1,2 - La 2 #EXTTV:Ocio y cultura;es;La 2;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/3.jpg rtp://239.0.0.2:8208 #EXTINF:-1,3 - Antena 3 HD #EXTTV:Ocio y cultura;es;A3HD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2524.jpg rtp://239.0.0.186:8208 #EXTINF:-1,4 - Cuatro HD #EXTTV:Toros;es;4HD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1825.jpg rtp://239.0.0.177:8208 #EXTINF:-1,5 - Tele 5 HD #EXTTV:Ocio y cultura;es;T5HD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1826.jpg rtp://239.0.0.176:8208 #EXTINF:-1,6 - laSexta HD #EXTTV:Ocio y cultura;es;LSXHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2526.jpg rtp://239.0.0.187:8208 #EXTINF:-1,7 - Telemadrid #EXTTV:Programas;es;TMAD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/58.jpg rtp://239.0.0.25:8208 #EXTINF:-1,8 - La Otra #EXTTV:Programas;es;OTRA;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/59.jpg rtp://239.0.0.26:8208 #EXTINF:-1,9 - Movistar Series #EXTTV:Series juveniles;es;SERHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2383.jpg rtp://239.0.0.184:8208 #EXTINF:-1,10 - FOX HD #EXTTV:Policíacas;es;FOXHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1607.jpg rtp://239.0.9.134:8208 #EXTINF:-1,11 - AXN HD #EXTTV:Policíacas;es;AXNHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1608.jpg rtp://239.0.9.131:8208 #EXTINF:-1,12 - Movistar Cine #EXTTV:Programas;es;CINHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2608.jpg rtp://239.0.0.178:8208 #EXTINF:-1,13 - Calle 13HD #EXTTV:Policíacas;es;C13HD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1705.jpg rtp://239.0.5.74:8208 #EXTINF:-1,14 - TNT HD #EXTTV:Programas;es;TNTHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1609.jpg rtp://239.0.5.87:8208 #EXTINF:-1,15 - FOX life HD #EXTTV:Programas;es;FXLHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2203.jpg rtp://239.0.5.86:8208 #EXTINF:-1,16 - Deportes #EXTTV:Programas;es;DEPHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2607.jpg rtp://239.0.0.180:8208 #EXTINF:-1,17 - COSMO HD #EXTTV:Policíacas;es;CosHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1610.jpg rtp://239.0.5.71:8208 #EXTINF:-1,18 - AXN W. HD #EXTTV:Policíacas;es;FCRHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1611.jpg rtp://239.0.5.79:8208 #EXTINF:-1,19 - SyFyHD #EXTTV:Policíacas;es;SYFHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1703.jpg rtp://239.0.5.75:8208 #EXTINF:-1,20 - Comedy Central HD #EXTTV:Policíacas;es;COCHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2224.jpg rtp://239.0.0.174:8208 #EXTINF:-1,21 - MTV España #EXTTV:Programas;es;MTVES;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2533.jpg rtp://239.0.0.211:8208 #EXTINF:-1,22 - Crimen e Inv. #EXTTV:Policíacas;es;CREIN;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/697.jpg rtp://239.0.0.57:8208 #EXTINF:-1,24 - FDF #EXTTV:Policíacas;es;FDFT5;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/747.jpg rtp://239.0.0.84:8208 #EXTINF:-1,25 - Neox #EXTTV:Programas;es;NEOX;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/934.jpg rtp://239.0.0.107:8208 #EXTINF:-1,26 - Energy #EXTTV:Toros;es;energ;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/884.jpg rtp://239.0.0.59:8208 #EXTINF:-1,27 - Divinity #EXTTV:Drama;es;DIVIN;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/663.jpg rtp://239.0.0.48:8208 #EXTINF:-1,28 - Nova #EXTTV:Programas;es;NOVA;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/935.jpg rtp://239.0.0.106:8208 #EXTINF:-1,29 - Sundance HD #EXTTV:Programas;es;SunHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1615.jpg rtp://239.0.5.72:8208 #EXTINF:-1,31 - HWD HD #EXTTV:Policíacas;es;HOLHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1612.jpg rtp://239.0.5.76:8208 #EXTINF:-1,32 - AMC HD #EXTTV:Programas;es;MGMHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1613.jpg rtp://239.0.9.132:8208 #EXTINF:-1,34 - TCM HD #EXTTV:Programas;es;TCMHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2204.jpg rtp://239.0.5.89:8208 #EXTINF:-1,38 - Paramount C. #EXTTV:Cine clásico;es;PARCH;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1221.jpg rtp://239.0.0.90:8208 #EXTINF:-1,40 - EurosportHD #EXTTV:Policíacas;es;EURHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1623.jpg rtp://239.0.9.135:8208 #EXTINF:-1,41 - Eurosport 2 #EXTTV:Policíacas;es;EUSP2;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/338.jpg rtp://239.0.0.37:8208 #EXTINF:-1,42 - Sportmania #EXTTV:Policíacas;es;SPMA;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/16.jpg rtp://239.0.0.17:8208 #EXTINF:-1,43 - Teledeporte HD #EXTTV:Policíacas;es;TDPHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2544.jpg rtp://239.0.0.188:8208 #EXTINF:-1,44 - Iberalia #EXTTV:Programas;es;IBER;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/936.jpg rtp://239.0.5.6:8208 #EXTINF:-1,47 - MovistarF1 HD #EXTTV:Programas;es;MF1HD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2064.jpg rtp://239.0.5.90:8208 #EXTINF:-1,48 - Movistar MotoGP HD #EXTTV:Programas;es;MGPHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2065.jpg rtp://239.0.5.107:8208 #EXTINF:-1,50 - C+LigaHD #EXTTV:Fútbol;es;GOLHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1622.jpg rtp://239.0.9.129:8208 #EXTINF:-1,51 - C+Liga Multi #EXTTV:Fútbol;es;FUT3;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1063.jpg rtp://239.0.0.119:8208 #EXTINF:-1,54 - Movistar Fútbol HD #EXTTV:Programas;es;QU1HD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2268.jpg rtp://239.0.5.185:8208 #EXTINF:-1,55 - C+L.CampHD #EXTTV:Programas;es;CP3D;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1621.jpg rtp://239.0.9.138:8208 #EXTINF:-1,56 - Gol 2 IntHD #EXTTV:Programas;es;G2INT;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1667.jpg rtp://239.0.9.146:8208 #EXTINF:-1,64 - Futbol R. #EXTTV:Fútbol;es;fut;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/12.jpg rtp://239.0.0.97:8208 #EXTINF:-1,70 - NAT GEO HD #EXTTV:Policíacas;es;NATHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1643.jpg rtp://239.0.5.78:8208 #EXTINF:-1,71 - NG Wild HD #EXTTV:Programas;es;NGEHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1619.jpg rtp://239.0.9.136:8208 #EXTINF:-1,72 - Viajar HD #EXTTV:Policíacas;es;ViaHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1617.jpg rtp://239.0.5.73:8208 #EXTINF:-1,73 - DSC HD #EXTTV:Policíacas;es;DSCHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2205.jpg rtp://239.0.5.77:8208 #EXTINF:-1,74 - ODISEA HD #EXTTV:Policíacas;es;FHD2;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1618.jpg rtp://239.0.5.82:8208 #EXTINF:-1,75 - Historia #EXTTV:Policíacas;es;HIST;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/17.jpg rtp://239.0.0.19:8208 #EXTINF:-1,76 - A&E #EXTTV:Policíacas;es;A&E;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/340.jpg rtp://239.0.0.38:8208 #EXTINF:-1,77 - Cocina #EXTTV:Policíacas;es;COCI;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/22.jpg rtp://239.0.0.27:8208 #EXTINF:-1,78 - Decasa #EXTTV:Policíacas;es;DCASA;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/850.jpg rtp://239.0.0.71:8208 #EXTINF:-1,79 - Discov.Max #EXTTV:Policíacas;es;TVCi;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/657.jpg rtp://239.0.0.32:8208 #EXTINF:-1,80 - Baby TV #EXTTV:Policíacas;es;BABTV;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/778.jpg rtp://239.0.0.113:8208 #EXTINF:-1,81 - Disney Junior #EXTTV:Policíacas;es;PLAY;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/10.jpg rtp://239.0.0.10:8208 #EXTINF:-1,82 - Canal Panda #EXTTV:Programas;es;PANDA;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1019.jpg rtp://239.0.0.117:8208 #EXTINF:-1,83 - Nick Jr #EXTTV:Series niños;es;NIKJR;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2532.jpg rtp://239.0.0.115:8208 #EXTINF:-1,84 - Nickelodeon #EXTTV:Policíacas;es;NICKE;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/579.jpg rtp://239.0.0.69:8208 #EXTINF:-1,85 - Disney XD #EXTTV:Policíacas;es;DISXD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/11.jpg rtp://239.0.0.11:8208 #EXTINF:-1,86 - Disney HD #EXTTV:Policíacas;es;DISHD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1616.jpg rtp://239.0.0.173:8208 #EXTINF:-1,87 - Boing #EXTTV:Policíacas;es;ARSAT;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/578.jpg rtp://239.0.0.66:8208 #EXTINF:-1,88 - Clan TVE #EXTTV:Policíacas;es;CLAN;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/745.jpg rtp://239.0.0.80:8208 #EXTINF:-1,90 - Sol Música #EXTTV:Policíacas;es;SOLM;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/341.jpg rtp://239.0.0.39:8208 #EXTINF:-1,91 - 40 TV #EXTTV:Policíacas;es;40TV;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/741.jpg rtp://239.0.0.12:8208 #EXTINF:-1,92 - VH1 #EXTTV:Policíacas;es;VH1;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/581.jpg rtp://239.0.0.75:8208 #EXTINF:-1,100 - Fox News #EXTTV:Policíacas;es;FOXNW;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/845.jpg rtp://239.0.7.65:8208 #EXTINF:-1,101 - BBC World #EXTTV:Policíacas;es;BBCW;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/197.jpg rtp://239.0.0.30:8208 #EXTINF:-1,102 - CNN Int. #EXTTV:Policíacas;es;CNNI;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/342.jpg rtp://239.0.0.40:8208 #EXTINF:-1,103 - Euronews #EXTTV:Policíacas;es;Eurnw;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/119.jpg rtp://239.0.0.28:8208 #EXTINF:-1,104 - Canal 24 H. #EXTTV:Policíacas;es;C24H;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/743.jpg rtp://239.0.0.78:8208 #EXTINF:-1,105 - Al Jazeera #EXTTV:Policíacas;es;ALJAZ;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/846.jpg rtp://239.0.7.66:8208 #EXTINF:-1,106 - France 24 #EXTTV:Policíacas;es;FRA24;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/847.jpg rtp://239.0.7.67:8208 #EXTINF:-1,107 - Russia T. #EXTTV:Policíacas;es;RUSSI;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/848.jpg rtp://239.0.7.68:8208 #EXTINF:-1,108 - CNBC Eur. #EXTTV:Policíacas;es;CNBC;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/849.jpg rtp://239.0.7.69:8208 #EXTINF:-1,109 - CCTV E #EXTTV:Ocio y cultura;es;CCTVE;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/752.jpg rtp://239.0.0.65:8208 #EXTINF:-1,110 - TV5 Monde #EXTTV:Policíacas;es;TV5eu;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/198.jpg rtp://239.0.0.31:8208 #EXTINF:-1,111 - Bloomberg #EXTTV:Policíacas;es;Bloom;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/120.jpg rtp://239.0.0.29:8208 #EXTINF:-1,112 - Intereconomía #EXTTV:Policíacas;es;INTTV;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/582.jpg rtp://239.0.0.63:8208 #EXTINF:-1,114 - 13 TV #EXTTV:Policíacas;es;13TV;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/844.jpg rtp://239.0.0.91:8208 #EXTINF:-1,116 - I 24 News #EXTTV:Programas;es;I24NW;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1807.jpg rtp://239.0.0.220:8208 #EXTINF:-1,117 - CNC World #EXTTV:Programas;es;CNCWD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1805.jpg rtp://239.0.0.221:8208 #EXTINF:-1,118 - Canal Orbe 21 #EXTTV:Programas;es;COR21;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2463.jpg rtp://239.0.0.45:8208 #EXTINF:-1,150 - Canal Sur Andalucía #EXTTV:Programas;es;ANDSA;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2275.jpg rtp://239.0.0.1:8208 #EXTINF:-1,151 - Galicia TV Europa #EXTTV:Programas;es;TVGEU;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2273.jpg rtp://239.0.3.37:8208 #EXTINF:-1,152 - TV3CAT #EXTTV:Programas;es;TV3SA;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2271.jpg rtp://239.0.3.36:8208 #EXTINF:-1,153 - ETB Sat. #EXTTV:Programas;es;ETBSA;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2269.jpg rtp://239.0.0.60:8208 #EXTINF:-1,200 - LTC #EXTTV:Policíacas;es;TIEND;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/886.jpg rtp://239.0.0.98:8208 #EXTINF:-1,215 - Multicámara6 HD F1 #EXTTV:Programas;es;MT6HD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2163.jpg rtp://239.0.5.127:8208 #EXTINF:-1,216 - Multicámara5 HD F1 #EXTTV:Programas;es;MCHD5;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2084.jpg rtp://239.0.5.126:8208 #EXTINF:-1,217 - Multicámara4 HD F1 #EXTTV:Programas;es;MCHD4;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2086.jpg rtp://239.0.5.125:8208 #EXTINF:-1,218 - Multicámara3 HD F1 #EXTTV:Programas;es;MCHD3;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2087.jpg rtp://239.0.5.124:8208 #EXTINF:-1,219 - Multicámara2 HD F1 #EXTTV:Programas;es;MCHD2;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2088.jpg rtp://239.0.5.123:8208 #EXTINF:-1,220 - Multicámara1 HD F1 #EXTTV:Programas;es;MCHD1;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2090.jpg rtp://239.0.5.121:8208 #EXTINF:-1,221 - Multi1 HD F1 #EXTTV:Programas;es;GPC1H;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2025.jpg rtp://239.0.0.175:8208 #EXTINF:-1,222 - Multi2 HD F1 #EXTTV:Programas;es;M2HD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2085.jpg rtp://239.0.5.122:8208 #EXTINF:-1,223 - Multi3 HD F1 #EXTTV:Programas;es;MHD3;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2091.jpg rtp://239.0.5.117:8208 #EXTINF:-1,224 - Multi4 HD F1 #EXTTV:Programas;es;M4HD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2094.jpg rtp://239.0.5.118:8208 #EXTINF:-1,225 - Multi5 HD F1 #EXTTV:Programas;es;M5HD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2096.jpg rtp://239.0.5.119:8208 #EXTINF:-1,226 - Multi6 HD F1 #EXTTV:Programas;es;M6HD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2097.jpg rtp://239.0.5.120:8208 #EXTINF:-1,255 - Multicámara6 HD MotoGP #EXTTV:Automovilismo;es;M6HDF;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2255.jpg rtp://239.0.5.149:8208 #EXTINF:-1,256 - Multicámara5 HD MotoGP #EXTTV:Automovilismo;es;M5HDF;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2256.jpg rtp://239.0.5.150:8208 #EXTINF:-1,257 - Multicámara4 HD MotoGP #EXTTV:Automovilismo;es;M4HDF;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2257.jpg rtp://239.0.5.151:8208 #EXTINF:-1,258 - Multicámara3 HD MotoGP #EXTTV:Automovilismo;es;M3HDF;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2258.jpg rtp://239.0.5.152:8208 #EXTINF:-1,259 - Multicámara2 HD MotoGP #EXTTV:Automovilismo;es;M2HDF;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2259.jpg rtp://239.0.5.153:8208 #EXTINF:-1,260 - Multicámara1 HD MotoGP #EXTTV:Automovilismo;es;M1HDF;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2260.jpg rtp://239.0.5.154:8208 #EXTINF:-1,261 - Multi1 HD MotoGP #EXTTV:Automovilismo;es;MLHF1;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2261.jpg rtp://239.0.5.155:8208 #EXTINF:-1,262 - Multi2 HD MotoGP #EXTTV:Automovilismo;es;ML2HF;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2262.jpg rtp://239.0.5.156:8208 #EXTINF:-1,263 - Multi3 HD MotoGP #EXTTV:Automovilismo;es;ML3HF;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2263.jpg rtp://239.0.5.157:8208 #EXTINF:-1,264 - Multi4 HD MotoGP #EXTTV:Automovilismo;es;ML4HF;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2264.jpg rtp://239.0.5.158:8208 #EXTINF:-1,265 - Multi5 HD MotoGP #EXTTV:Automovilismo;es;ML5HF;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2265.jpg rtp://239.0.5.159:8208 #EXTINF:-1,266 - Multi6 HD MotoGP #EXTTV:Automovilismo;es;ML6HF;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/2266.jpg rtp://239.0.5.160:8208 #EXTINF:-1,504 - Cuatro #EXTTV:Toros;es;CUATR;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1843.jpg rtp://239.0.0.4:8208 #EXTINF:-1,505 - Tele 5 #EXTTV:Ocio y cultura;es;TELE5;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1844.jpg rtp://239.0.0.5:8208 #EXTINF:-1,523 - Calle 13 #EXTTV:Policíacas;es;CA13;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1706.jpg rtp://239.0.0.13:8208 #EXTINF:-1,598 - C+L.Camp #EXTTV:Programas;es;CLSD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1597.jpg rtp://239.0.0.118:8208 #EXTINF:-1,599 - C+Liga #EXTTV:Fútbol;es;CLISD;http://172.26.22.23:2001/appclient/incoming/epg/MAY_1/imSer/1603.jpg rtp://239.0.0.42:8208 |
Si quieres crearlo tú mismo hazlo desde cualquier Linux que tenga Python 2.7 y Xmltv (no lo hago desde MOI Pro porque no tiene instalado Xmltv):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | luis@aplicacionix ~ # echo "media-tv/xmltv tv_combiner" > /etc/portage/package.use/xmltv luis@aplicacionix ~ # emerge -v xmltv luis@aplicacionix ~ # export EPYTHON=python2.7 luis@aplicacionix ~ # easy_install --upgrade pytz : luis@aplicacionix ~ $ curl -L -Ok https://github.com/LuisPalacios/iptv2hts/archive/master.zip luis@aplicacionix ~ $ unzip master.zip luis@aplicacionix ~ $ cd iptv2hts-master/movistartv2xmltv/ luis@aplicacionix ~/iptv2hts-master/movistartv2xmltv $ chmod 755 *.py luis@aplicacionix ~/iptv2hts-master/movistartv2xmltv $ cat tv_grab_es_movistar.config { "demarcation": "", "days": "6", "filename": "/tmp/movistartv-guia.xml", "quiet": "False", "offset": "0", "logfile": "/tmp/movistartv.log" } luis@aplicacionix ~/iptv2hts-master/movistartv2xmltv $ export EPYTHON=python2.7 luis@aplicacionix ~/iptv2hts-master/movistartv2xmltv $ ./tv_grab_es_movistar.py -h luis@aplicacionix ~/iptv2hts-master/movistartv2xmltv $ ./tv_grab_es_movistar.py --m3u --output movistartv-canales.m3u luis@aplicacionix ~/iptv2hts-master/movistartv2xmltv $ sed -i "s/rtp://@/rtp:///" movistartv-canales.m3u (Este fichero movistartv-canales.m3u lo compiaré más adelante al MOI Pro) |
3. Inserta los canales Movistar TV en Tvheadend
El siguiente paso consiste en insertar los canales que tenemos en este fichero movistartv-canales.m3u.
AVISO!!: El script no comprueba si ya has hecho una inserción previa, de hecho si lo haces añadirás una y otra vez los canales. Si quieres repetir el script te recomiendo que borres la Network «IPTV Movistar» (borrará los Muxes y Servicios) y todos los Canales de Movistar TV.
Antes de explicarte cómo insertarlos te voy a explicar cómo borrarlos, por si acaso ya los insertaste en el pasado y necesitas hacer una limpieza previa. Aunque ya lo dice al principio de este apunte, vuelvo a recordar que desactivo OverTheAir EPG en todos sitios, ya hablaré más adelante del EPG.
- Arranca tvheadend: [root@MOIPro ~]# systemctl start tvheadend
- TV Adapters: Desactivar Over the Air EPG en todos
- Web UI: Borra la Network «IPTV Movistar» (borrará los Muxes y Servicios)
- Web UI: Borra todos los Canales de Movistar TV
- Web UI: Config->Channel/EPG->EPG Grabber->OTE Grabbers: force initial EPG scan at startup: desactivo
- Web UI: Config->Channel/EPG->Channel Tags: Eliminar los tags de Movistar TV o se volverán a crear.
- Parar tvheadend: [root@MOIPro ~]# systemctl stop tvheadend
- SSH: [root@MOIPro /(null)/.hts/tvheadend]# rm epgdb.v2
- SSH: [root@MOIPro /(null)/.hts/tvheadend/epggrab/otamux]# rm *
- SSH: [root@MOIPro /(null)/.hts/tvheadend/epggrab/xmltv/channels]# rm *
- Arranca tvheadend: [root@MOIPro ~]# systemctl start tvheadend
Asumiendo que tienes la configuración limpia el proceso para insertar los canales consiste en conectar por SSH con el MOI, descargar el proyecto iptv2hts desde GitHub y ejecutar el script iptv2hts.py para que inserte los canales en la configuración de Tvheadend:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | ___RECUERDA ENVIAR EL FICHERO "movistartv-canales.m3u" al MOI___ luis@aplicacionix ~/iptv2hts-master/movistartv2xmltv $ scp movistartv-canales.m3u root@moipro.parchis.org:. : ___CONECTO CON EL MOI PRO___ obelix:~ luis$ ssh -l root moipro.parchis.org root@moipro.parchis.org's password: : ___ME BAJO LOS SCRIPTS___ [root@MOIPro ~]# cd /(null)/.hts/ [root@MOIPro /(null)/.hts]# curl -L -Ok https://github.com/LuisPalacios/iptv2hts/archive/master.zip [root@MOIPro /(null)/.hts]# unzip master.zip ___PREPARO el Script y el Fichero de Canales___ [root@MOIPro /(null)/.hts]# cd tvheadend/ [root@MOIPro /(null)/.hts/tvheadend]# cp ../iptv2hts-master/iptv2hts.py . [root@MOIPro /(null)/.hts/tvheadend]# cp $HOME/movistartv-canales.m3u . ___EJECUTO LA INSERCIÓN___ [root@MOIPro /(null)/.hts/tvheadend]# systemctl stop tvheadend [root@MOIPro /(null)/.hts/tvheadend]# ./iptv2hts.py -x 192.168.1.1:4022 -o canales -n 2 -r -c utf-8 movistartv-canales.m3u OK ___REARRANCO Tvheadend___ [root@MOIPro /(null)/.hts/tvheadend]# systemctl start tvheadend |
Explicación de los argumentos del programa iptv2hts.py:
- ./iptv2hts.py. Creará tantos Muxes como canales existan en el fichero movistartv-canales.m3u
- -x 192.168.1.1:4022. Dirección de mi servidor udpxy.
- -o canales. Crear los Canales.
- -n 2. Usar como número de canal el que viene justo delante del guión (-) en la línea #EXTINF.
- -r. Eliminar el número de canal del nombre del canal.
- -c utf-8. Indicar que el fichero .M3U viene en formato UTF-8.
4. Detección de los Servicios
Ahora que se han insertado Muxes y Canales vamos a pedir que se detecten los Servicios y a conectarlos con los Canales.
NOTA: Antes de hacer el scan de los Servicios, te recomiendo que borres los Muxes que no te interesan: otras autonomías, canales no contratados, etc.
NOTA: Te recomiendo tener un Terminal conectado a tu MOI Pro y ver el logging, aprenderás cómo funciona Tvheadend: journalctl -f
Conecta con el Interfaz Web de Tvheadend y edita Configuration->DVB Inputs->Networks->»IPTV Movistar».
- Activar Network Discovery
- Activar Idle Scan Muxes
- Poner «4» en el número de Max Input Streams
Verás en el logging cómo empieza el scanning. En la sección Status podrás ver cómo se van escaneando cuatro canales de forma simultánea (esa es la razón por la que pongo el Max Input Streams en ‘4’, para no saturar). Observa en la ventana Web cómo, poco a poco, se van añadiendo servicios (puede llegar a tardar bastante tiempo, en mi caso fue casi una hora).
5. Asociación de los Canales
Una vez que ha terminado de hacer el scan y tenemos el mismo número de Muxes que de Servicios, ya podemos ir a la lengüeta de Configuration->DVB Inputs->Services, seleccionamos todos los servicios de «Movistar TV» y hacermos click en Map Services, marcamos las tres últimas opciones y pulsamos en MAP.
AVISO: No te olvides de Seleccionar los Services que quieres asociar a canales antes de hacer el Map.


Recuerda que durante la ejecución de iptv2hts.py había usado la opción -o canales para que se creasen los Canales. Ahora, durante el Map Services, los ha encontrado y asociado automáticamente a cada Service, ahorrándonos mucho trabajo.
6. Terminar la configuración
Una vez que terminas de configurar los canales ya puedes eliminar los que no deseas y tendrás todo configurado. Puedes deshabilitar el Network Discovery, Idle Scan Muxes y quitar el límite al número de streams disponibles:
Solo nos queda el EPG, pero eso lo vemos en la sección final de este apunte.
Fuentes Satélite
Para los canales que se reciben por Satélite utilizo la «TBS6991SE PCI-E DVB-S2 Dual Tuner TV card», una tarjeta soportada en el MOI Pro que además permite conectar la tarjeta de abonado.
Preparar Muxes Pre-Definidos
Tvheadend permite, cuando se configuran las sintonizadoras, seleccionar muxes predefinidos y es recomendable actualizar los que incluye el paquete de sofware con los originales, que están disponibles en internet.
Baja una copia de las DTV Scan Tables y copialas al servidor MOIPro.
1 2 3 4 5 6 7 8 9 10 | En otro ordenador donde tengas git instalado: $ cd tmp $ git clone https://git.linuxtv.org//dtv-scan-tables.git $ cd dtv-scan-tables $ scp -r * root@moipro.parchis.org:/usr/share/tvheadend/data/dvb-scan Conecta con el MOIPro vía SSH: # ssh -l root moipro.parchis.org # ln -s /usr/share/tvheadend/data/dvb-scan /usr/share/dvb # systemctl restart tvheadend |
Crear la «Network» para Satélite
El siguiente paso consiste en Añadir una «Network» de tipo DVB-S usando el listado de frecuencias pre-definido que vimos antes. En mi caso la voy a llamar «TDT-Madrid».
- Network->Add
- DVB-S
- Pre-defined Muxes: (El que corresponda en tu caso)
- Ok A partir de aquí configuras tus muxes, servicios, etc.
EPG
Al principio de este apunte describía mi estrategia respecto a la Guía de Programación (EPG). He optado por «no» utilizar la Guía OTA (Over The Air) de las tarjetas sintonizadoras. Voy a usar Scripts en Python capaces de descargarla desde internet (para las fuentes TDT y Satélite) y desde el servicio SD&S (Service Discovery & Selection de la propia Movistar TV). Después los fusionaré en un único archivo XMLTV que enviaré a Tvheadend.
Hay un pequeño problema, no puedo ejecutar los scripts Python en el propio MOI Pro. Estoy estudiando cómo compilar los paquetes necesarios y el día que lo consiga documentaré aquí cómo hacerlo. Mientras tanto verás que hay que ejecutar en cualquier otro Linux de tu instalación la descarga de los EPG’s y usar NFS para enviar el resultado al MOI.
AVISO: En cuanto sepa cómo ejecutar los scripts en el propio MOI lo documentaré aquí.
1. Generar el fichero guia.xml
He preparado un script llamado do_grab.sh que se apoya en WebGrab+Plus para recolectar el EPG de TDT y Satélite y en movistartv2xmltv para la parte de Movistar TV. Además combina ambos en un único fichero de salida: guia.xml
1.1. EPG de TDT/Satélite con WebGrab+Plus
Para ver un ejemplo sobre cómo instalarlo, consulta este apunte: WebGrab+Plus con TVHeadEnd en Linux.
Script para ejecutarlo y ejemplo del fichero de configuración.
1 2 3 4 | #!/bin/bash # cd /home/luis/wg++ mono Webgrab+Plus.exe "/home/luis/wg++" |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <!--?xml version="1.0"?--> <!-- Fichero de configuración de WebGrab para bajarme el EPG de desde fuentes alternativas --> <!-- filename - Ruta completa del archivo EPG (Guia) que se generará --> /home/luis/wg++/guide.xml <!-- mode - Opción para detectar los errores que pudieran surgir, lo dejo vacío --> <!-- postprocess - Extraer más metadatos de la EPG usando REX. --> <!-- Recomiendan usar los siguiente: --> <!-- <postprocess run="y" grab="y">n</postprocess> --> <!-- logging - Activar o no el logging --> on <!-- retry - veces que debe reintentar descargar la info de una web si falla --> 4 <!-- timespan - Número de días futuros que queremos que nos descargue la guía, es el número de días además del día de hoy, un 3 serían 4 días --> 2 <!-- update - forzar globalmente cómo hacer las actualizaciones --> <!-- i incremental only updates of changes , gabs, repairs and new shows l light forces update of today and new shows, rest as incremental s smart forces update of today and tomorrow and new shows, rest as light f full forces full update f force --> <!-- A partir de aquí van los canales, dejo uno de ejemplo --> La 1 |
1.2. EPG de Movistar TV con movistartv2xmltv
El script movistartv2xmltv lo vimos antes, está disponible aquí: luispa/iptv2hts.
Lo descargo e instalo en mi equipo externo Linux (con Gentoo).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | luis@aplicacionix ~ # echo "media-tv/xmltv tv_combiner" > /etc/portage/package.use/xmltv luis@aplicacionix ~ # emerge -v xmltv luis@aplicacionix ~ # export EPYTHON=python2.7 luis@aplicacionix ~ # easy_install --upgrade pytz : luis@aplicacionix ~ $ curl -L -Ok https://github.com/LuisPalacios/iptv2hts/archive/master.zip luis@aplicacionix ~ $ unzip master.zip luis@aplicacionix ~ $ cd iptv2hts-master/movistartv2xmltv/ luis@aplicacionix ~/iptv2hts-master/movistartv2xmltv $ chmod 755 *.py luis@aplicacionix ~/iptv2hts-master/movistartv2xmltv $ cat tv_grab_es_movistar.config { "demarcation": 19, "mcast_port": 3937, "tvpackages": ["UTX6B", "UTX6C"], "quiet": "False", "mcast_grp_start": "239.0.2.129", "days": "6", "filename": "/home/luis/iptv2hts-master/movistartv2xmltv/movistartv-guia.xml", "offset": "0", "logfile": "/home/luis/iptv2hts-master/movistartv2xmltv/movistartv.log" |
Script do_grab.sh
Ejecuta los dos «grabbers» o recolectores anteriores, cada uno genera un fichero XMLTV como salida que combino en un único fichero XMLTV final para que sea consumido por Tvheadend. El resultado se llama guia.xml y se copia en el directorio NFS.
Tienes una copia de este script en el proyecto luispa/iptv2hts en GitHub. Descárgalo, copialo en cualquier directorio de tu Linux externo, adáptalo para que apunte a los directorios donde tienes instalado tanto WebGrab+Plus como movistartv2xmltv, el nombre del directorio destino NFS, etc… y prográmalo con crontab.
NOTA: Todos los nombres de directorios que utilizo son los que empleo en mi caso, tendrás que revisar todos estos scripts para adecuarlos a tu instalación.
2. Insertar el fichero guia.xml en Tvheadend
Nos volvemos al MOI. Para que pueda acceder al fichero guia.xml usaré NFS, así que adapta todo esto a tu instalación y mira un ejemplo donde monto el directorio /media/NAS. Para hacerlo creo dos ficheros bajo /etc/systemd/system para montar automáticamente el directorio /media/NAS.
1 2 3 4 5 6 7 8 9 10 11 12 13 | [Unit] Description=Montar por NFS el directorio NAS After=syslog.target Before=tvheadend.service [Mount] What=panoramix.parchis.org:/NAS Where=/media/NAS Options=nolock Type=nfs [Install] WantedBy=multi-user.target |
1 2 3 4 5 6 7 8 | [Unit] Description=Automount /media/NAS [Automount] Where=/media/NAS [Install] WantedBy=multi-user.target |
Habilito el servicio y rearranco:
1 2 3 4 5 | [root@MOIPro /etc/systemd/system]# systemctl enable media-NAS.mount [root@MOIPro /etc/systemd/system]# systemctl enable media-NAS.automount [root@MOIPro /etc/systemd/system]# reboot |
Configurar TVheadend para que consuma el fichero guia.xml
El último paso consiste en configurar Tvheadend para que lea el fichero guia.xml que se genera de forma externa al menos una vez al día. Tienes que crear un fichero /usr/bin/tv_grab_guia. Es importante que lo crees en /usr/bin
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #!/bin/bash xmltv_file_location=/media/NAS/moipro/guia.xml dflag= vflag= cflag= qflag= if (( $# < 1 )) then cat "$xmltv_file_location" exit 0 fi for arg do delim="" case "$arg" in #translate --gnu-long-options to -g (short options) --description) args="${args}-d ";; --version) args="${args}-v ";; --capabilities) args="${args}-c ";; --quiet) args="${args}-q ";; #pass through anything else *) [[ "${arg:0:1}" == "-" ]] || delim=""" args="${args}${delim}${arg}${delim} ";; esac done #Reset the positional parameters to the short options eval set -- $args while getopts "dvcq" option do case $option in d) dflag=1;; v) vflag=1;; c) cflag=1;; q) qflag=1;; ?) printf "unknown option: -%sn" $OPTARG printf "Usage: %s: [--description] [--version] [--capabilities] n" $(basename $0) exit 2 ;; esac >&2 done if [ "$dflag" ] then printf "$0 is a wrapper grabber around Movistar TVn" fi if [ "$vflag" ] then printf "0.2n" fi if [ "$cflag" ] then printf "baselinen" fi if [ "$qflag" ] then printf "" fi exit |
- Da permisos de ejecución al script y rearranca Tvheadend para que lo detecte
1 2 3 4 5 | [root@MOIPro /usr/bin]# chmod 755 /usr/bin/tv_grab_guia [root@MOIPro /usr/bin]# systemctl restart tvheadend |
*
Conecta a través del interfaz Web y modifica Configuration-> Channel/EPG-> EPG Grabber-> Internal Grabber. Selecciona el ejecutable tv_grab_guia y cambia la programación sobre «cuando» debe ejecutarse:
Ajuste fino del EPG
Probablemente tengas varios canales de Movistar TV que no muestran el EPG. Eso se debe a que durante la inserción de los canales Tvheadend hizo un buen trabajo asociando el EPG correspondiente, pero no en todos los casos. Repasa qué canales «no» tienen EPG y desde el administrador Web asociale el adecuado.
Un ejemplo: El canal Divinity NO me mostraba el EPG, desde el configurador desactivé la asociación incorrecta (rojo) y activé la asociación correcta (verde).
El resultado final es el siguiente:
Después forcé que Tvheadend re-ejecutase el Grabber. El truco para hacerlo es sencillo. Ve a la ventana de configuración, modifica cualquier campo de la sección Multi-grabber, por ejemplo añade un punto al final de la línea de comentario «Cron multi-line» y vuelve a borrarlo (es decir, en realidad no estás cambiando nada pero Tvheadend creeará que lo has hecho), después pulsa el botón de «Save», en ese momento se ejecuta el grabber de nuevo. En los clientes KODI: Programa->Configuración->TV->EPG/Guía->»Reset DB guía». Cuando vuelvas a la lista de canales deberías ver la Guía que antes te faltaba.
Hay más casos donde necesitarás ajuste fino: uno es si asoció dos EPG’s (en vez de uno). Puedes eliminar la asociación redundante, por ejemplo: El canal Baby TV que ves a continuación, tiene como ID EPG del canal el código «BABTV» y estaba asociado a un EPG con un uuid muy largo (rojo), que he quitado para dejar solo el bueno (verde).
Hay otro caso que despista bastante, por ejemplo donde el código a asociar es distinto al lógico, mira en este caso donde el canal Movistar F1 tiene como código (DEP1), bueno, pues funciona.
Compilar Tvheadend desde GitHub
Si quieres aventurarte a actualizar tú mismo el ejecutable de Tvheadend solo necesitas un equipo ARM donde puedas instalar el entorno de desarrollo. Puedes optar por montarte un sistema de crosscompilación (desde un x86) o bien instalarte Linux en un equipo nativo ARM. En mi caso he optado por esto último usando una Raspberry Pi2. En el apunte Gentoo en Raspberry Pi 2 tienes descrito todo el proceso. Además, al final del mismo encontrarás una sección llamada Compilar Tvheadend para MOI Pro.
Reboot automático diario
Si no te fias de la estabilidad del equipo o hace cosas raras igual te vendría bien re-arrancarlo todos los días, a mi es algo que me ha funcionado bastante bien. Le meto un «reboot» diario :-). Esto es lo que he hecho:
Conecto por SSH con el equipo, creo los ficheros para systemd: reboot.timer y reboot.service, habilito el primero (.timer) y lo arranco. A partir de ese momento todos los días se ejecutará un reboot a las 4 de la mañana, aquí los ficheros:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | $ ssh -l root moipro.parchis.org -p 22 root@moipro.parchis.org's password: [root@MOIPro ~]# [root@MOIPro ~]# cd /etc/systemd/system [root@MOIPro /etc/systemd/system]# cat > reboot.timer [Unit] Description=Rearrancar el equipo a las 04:00 [Timer] OnCalendar=*-*-* 04:00:00 Unit=reboot.service [Install] WantedBy=timers.target <==== (pulsar CTRL-D) [root@MOIPro /etc/systemd/system]# [root@MOIPro /etc/systemd/system]# cat > reboot.service [Unit] Description=Rearrancar el equipo [Service] Type=oneshot ExecStart=/sbin/reboot <==== (pulsar CTRL-D) [root@MOIPro /etc/systemd/system]# systemctl enable reboot.timer [root@MOIPro /etc/systemd/system]# systemctl start reboot.timer [root@MOIPro /etc/systemd/system]# |
Backup
Si tienes un disco o pastilla USB antigua por ahí guardada en un cajón, te recomiendo darle una utilidad mucho mejor, hacer backups incrementales de tu instalación, en concreto el directorio más importante es /(null)/.hts/tvheadend, aunque ya de paso salvaré también /etc.
Conecta el disco USB a tu MOI y averigua qué nombre de dispositivo le asigna el kernel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | [root@MOIPro ~]# dmesg usb 2-1.3: new high speed USB device number 4 using fsl-ehci scsi0 : usb-storage 2-1.3:1.0 input: LaCie little disk (button) as /devices/platform/fsl-ehci.1/usb2/2-1/2-1.3/2-1.3:1.1/input/input1 generic-usb 0003:059F:1006.0001: input,hidraw0: USB HID v1.11 Device [LaCie little disk (button)] on usb-fsl-ehci.1-1.3/input1 scsi 0:0:0:0: Direct-Access LaCie little Disk PQ: 0 ANSI: 4 sd 0:0:0:0: [sda] 625142448 512-byte logical blocks: (320 GB/298 GiB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 10 00 00 00 sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda: sda1 sda2 sd 0:0:0:0: [sda] Attached SCSI disk usb 2-1.3: reset high speed USB device number 4 using fsl-ehci usb 2-1.3: reset high speed USB device number 4 using fsl-ehci usb 2-1.3: reset high speed USB device number 4 using fsl-ehci usb 2-1.3: reset high speed USB device number 4 using fsl-ehci usb 2-1.3: reset high speed USB device number 4 using fsl-ehci usb 2-1.3: reset high speed USB device number 4 using fsl-ehci sd 0:0:0:0: [sda] Unhandled error code sd 0:0:0:0: [sda] Result: hostbyte=0x07 driverbyte=0x00 sd 0:0:0:0: [sda] CDB: cdb[0]=0x28: 28 00 00 00 03 00 00 00 08 00 end_request: I/O error, dev sda, sector 768 Buffer I/O error on device sda, logical block 96 usb 2-1.3: reset high speed USB device number 4 using fsl-ehci usb 2-1.3: reset high speed USB device number 4 using fsl-ehci usb 2-1.3: reset high speed USB device number 4 using fsl-ehci usb 2-1.3: reset high speed USB device number 4 using fsl-ehci |
AVISO: Si el disco traía una partición ya creada, la voy a borrar, pero puede que el MOI la «monte», así que fíjate y desmonta el file system antes de continuar.
Como puedes observar, en mi caso asocia el device /dev/sda. Este dato es importantísimo, utiliza el nombre que haya asignado en tu propio caso, no te fies, podrías borrar el disco incorrecto.
ATENCIÓN: Mucho cuidado con los comandos siguientes. Voy a borrar el disco, en mi caso lo ha reconocido como /dev/sda, fíjate cómo lo ha reconocido en el tuyo y usa el nombre del dispositivo adecuado.
Borro todo el contenido del disco y creo una única partición de tipo Linux (tipo 83) que ocupa el disco entero. Último aviso, no hagas lo siguiente si no entiendes lo que estás haciendo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | [root@MOIPro ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1 1+0 records in 1+0 records out 512 bytes (512B) copied, 0.001293 seconds, 386.7KB/s [root@MOIPro ~]# fdisk /dev/sda Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-38913, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-38913, default 38913): Using default value 38913 Command (m for help): p Disk /dev/sda: 320.0 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 38913 312568641 83 Linux Command (m for help): w [root@MOIPro ~]# |
Creo un File System de tipo EXT4.
1 2 3 4 5 6 | [root@MOIPro ~]# mkfs.ext4 /dev/sda1 ___IMPORTANTE !!!: Puede que monte el nuevo filesystem, así que desmóntalo manualmente [root@MOIPro ~]# umount /dev/sda1 |
Creo el directorio donde montaré el USB.
1 2 3 | [root@MOIPro ~]# mkdir /media/backup |
Preparo el montaje durante el boot:
1 2 3 4 5 6 7 8 9 10 11 12 | [Unit] Description=Montar el USB para Backups Conflicts=umount.target After=syslog.target [Mount] What=/dev/sda1 Where=/media/backup Type=ext4 [Install] WantedBy=multi-user.target |
Habilito en Unit y rearranco el equipo.
1 2 3 4 | [root@MOIPro /etc/systemd/system]# systemctl enable media-backup.mount [root@MOIPro /etc/systemd/system]# reboot |
Para el backup usaré la técnica descrita en este apunte, basada en Rsync y backups incrementales usando Hard Links con un script llamado rbme que facilita todo el proceso.
1 2 3 4 5 6 | [root@MOIPro ~]# cd /usr/bin [root@MOIPro /usr/bin]# curl -L -Ok https://raw.githubusercontent.com/LuisPalacios/rbme/master/rbme_moipro [root@MOIPro /usr/bin]# mv rbme_moipro rbme [root@MOIPro /usr/bin]# chmod 755 rbme |
Preparo el fichero de configuración y programación en el cron.
1 2 3 4 5 6 7 8 9 10 11 12 13 | BACKUP_PATH="/media/backup" MIN_FREE_BEFORE_HOST_BACKUP="30000" MIN_INODES_BEFORE_HOST_BACKUP="100000" MIN_FREE_AFTER_HOST_BACKUP="40000" MIN_INODES_AFTER_HOST_BACKUP="300000" MIN_KEEP_OLD_BACKUPS="30" VERBOSE=${VERBOSE=} STATISTICS="yes" MAILTO="" MAILFROM="" MAILSTYLE="all" LOGFILE=$(date +"/var/log/$ME.log.%d") RSYNC_RSH="ssh -c blowfish-cbc” |
NOTA: LO SIGUIENTE ESTÁ TODAVÍA WORK IN PROGRESS
Creo un archivo de control en mi disco USB.
1 2 3 | [root@MOIPro ~]# touch /media/backup/.mi-disco-usb.txt |
Creo un script para ejecutar rbme.
1 2 3 4 5 6 | #!/bin/bash # if [ -f "/media/backup/.mi-disco-usb.txt" ]; then rbme totobo:/Apps fi |
Hola, en primer lugar me gustaría felicitarte por el blog, tienes proyectos muy interesantes aquí.
Pregunta rápida: ¿que distribución (y versión de la misma) de Linux usa el MOI PRO+ que estás usando?
¡Gracias!
Hola, pues la verdad no lo se, pero me da que han partido de Ubuntu, hay varias referencias a otro producto que tienen llamado MatrixTV y este último también está basado en Linux y por lo que he visto en Sourceforge apunta a que parten de Ubuntu. Ahora bien, el linux de MOIPro está muy reducido, no tiene casi nada y cuesta bastante añadirle «extras». Por ejemplo, a mi me interesa añadirle el proyecto xmltv para la gestión del EPG y estoy viendo cómo conseguir compilarlo desde un un sistema externo (cross-compilación), el dia que lo consiga ampliaré este artículo.
@chuskywalker, otra cosa, aunque el Linux está muy limitado, sí es posible meterle bastante mano, hacerte scripts, retocar/manipular el Tvheadend desde línea de comandos.
Hola,
Llevo un mes y pico con un proyecto parecido al tuyo.
Mi configuración esta en un N54l con xpenology. Con un par de sintonizadores dvb-t( af9015 y rtl238t). Lo tengo en marcha y va bastante bien.
Ahora me estoy volviendo loco con el tema de IPTV. Tengo un proveedor de iptv que me da acceso a 125 canales en una lista m3u. Con iptv simple en kodi va de lujo, y es como el proveedor recomienda el uso. A mi me gustaría integrarla en tvhradend, ya que el proveedor limita el número de dispositivos. Si la paso por aquí no tendría esa limitación.
Alguna idea ? No encuentro nada.
Hola, la verdad es que no entiendo bien la pregunta, estás buscando algún script para que te configure las 125 fuentes IPTV en Tvheadend?, si es así siento no poder ayudarte. Lo único que te puedo sugerir es que cojas otros fuentes en python y vayas haciéndote el tuyo propio. La estructura de Tvheadend es relativamente sencilla, después de echarle varias horas investigándola claro…
Hola tu server tambien funciona como iptv
El «tvheadend» es el software que corre en el moipro y que hace el tema de convertir señal a streams IPTV. El (tvheadend) «no» es un servidor IPTV que yo sepa, sino que envía los streams. No se si te refieres a eso.
Lo que intento hacer el añadir las url de los canales de la lista de mi proveedor a tvheaend, como si fueran fuentes iptv.
La cuestión es que no consigo entender cómo configurar el iptv de tvheaend.
He visto algún tutoríal que explica como añadir iptv de Movistar pero no me ayudo.
Yo tengo un http://ip-proveedor.com:1234/canal/1
Y quiero añadirla como si fuera un mux o un servicio mas en tvheaend. Es posible… Igual no explico bien lo que quiero hacer.
El tutorial del moi pro es el mas completo que e visto hasta ahora te felicito. Tengo problemas en anadir el EPG en el moi, en mi caso quisiera usar mc2mxl te agadeceria de todo corazon que me puedas ayudar con esa guia.
Hola Alex, estás intentando hacer funcionar el recolector (programas python) en el MOIPro?. Si es así, desiste… yo tampoco lo he conseguido. Es harto complicado, hay que instalar múltiples programas, compilarlos fuera, llevarlos, dependencias, etc etc… tiré la toalla. Lo que he decidido es «ejecutar» la recolección (programas pyhton, etc) en un Linux fuera del moipro. Ahí puedes usar un Linux que tengas en un servidor o en una Pi2 por ejemplo, delegándole dicha función. Después (usando NFS) puedes depositar el resultado (ficheros XMLTV) en el MOIPro, y ahí (en el MOIPro) poner un pequeño script en Bash para que «lea» el contenido del fichero ya procesado. Si encuentro un rato un finde de estos le vuelvo a meter mano al artículo e intento documentar esta parte un poco mejor…
Muy buen tutorial. Tengo una duda respecto a la guia, como puedo usar el mc2xml dentro de tvheadend en el moi.
Hola Alex, mira mi respuesta anterior…
He tratado de muchas maneras anadir url http pero se me ha hecho imposible. Quiero tratar de la manera que expones con el archivo luispa/iptv2hts pero no entiendo cuales son las partes que tengo que modificar. Si hay que modificar el iptv2hts.py ya que vi unas ip y puertos que son los mismos de la lista de canales.
Tengo un moi plus y deje de utilizar el tvheadend por cesbo astra, en el mismo moi, y uso un middleware llamado stalker, estoy Armando un iptv server.
Soy de peru movistar Aun no ha puesto canales por fibra pero como hiciste con el tema de la encriptacion se q usan playready en iptv
No hago nada de encriptación, todo lo que uso son canales que he contratado, se que el moi incluye un proxy software relacionado con eso pero lo desconozco. Le echaré un ojo a eso de stalker, gracias.
Hola Julio Cesar. Una consulta llegaste a montar tu servidor iptv
quien me puede ayudar a montarlo el iptv para mi isp
Buenos días.
Me parece muy interesante tu proyecto. Yo estoy buscando algo parecido para poder servir a cajas MAG250 /254 /255. ¿Has oído hablar de estos receptores IPTV?.
Un saludo.
Hola, no conozía las MAG25x, pero he estado mirando y tienen buena pinta; deberían funcionar contra el MOIPro… Por mi lado me gusta cacharrear así que seguiré con la Pi.
Luis por mas que trato de hacer funcionar la parte de IPTV no lo puedo echar andar. Quiero anadir unas lista m3u adicional a los canales que ya tengo por dvbs. He tratado la manera que explicas pero nada aun que lo que quiero anadir no trabaja con upd. A ver si tienes un tiempo y puedes explicar mejor ese aspecto.
Hola mi pregunta es la siguiente yo tengo iptv de una compañia he podido capturar los enlaces y ponerlos a funcionar con VLC lo malo esq es direccionamiento privado osea solo sirve en la red de esta compañia si me pego a internet de otro proovedor y pongo la lista no funciona como hago para poder retransmitir esta lista y hacer mi propio servidor me podrias ayudar hay algun programa que haga tal cosa?
Hola Luis
Estoy mirando y mirando tu manual y cada día me gusta más el moi pro
Mi pregunta es
No tengo ni idea de Linux
Si me lo compro es difícil de configurarlo?
Siguiendo tu manual puedo llegar hacerlo andar?
Muchas gracias por compartir y por hacer este magnífico manual
Preg: No tengo ni idea de Linux. Si me lo compro es difícil de configurarlo?
Resp: No si no entras en el Linux :-).
Ya se que la respuesta va con trampa, pero es la correcta. Puedes configurarlo vía Web UI, arrancar el servicio (tvheadend en este caso) y este a su vez configurarlo y usarlo vía Web UI. Ahora bien, si quieres «meterle mano» y salirte del estándar y hacer más cosas, entonces necesitarás trastear vía Linux. Hace falta? en principio no, pero se me ocurren cosas que yo he hecho como por ejemplo: Me he compilado una nueva versión de tvheadend y la he copiado al equipo, me he hecho un recolector (script) del EPG a-medida, he manipulado la forma en la que arranco/paro el tvheadend. Es decir, en mi caso sí necesité Linux, pero lo que viene de serie en la «caja» está pensado para no entrar nunca en Linux.
puedo capturar con el moipro los canales de un proveedor de tv el proveedor me entrega la penal con un simple cable coaxial directo a la tv
Sí, tendrías que comprar el moi que soporta tarjetas y poner una TDT
Hola luis, brutal el tutoria pero, habría alguna posibilidad que en vez de recibir con los raspberry pi, se pueda recibir en receptores satelitares?
Gracias!
O con el receptor de openelec valdría para tal efecto y sustituir el raspberry pi?
GRACIAS por adelantado.
El OpenELEC es un Software que coore encima de la raspberry Pi (o de otros equipos lo soporten)
Hola luis,
Lo cierto, es que he visto terminales de openelec que llevan ese software y así tener el terminal con la potencia del soft openelec y un mando fisico en vez de uno virtual.
Gracias por tu respuesta y tu manual.
Un saludo.
Hola, pues la verdad es que no he probado esa opción
Creo que voy a adquirir un deco con openelec y lo voy a probar. No obstante, el deco habría que conectarlo al satélite para recibir señal o ya solo con conectarlo a internet recibiría la señal como si de una raspberry pi se tratase?
Un saludo!
Te sigue funcionando la descarga de la epg desde movistar+, despues de las modificaciones que ha realizado movistar.
Un saludo y gracias por tu trabajo desinteresado.
Hola luis, antes de nada, agradecerte los apuntes que compartes. Mi duda es si te sigue funcionando la descarga de epg con movistartv2xmltv, despues de las modificaciones realizadas por movistar.
Un saludo.
**Es la segunda vez que envio el comentario, espero que esta vez no se esfume.
Hola José Manuel, por desgracia hace tiempo que no utilizo el script. Si tengo tiempo (ahora la verdad que muy mal) intentaré volver a probar. Para bajarme el EPG pasé del script a WebGrab+Plus
Es que desde hace unas semanas muchos programas que descargaban la epg desde movistar no han podido integrar el nuevo formato. Solo conozco una persona que lo ha conseguido pero el codigo esta en una dll(es un addon para kodi). En otros foros estan intentando descifrar el nuevo formato de epg.
Y como tu comentas que unias las dos epg, por eso te preguntaba, si te seguia funcionando la de movistar. Es que dentro de poco voy a tener un Nas con tvheadend y multibox server sat>ip, y como tu tambien tengo tdt e iptv, y tu script me facilitaria utilizar las dos epg.
Un saludo y gracias por contestarme, estare atento, para cuando puedas mirarlo, ver si te funciona.
Desde hace una temporada voy fatal de tiempo, en cuanto pueda (igual son meses) me vuelvo a meter con el tema EPG. Efectivamente empecé con el script en python, luego miré WebGrab+Plus y hace un par de meses contraté hispaepg.com (2,20€/mes) que por el precio prometía, lo tengo funcionando, pero… la conclusión: ninguna de las opciones es 100% perfecta, así que tengo la asignatura pendiente, ahora tengo el 90% del EPG (con hispaepg) y poco tiempo para hacer pruebas de fiabilidad, mezclar fuentes (epg). Intuyo que la solución ideal será una suma de varias, ir agregando y tener una programación cuasi-perfecta. Lo que no sabía es que M había cambiado el protocolo. Supongo que será fácil sacarlo con un sniffer (y un deco), pero para eso hacen falta horas 🙂
Por cierto, si encuentras algo decente (script o similar), compárte la fuente. Y respecto a la dll, es raro que un trabajo así no lo hayan hecho open source, si es cerrado es una pena «tremenda».
Por supuesto, en cuanto reciba el nas tengo que configurar toda la red, tengo un router mikrotik, e intentare descubrir lo de la epg. Si lo consigo, antes que tu, lo pondre aqui para que lo incluyas en tu script.
Un saludo y que tengas tiempo para seguir publicando estos magnificos apuntes.
Buenas tardes Luis,
en primer lugar darte las gracias por el magnífico post que has editado. Muy bueno!!!. Una pregunta que me surge. Quisiera comprar un MOI Pro AMD y una tarjeta DVB-S2 Quad con 4 entradas de señal. Entiendo que cada una de las entradas de señal puede enviar las señales de 13V y 18V al LNB para polarizaciones Verticales u Horizontales y el tono de 22 KHz para detectar si se encuentra en baja o alta frecuencia del satélite.
Me podrías confirmar si ésto es así?
Muchas gracias!!!!
Hola, pues la verdad es que no tengo ni idea. Te recomiendo que utilices el servicio de soporte (preventa) que tienen los de MOIPro, contestan a las preguntas. En su momento, antes de comprar, hice un par de preguntas y la verdad es que me atendieron bastante bien.
Buenas, menudo pedazo de proyecto, llevo tiempo buscando info para hacer esto, pero me gustaría hacerte unas preguntillas antes de empezar con esto
La calidad es la misma, HD?
Hay cortes o va muy fluido, me refiero con l equipo horas conectado, si va a tirones o por el contrario lo mueve bien?
Gracias de antemano
Hola, 100% fluido, mientras funciona. A veces me he encontrado que tvheadend ha hecho un crash o se ha re-arrancado y mis clientes (Pi’s con KODI) se han quedado transpuestos. Nada que no soluciones un re-boot diario del moipro y rearrancar el KODI incluso, pero lo dicho, mientras funciona va perfecto en HD (eso sí, uso Ethernet, no WiFi).
Saludos Luispa.
Una pregunta se puede instalar todo lo dicho a este tema en una cpu con linux.
Gracias
Sí, perfectamente, de hecho el MOIPro no es más que un HW con Linux encima 🙂
Buen Aporte.
Saludos
Por lo que e entendido:
Instalo el MOI PRO con las dos tarjetas una satelital y otra tdt(por ejemplo)
LUego configuro y ya puedo ver en la opcion tvheadend los canales luego configuro para algun dispositivo que tenga el programa KODI(xbmc)
Exacto!!
Saludos Luispa,espero te encuentres bien.
Mi consulta es:Se puede instalar tvheadend en ubuntu(Linux) como lo instalo y solo necesito tvheadend para estreaming de tv o u otro programa.
Hola, se puede instalar en cualquier Linux y su función es agregar distintas fuentes para convertirse en un servidor de streaming.
es posible usar esas tarjetas en una pc con linux y transmitir senal de cable que tarjetas necesitaria? gracias
La emisión la hace por IP, no se si soportará tarjetas de cable, ni creo que sea el aparato adecuado para hacerlo.
MUY pero que muy buen aporte compañero, me ha gustado mucho tu manual, mi pregunta serian 2 si sirve tambien una pi 1 o solo la pi2, y si el sistema se puede montar en u cualquier ordenador con procesador y memoria min, ya que como muchos ordenadores se estan quedando obsoletos se podrian reutilizar.
saludos
1) La Pi1 perfectamente, mirar aquí: https://www.luispa.com/?p=1284
2) Cualquier ordenador que te soporte Linux más o menos de forma decente 🙂 te vale…
Hola, Luis, enhorabuena por tu blog. A ver si me puedes echar una mano: necesito configurar un set que comprende cinco señales en hdmi y cuatro tv led en hdmi. Necesito que las tv puedan seleccionar cualquiera de las señales independientemente como si fueran canales. Es decir, un sistema IPTV o algo similar, con varios codificadores de hdmi a iptv y decodificadores de iptv a hdmi, supongo…
¿Podrías echarme una mano con los dispositivos que podría necesitar?
Muchas gracias y un saludo.
Ufff… pues ni idea. Sí que miré en tiempos el poder trabajar con HDMI pero desistí, encontré un conversor de HDMI a TDT y también uno a Multicast IP, pero bastante caros.
Hola , muy bueno el tutorial
Mi pregunta es la siguiente cuanto equipos cliente soporta ese servidor ?
Los clientes pueden ser usados simultanementes
Sí pueden ser usados simultáneamente y bastantes (suficientes para una casa), no se cuantos la verdad, en su web hablan de mucho…
Hola Luis. Felicidades por tu magnifica exposición.
Dispongo de VU+ Duo2 con tarjeta de abonado y quisiera montar un servidor de IPTV. Necesitaría el Moi Pro ???? En caso afirmativo, cómo conecto el Duo2 al Moi Pro ????
Muchas gracias por tu ayuda. Un saludo y Buen Año
Uff… no es fácil contestar en un párrafo a la pregunta. Mira los apuntes que hay por el blog (hay muchos). Como nota adicional: el Duo2 lo puedes convertir en un server (creo recordar enigma) que puede ser consumido por Kodi con el plugin adecuado. Busca eso en internet y así te ahorras el moi pro, y dos, el moi pro es un cacharro al final… la gracia que a mi me gusta es que incluye el tvheadend
Hola Luis.
Gracias por tu respuesta. Sí, el VU+DUO2 puede hacer de server, de hecho ya lo he probado y bien, el problema es que, en red local puede abrir varios canales de forma simultánea, pero fuera de la red local, sólo es capaz (o yo sólo he sido capaz) de abrir uno, a la que intento abrir el segundo, mediante KODI o VLC, se para la conexión. Por lo que me parece entender esto no ocurre con el MOI PRO, verdad ??? Con el MOI+ tampoco ??? Cuál de los dos me aconsejas ???
Muchas gracias
Parece más un problema de networking, si en LAN van >1 debería ocurrir lo mismo desde cualquier sitio. En cualquier caso tvheadend está mucho más preparado para streaming the iptv (es su función) que el vu+ (es vía plugin si no recuerdo mal). Entre uno y otro depende del número de sintonizadores, son idénticos creo recordar (cpu, etc…).
Hola luis! Enhorabuena por tu blog. Mi pregunta es. Seria posible con algun aparato transformar la señal ip a coaxial y repartirla por toda la casa aprovechando las tomas tv de la casa. Gracias
lo que tu quieres (creo) se llama un conversor a TDT no?. Es decir, que coja la señal de entrada y la meta por TDT.
A ver, yo busqué algo así para coger una entrada HDMI y sacarla por TDT, muy caro. Lo que no he buscado (y tendrías que buscar) es un cacharro que escuche multicast y convierta a TDT. También lo pensé pero al final opté por ir todo a IP.
Hola Luis,
me ha encantado tu explicacion, de verdad muy clara.
Una pregunta, a ver si me puedes decir.. Tema fuente IPTV de movistar TV
A cuantos clientes a la vez puede el MOI enviar la señal de la fuente IPTV de movistar tv? Lo has probado? se ve fluido? se corta?
gracias
He llegado a probar hasta 8-10 no recuerdo, cero problemas, fluido, pero en su web dicen que soporta mucho más. La verdad es que una vez encadena fuentes->destinos solo está haciendo conmutación de paquetes, luego debería aguantar bastante (si la tarjeta de red es más o menos decente), pero no lo he podido estresar la verdad…
Hola Luis ,felicitaciones y que gran aporte .
Estoy viviendo en Miami y mis padres no pueden ver los canales locales de chile y esta información me ayuda para poder subir la senal .
Si tienes alguna tecnología mas avanzada de equipamiento y actualizaciones seria de gran ayuda ya que voy a cotizar la compra de equipos para comenzar a levantar las señalase locales de chile.
saludos
Hola George, si te digo la verdad por mi lado poco más puedo aportar en cuanto a hardware’s, una vez que lo tengo funcionando y está estable pues me pondré con otra cosa :-). Si por tu lado encuentras algo chulo que nos valga a todos pues bienvenido.
buena luis esta semana estoy haciendo la compra y levanto los primeros 4 canales locales .
saludos
Hola Luis, interesante todo este tema, me interesa montar un servidor, en cuanto oscila el precio de este?? tego IPTV por fibra..Gracias
Hola, no se cuanto andará ahora, aquí tienes su página, http://www.tbsdtv.com/products/tbs2911-moi-pro.html, abajo del todo puedes ver el precio entrando en «Buy Now» y añadiendo la(s) sintonizadores que quieras. Ojo que a la velocidad que va esto igual hay otro fabricante que te ofrece algo mejor o más actualizado…
Hola Luis espero que estés bien ,seria de ayuda si estas analizando proveedores o fabricas con otras tecnología o algo mas actualizado saber de esta info .
Hola george, no estoy mirando nada nuevo, pero lo que tengo claro de momento es que la arquitectura será siempre Tvheadend encima de Linux encima de algun «Hardware», de momento moipro, pero seguro que saldrán cosas mejores 🙂
Hola luis
Exelente tu aporte, na consulta se puede implementar esto en colombia
La tecnología utilizada no tiene fronteras, lo que no se es si allí tienes fuentes parecidas de tu proveedor.
muy buenas.
Quería saber como podría integrar una señal streaming para que sea transmitida por el moi pro.
No entiendo bien la pregunta, el que gestiona las fuentes IPTV es el software tvheadend. Si te refieres a HW, lo mismo, soporta unas cuantas tarjetas y es el software el que hace el streaming…
tengo una señal streamming de un servidor y quiero transmitir esa señal por el MOI, solo necesitaria una tarjeta para ello?
si es una señal de streaming entiendo que es IP, si es IP(TV) es sencillísimo, usa el tvheadend. Si le llamas señal de streaming a una señal analógica o digital que te llega por cable coax o lo que sea… pues mírate la web de moipro a ver si tienen tarjeta compatible…
Buen Día luis, espero y puedas despejarme esta duda, el moi pro con una tarjeta sintonizadora de satelite, puede dar por separado cada canal a los receptores, o cada receptor veria el mismo canal.
mi planteamiento es el siguiente, quiero por iptv, enviar los canales de un sistema satelital, logicamente que cada receptor vea un canal diferente. otra duda el moi pro puede soportar iks
El moipro con una tarjeta entiendo lo tienes a una única parabólica. Peor caso: recibes 1xINPUT. Mejor caso: sintonizas más canales en la misma frecuencia: Ejemplo 2-3 INPUTS. En este ejemplo tendrías 1 (2o3) INPUT’s. Ahora en tvheadend ese 1xInput o 2-3INputs o canales adicionales los puedes enviar a n-Receptores. Es decir, el número de receptores no hay límite (más allá de la capacidad de la cpu/red).
Resumen: Número de canales simultáneos recibidos depende del número de Parabólicas, sintonizadores. El número de Receptores, sin límite (excepto red y cpu). No se que son IKS?
Saludos
Felicidades gran aporte, muy bien explicado. Quería saber si se pude utilizar IP STB para sintonizar los canales del moipro?, muchas gracias
No se qué es «IP STB», lo siento. Si es un «Settopbox» capaz de conectarse a canales IPTV entonces sí (asumiendo que usas tvheadend)
Saludos Luis;
Buen aporte, se ve que has pasado hooooras de horas con este MOI. Excelente!!
Te comparto mi caso; yo he probado el MOI+ (el mas pequeño con solo 2 entradas DVBS2 y ahora estoy probando un MOI PRO AMD tiene 8 ingresos para DVBS2, es decir puedo captar 8 muxes o TP’s. Trae un cpu mas potente, y corre sobre una distro OPENelec asi mismo no he llegado a saturarlo pero segun el fabricante esta por encima de los 80 clientes al mismo tiempo.
Mi pregunta es; has usado o escuchado de un software que haga de servidor IP?. Yo estoy probando uno que me recomendaron mucho es el; Xtream Codes (http://xtream-codes.com/). Te lo comparto. Este software esta super bueno, tiene una interfaz grafica. Yo lo tengo instalado en una PC con ubuntu. es una Intel I7 con 16Gb de ram (consume bastante ram). Esta PC «JALA» los canales del MOI-PRO-AMD y los tiene siempre abiertos y ofreciendolos. Es decir quien ve la TV no se jala los canales del MOI-PRO-AMD sino se que los ve desde el Xtream Codes Server. A este server le he puesto 2 interfaces LAN, por una coje los canales desde el MOI-PRO-AMD y por la otra va a un switch 100/1000 que lo reparto a toda mi casa y vecinos. Lo interesante es que te da un abanico de opciones para ellos. Asi mismo puedes crear tu propio canal poniendo videos, etc, etc.
Como reproductor yo uso unos simpaticos ANDROID-TV chinos que existen. Son cajitas con salida HDMI y traen un software Android. estan por los $50. Aqui les instalo el KODI y trabajan bien. Pero mejor es un openelec-kodi que tengo. Tiene mas HW. Lo malo es que SOLO es KODI en cambio el otro es ANDROID
Para ver los canales sea en tablet, mobil, PC o TV siempre uso el Kodi, recomiendas algun otro?. He probado algunos sobre Android pero no baja el EPG.
Actualmente tengo problemas para entregar el EPG desde el servidor de IPTV ya que en el KODI si los bajo por OTA. Boy a poner en practica tu idea de montarlo en otro lado y jalarlo.
Ha sido un gusto leer algo asi en castellano.
Felicitaciones por tu trabajo!!..
Ricardo.
Estimado, una consulta;
A veces se me cae la transmision, ya me di cuenta que es xq se cae la salida (tengo 8 salidas para cojer a 8 TP’s) y se soluciona reseteando el MOI-PRO-AMD.
Mi consulta, de pronto poniendolo «Linked Input:» a IPTV se soluciona? asi mismo estuve probando moviendo el campo: «Tune Repeats:» en «2» (el default es 0).
Puede ser la LNB?, yo tengo conectado todo esto a una LNB de 8 salidas y no uso DiseqC switch. Lo tengo configurado el campo «SatConfig:» en «Universal LNB only». Ya que tengo pasados 8 cables desde la antena hasta el MOI, 1 cable para cada entrada.
De pronto sera mejor tener una LNB de 4 salidas en una antena y poner otra antena con otra LNB de 4 salidas?, esa prueba aun no hago, tocaria instalar otra antena y apuntarla.
Estimado esperando tu ayuda. Mis agradeciemientos.
saludos.
Hola, como decía en otra respuesta, no soy experto en Satélite, además tienes una configuración que es mucho más que casera :-), quizá en otros foros más especializados te puedan ayudar.
Estimado a que se debe este mensaje en lo logs?
linuxdvb: TurboSight TBS 6908 DVBS/S2: 6 – poll TIMEOUT
linuxdvb: TurboSight TBS 6908 DVBS/S2: 6 – retune nodata
Cuando recibo esto es porque se ha desconectado del servidor y se ha caido la interfaz. Xq suele suceder?.
Gracias
Lo siento no soy experto en DVBS, quizá en los foros sobre estos temas puedas ver algo más…
Un gran trabajo luis, gracias a ti me decidí a montar mi propio servidor.
Una consulta a ver si tu me puedes ayudar, porque hace días que busco respuestas y no las encuentro. En teoría Tvheadend es capaz de transmitir varios canales simultáneos a través de un adaptador (en este caso uso DVB-S), pero tiene un limite? Te lo digo porque me he encontrado con el problema de que si estoy emitiendo 4 canales diferentes simultáneamente, al querer emitir un quinto, no me deja, tirándome un error diciendo que esta «busy». Esto puede ser un error de Tvheadend?
Hola Berck, gracias. Creo que te refieres a que dice «busy» cuando intentas «sintonizar» más de ‘n’ canales en tu(s) tarjeta(s) DVB-S y enviarlos por IP a los clientes de la red. Sí que hay un límite y es el número máximo de sintonizaciones que puedes hacer. No soy experto pero creo que es 1xsintonizadora = 1xLNB = 1xFrecuencia = todos los canales dentro de esa frecuencia. Ej.: solo tengo 1 tarjeta 1 LNB, podría sintonizar 2 canales de la misma frecuencia, pero no 2 de frecuencias distintas. Lo dicho, no soy experto pero va por ahí. Para la «emisión» no hay límite (bueno, el de cpu/red), a no ser que lo parametrices (puedes limitar el número de clientes a los que sirves los canales por IP)
Gracias por contestar tan rápido
Veras,lo que dices es cierto, por cada adaptador, puedo emitir los canales de una frecuencia, pero el problema es, que si en esa frecuencia hay 11 canales, por ejemplo, solo me deja emitir 4 de ellos simultáneamente. A la que intento emitir un quinto canal no me deja, diciéndome «Device or resource busy» (Dispositivo o recurso ocupado). Por eso preguntaba lo de la limitación. Si quisiera emitir todos los canales de una frecuencia, como por ejemplo para «Xtream Codes», no me deja!! A mi me extraña, por lo que no se si es un problema de configuración de Tvheadend o es que funciona asi?
Berck, en el tvheadend en la aprte de configuracion de las tarjetas hay una opcion q te indica el numero de usuarios q pueden estar a la vez tomados de esa tarjeta. El default es 32. Revisalo de pronto lo tengas movido a solo 4.
Si estas captando un transponder deberias abrir todos los canales de ese mismo transponder. Mira en los logs q te sale, de pronto tienes problemas con la decodificacion de los mismos. Ya seria algo con tu cuenta newcamd que usas para abrirlos. Nos confirmas.
saludos
El limite de usuarios esta a 32 (por defecto)… Me estoy empezando a imaginar que el problema venga de OScam (que es lo que utilizo con lineas CCCam), pero no encuentro información sobre este problema… El caso es que al intentar abrir «el quinto canal» aparece en el WebGui de Tvheadend pero no carga el canal (0 kb/s), intentare buscar mas información sobre OScam y si hay alguna limitación en la configuración por defecto…
Saludos!
Por favor no comentar nada aquí relacionado directa o indirectamente con contenido cifrado, no es el sitio. Los próximos msg me temo que los borraré. Gracias.
Sigo buscando información sobre Tvheadend (Que es donde esta el problema) y no encuentro solución…
A ver, se supone que Tvheadend es un servidor Streaming IPTV, si este esta preinstalado en los Moi Pro, que se venden como servidores de streaming profesionales (hay algun modelo que se va a los 1400€), como es posible que ocurran estas cosas?
He mirado la configuración de arriba abajo y no veo nada extraño, pero me es imposible transmitir mas de 4 canales diferentes simultáneos en un mismo adaptador… «El dispositivo o recurso esta ocupado?» Estoy apunto de tirar la toalla, es que nisiquiera en el foro de Tvheadend me dan una solucion!! Bueno, ni tan siquiera contestan…
Asi es tvheadend es un servidor de IPTV. El MOI PRO trae en algunas versiones (en mi caso es MOI PRO AMD) el sistema operativo Openelec que es un linux enfocado a consumir poco CPU del hardware. Lo que hace costoso al equipo son las tarjetas, depende cual desees, cada una tiene diferentes capacidades.
A la final puedes comprar solo la tarjeta y ponerla en una PC linux con mas hardware e instalar los drivers. Al final son tarjetas PCI.
Estimado, supongo que los 4 canales estan en el mismo TP cierto?. De pronto podrias copiar lo que te aparece en los logs? Te recomiendo pruebes abriendo 4 o 5 o todos los canales FTA PERO que esten en el mismo TP. Si estos canales FTA te abren sin problemas ya sabemos por donde iria el inconveniente.
saludos
Ricardo.
Lo primero de todo sería felicitarte por el artículo ya que es muy bueno. Después me gustaría acerté una pregunta, ¿sería posible conectarse a URL de este servidor y ver directamente un canal?, por ejemplo:
http://myservidor:9198/dkiekd.
Y que este sea La 1, por ejemplo.
Mi idea sería montar este servidor y desde html5 con la etiqueta video poder ver un o varios canal(es).
Esto sería posible?
Muchas gracias.
Perfectamente, http://tu-servidor.dominio.com:9981/playlist/channels – El API de tvheadend te devuelve un fichero M3U con *todos* los canales que tiene configurados. El MRL de cada uno de ellos es un poco raro, verás que usa identificadores único (UID), que no cambian (a no ser que borres/re-crees el canal). De hecho, ya que te pones, en tu programa Javascript (supongo porque hablas de HTML5) puedes pedir la lista completa, parsearla y hacer lo que quieras con ellas. No me he mirado el API de tvheadend pero igual tienen recorrido, échale un ojo a los fuentes a ver que encuentras (https://github.com/tvheadend/tvheadend)
Hola Luis, he intentado emular lo del iptv con un deco sat, y llego hasta el final pero despues del escaneo, no añade servicios. Dejaste el apartado de sat aparcado, espero que un dia nos expliques como se haria. Gracias, un saludo.
Un añadido, puesto que lo paso de un deco sat via puerto streaming 8001, no se si seria mejor via puerto webif, lo paso en red interna para probar, pues de momento tengo solo 1mb de subida, a la espera de fibra optica. El hecho es que se me quedan los mux pendientes de procesar y indican FAIL, la red de origen y destino tiene el mismo ID de red 65535. Yo le abro el udpxy por un puerto xxxxx escucha ip raspi y la ip source del deco(no se puede indicar puerto, ya lo lleva el m3u). En la raspi dentro de kodi tengo el plugin cliente tvheadend hts, pero con eso no pretendo jugar, lo que pretendo es enviar con raspi3 al exterior mediante fuentes sat. La verdad es que tengo un lio, no se si me he explicado bien, o si me puedes dar alguna pista con lo que te he explicado. Gracias, un saludo
Hola Luis, gracias por estos tutos maravillosos. Me interesa saber algo. Se podria hacer algo similar con un deco enigma2, emulando lo mismo que haces con iptv Movistar? He sacado la lista m3u del openwebif del deco, pero creo que a la hora de crear la lista hts con tu script, no defino correctamente las ip de server udpxy y la fuente. La fuente, deco enigma2, no es multicast, es http, y el server udpxy quiero que trabaje en mi raspi3, otra ubicacion, otra ip. No se si tiene sentido, ahora mismo no tengo abono a iptv y tengo conexion de cobre con 1mb de subida. Estoy haciendo pruebas para cuando me llegue la fibra. Un saludo.
La verdad, perdon por hacer 3 comentarios seguidos, no había visto que estuvieran publicados, pensaba que habia un error y no se habian publicado.