Documentos de Académico
Documentos de Profesional
Documentos de Cultura
el Middleware Ginga-NCL
Telecomunicaciones
Certificación
5
Responsabilidad de Autoría
6
Autorización de Publicación
7
Dedicatoria
Dedico este trabajo a mi familia, Mi Padre Marco, Mi madre Charito quien ha sido un
gran apoyo en todo sentido para alcanzar esta meta. A mi Hermana Diana que desde el cielo
me da las fuerzas para cumplir mis sueños y que siempre será mi ejemplo a seguir.
Agradecimiento
Agradezco a Dios que me dio la salud y la sabiduría para alcanzar este objetivo
esperado en mi vida.
A mi Mami Charito, por haber tenido tanta paciencia en todo este tiempo de la carrera
universitaria, su apoyo en todo sentido ha sido vital para conquistar este logro.
desde el cielo está feliz y seguirá pidiendo a Dios por mi vida para seguir alcanzando mis
objetivos.
Al Dr. Gonzalo Olmedo por su apoyo y su paciencia para lograr este título, es uno de los
A mis amigos quienes son el motor de mi vida y con quienes he compartido grandes
Índice de Contenidos
Certificación ---------------------------------------------------------------------------------------------------------------------------- 4
Dedicatoria ------------------------------------------------------------------------------------------------------------------------------ 7
Agradecimiento ------------------------------------------------------------------------------------------------------------------------ 8
Resumen ------------------------------------------------------------------------------------------------------------------------------- 16
Abstract -------------------------------------------------------------------------------------------------------------------------------- 17
Capítulo I------------------------------------------------------------------------------------------------------------------------------- 18
Objetivos --------------------------------------------------------------------------------------------------------------------------- 21
General ------------------------------------------------------------------------------------------------------------------------- 21
Específicos --------------------------------------------------------------------------------------------------------------------- 21
Capitulo II ------------------------------------------------------------------------------------------------------------------------------ 22
10
Codificación ----------------------------------------------------------------------------------------------------------------------- 25
Codificación por Software ------------------------------------------------------------------------------------------------- 26
Codificación por Hardware ------------------------------------------------------------------------------------------------ 26
Protocolo IP ----------------------------------------------------------------------------------------------------------------------- 29
Transmisor ------------------------------------------------------------------------------------------------------------------------- 46
Requisitos del Programa OBS--------------------------------------------------------------------------------------------- 46
Tasa de Bits -------------------------------------------------------------------------------------------------------------------- 48
Tipos de Codificación Velocidad de Bits ------------------------------------------------------------------------------- 50
Receptor ---------------------------------------------------------------------------------------------------------------------------- 53
Capitulo IV----------------------------------------------------------------------------------------------------------------------------- 55
Capítulo V ----------------------------------------------------------------------------------------------------------------------------- 86
Conclusiones ---------------------------------------------------------------------------------------------------------------------- 86
Recomendaciones --------------------------------------------------------------------------------------------------------------- 87
Bibliografía ---------------------------------------------------------------------------------------------------------------------------- 88
Anexos---------------------------------------------------------------------------------------------------------------------------------- 90
13
Índice Tablas
Índice Figuras
Resumen
La televisión es una de las tecnologías de la información que ha ido evolucionando con el
tiempo y se ha reinventando conforme el avance tecnológico. Desde sus inicios con imágenes
en blanco y negro hasta llegar a la actualidad con imágenes en alta definición como el 4K.
Para lograr una excelente calidad tanto en video y audio se han buscado formas para mejorar
tecnologías además de diseñar receptores amigables y que puedan brindar una mejor
(Internet Protocol Television) que posee un transmisor mediante un software gratuito, este
codificará y enviará el contenido a un servidor de video donde estarán alojadas las aplicaciones
dirección IP del canal difundido por el servidor descargar el contenido interactivo deseado y
reproducirlo utilizando el middleware GINGA junto con el video recibido, también posee un
botón que sintoniza el canal con un reproductor VLC, logrando así una red completa de IPTV.
Palabras clave:
RED IPTV
SERVIDOR DE VIDEO
GINGA -NCL
17
Abstract
Television is one of the information technologies that has evolved over time and has been
reinvented as technology has advanced. From its beginnings with black and white images to the
present day with high definition images such as 4K. In order to achieve an excellent quality in
both video and audio, we have looked for ways to improve the transmission to the user, looking
for different means available in the new technologies as well as designing friendly receivers that
can provide a better experience to the user. This project focuses on the implementation of an
IPTV network (Internet Protocol Television) that has a transmitter through a free software, this
will encode and send the content to a video server where the interactive applications will be
hosted, this will be responsible for disseminating the content to the user. Finally, a reception
software in Python language has been designed, which allows tuning the IP address of the
channel broadcast by the server, downloading the desired interactive content and playing it
using the GINGA middleware together with the received video. It also has a button that tunes
the channel with a VLC player, thus achieving a complete IPTV network.
Keywords:
IPTV NETWORK
VIDEO SERVER
GINGA–NCL
18
Capítulo I
En la actualidad existe un cambio tecnológico que avanza con rapidez y está causando
televisión. Estos eran los pioneros en difundir la información a nivel local y mundial, utilizando
como canales de transmisión el espectro radioeléctrico que hoy en día está siendo ocupado
casi en su totalidad y otros diferentes medios de difusión para alcanzar a los usuarios. Debido a
transmisión digital como es el mundo del internet. El Internet hoy en día es el más utilizado para
obtener información con sus diferentes aplicaciones, redes sociales e innumerables beneficios
en el tema de comunicación.
Solo durante 2018 el número de usuarios de internet creció un 9,1%. A este ritmo el
todas las regiones se avanza igual (López, 2019). Por lo que es de gran importancia el paso
implementación de la Televisión Digital Terrestre (TDT), que es una forma de transmitir las
señales de Televisión Abierta o gratuita con ventajas como mayor calidad de vídeo, imagen y
sonido.
19
señal digital con una concesión temporal para brindar servicio de TDT, en ciudades como:
Quito, Guayaquil, Cuenca, Santo Domingo, Manta, Latacunga y Ambato. Hasta el momento no
ha existido el impacto esperado por esta nueva tecnología ya que el internet está abarcando
todos los aspectos esperados como son la visualización con mejor calidad, las aplicaciones
Es por eso que el paso de la televisión a esta nueva tecnología es necesario para seguir
a la vanguardia, y abre un campo nuevo de investigación para poder brindar los diferentes
Justificación e Importancia
Universidad de las Fuerzas Armadas varios trabajos que cubren la mayoría de áreas de
investigación de TDT, desde los transmisores como el implementado (Mena, 2015), en el cual
se desarrolla un transmisor mediante una tarjeta moduladora que permite modificar los
parámetros y generar un canal RF por donde se envía el Transport Stream (TS) y Broadcast
emisión de la señal de audio, video y datos para aplicaciones interactivas.(Illescas & Villamarin,
2011). También se ha realizado un análisis de plataformas que permitan crear nuevos servicios
la señal de audio, video y datos para aplicaciones interactivas. Y muchos proyectos más que
muestran que el digitalizar la señal de televisión abre campos de investigación para mejorar
este medio de comunicación. Hasta el momento son pocos los proyectos que se han realizado
para lograr entender cómo podemos incursionar en este nuevo campo, por lo que el desarrollo
de un proyecto donde se implemente una Red de IPTV con interactividad es esencial para
poder entender los requerimientos necesarios para su implementación en las nuevas redes de
El presente proyecto pretende implementar una red IPTV con contenidos interactivos
utilizando el Middleware Ginga. Esta red local contará con un software gratuito que será el
transmisor quien emitirá la señal hacia un servidor de video implementado en un sistema Linux
difusión del contenido que será realizado por una dirección IP única del canal. Esta será
reproductor VLC. Se espera que este proyecto pueda ser replicado en un futuro en laboratorios
marketing.
21
Objetivos
General
Implementar una Red IPTV con contenidos interactivos utilizando el Middleware Ginga
Específicos
Capitulo II
Marco Teórico
que hacen las plataformas convencionales de streaming como Netflix, Amazon Prime Video o
HBO entre otras. Ya que los proveedores de este servicio utilizan su propia infraestructura para
mediante una red Privada y directa entre el operador y el usuario final pueda recibir el
contenido sin conectarse al internet. Esto brinda la posibilidad que los canales sean
transmitidos bajo demanda y que la operadora pueda reservar un ancho de banda para este
servicio (Xataka, 2017). En la Figura 1 podemos ver un diagrama básico del funcionamiento de
Figura 1
directa por que el proveedor puede asignar un ancho de banda dedicado para esta aplicación y
permite recibir más canales, además de asegurar que a este contenido solo se pueda acceder
de forma segura.
envía a la dirección IP del cliente. El usuario deberá tener un decodificador como se visualiza
en la Figura 1 para poder visualizar el contenido. Estos receptores tienen algunas funciones
anterior y Televisión Online (Internet TV) que es un servicio distribuido a través del internet.
Ambas tienen similar tecnología base, pero difieren en como entregan su contenido a los
implica no garantizar una calidad del servicio por que intervienen factores externos,
mientras que la IPTV al ser difundida por una infraestructura propia pude manipular
los contenidos de video emitidos por el sistema IPTV, mientras que cualquier
dispositivo se utiliza para acceder a los servicios de la Internet TV. En el caso de los
servicios de IPTV, las leyes del derecho de reproducción son tratadas durante las
Tarifas para Usuarios. - Los contenidos de video emitidos sobre la Internet pública
está disponible de manera gratuita para los consumidores. Los servicios de IPTV
son provistos a cambio de una tarifa que puede ser una suscripción mensual la cual
ser generado por el propio usuario y podríamos agruparlo en lo que se llama Web
TV, mientras que lo que se transmite por IPTV es contenido original y tradicional.
servidor ya que ahí se puede albergar aplicaciones interactivas que pueden ser descargadas
Figura 2.
Codificación
formato a otro. Estos pueden estar basados tanto en hardware como en software. Los
codificadores son esenciales para convertir los archivos de video RAW de su cámara en
El protocolo H.264 puede crear lo que se llama compresión sin perdidas. Para la
transmisión de solo audio, hay dos opciones populares: MP3 (MPEG Audio Layer III) y AAC
26
(Codificación de audio avanzada). Hay dos protocolos importantes para la transmisión a tener
en cuenta: el protocolo RTMP y HLS. RTMP transmite los archivos desde el codificador a la
videos a su audiencia.
(CPU) por ello depende directamente del tipo de computadora con la se cuente.
Este tipo de software proporciona una gran calidad y permite mayores ajustes
personalizables. Una de las ventajas de usar este tipo de codificadores es que se actualizan
fácilmente al aparecer nuevas versiones a diferencia de los codificadores por hardware. Los
De hecho, uno de los codificadores de software de código abierto más populares, OBS
utiliza un algoritmo con el que codifica el video para su transmisión. Tiene un costo más
Los parámetros ajustables son más limitados, ya que la calidad de video suele ser fija.
Se puede decir que como este tipo de dispositivos fueron creados para esto se tendrá mayor
El precio más alto y la latencia más baja que vienen con los codificadores de hardware
gratuito. Puede encontrar algunos por tan solo 100 dólares, pero en su mayor parte, llegan a
Protocolo de Red
Para poder interconectar entre si uno o más dispositivos no solo se lo hace mediante un
cable ethernet, ya que los sistemas no poseen la capacidad de intercambiar paquetes de datos
Esta tarea les corresponde a los protocolos de red, que, en conjunto con sus
del modelo OSI y establecen una serie de acuerdos para el intercambio de datos, regulando,
Esto significa que, para que dos ordenadores se puedan comunicar entre sí, han de
utilizar los mismos protocolos de red, de forma que acuerdan las mismas condiciones para la
tipología de red, porque los datos pueden difundirse de diferentes formas. También es
28
importante tomar en cuenta la jerarquía de los usuarios y muchas otras variables que pueden
hacia todos los participantes se lo llama broadcasting, este último es el más usado
en radio y televisión.
en un sentido eso quiere decir que el ordenador solo puede tomar un rol o de
transmitir o recibir. Semi-dúplex en este modo los ordenadores pueden ser tanto
simétrica.
sincrónica o asincrónica.
29
conexión y aquellos que no lo están. Los primeros requieren una conexión entre emisor
nuevamente. Los segundos no establecen ni interrumpen una conexión, por lo que los
Protocolo IP
El protocolo de Internet tiene la misión de transportar los paquetes de datos de un
emisor a un receptor a través de varias redes. Con esta finalidad, este protocolo fija las
no es solo el protocolo de red estándar para redes WAN (Wide Area Network), las únicas redes
globales que interconectan Internet, sino también para redes locales. Todos los fabricantes y
experiencia técnica necesaria en configuración, así como con el hardware (router) adecuado
(Gómez, 2014).
Sólo se realiza verificación por suma al encabezado del paquete, no a los datos que
éste contiene.
Figura 3.
de enlace, se requieren otros protocolos que permitan que los paquetes de datos lleguen a las
aplicaciones correspondientes.
31
Partiendo del modelo OSI, este proceso se lleva a cabo en la capa de transporte o capa
4. Para ello, cada pila posee también sus propios protocolos. Para la familia de protocolos de
Es considerado el estándar para las conexiones de red lo que origina que se hable a
menudo de redes TCP/IP. Como protocolo orientado a la conexión, TCP presupone una
conexión existente entre los participantes para poder transportar el paquete de datos,
garantizando la transmisión fiable de los datos en tanto que los paquetes llegan íntegros y en el
orden correcto al destinatario. Para hacer esto posible, el protocolo añade a los paquetes de
Aunque las conexiones UDP no garantizan que el paquete llegue a su destinatario, la reducción
de los datos de gestión (información adicional en el encabezado) otorga una mayor velocidad a
aquellas transferencias de datos en las cuales se pueda tolerar algún error de transmisión. Es
32
por este motivo que UDP se utiliza en el streaming de video y audio, en peticiones al DNS, así
Protocolo RTMP
Este protocolo se usa para los servicios de streaming, entre un programa Flash player y
un servidor, de archivos de audio, video y datos en internet. Este protocolo trabaja sobre TCP y
usa, por defecto el puerto 1935, permite al cliente controlar la calidad de distribución de la
Adobe.
Tras establecer una conexión TCP, se establece la conexión RTMP, que comienza con
el intercambio de tres paquetes, no RTMP, del servidor y otros 3 del cliente (denominados S0-2
y C0-2 respectivamente).
Una vez llegados a este punto el cliente y el servidor pueden negociar la conexión
mediante el intercambio de paquetes AMF (Action Message Format) que sirven para poder
mandar mensajes entre nuestro cliente y servidor y que en el campo “(Object1)” contienen
Por último, para comenzar el streaming del archivo, el cliente manda la orden
“createStream” seguida de un mensaje “ping” la instrucción “play” con el nombre del
archivo como argumento. El servidor responderá entonces con una serie de comandos
“onStatus” y los archivos correspondientes al video encapsulados en mensajes RTMP.
33
streaming. Este puede manejar cualquier protocolo que envía un stream de mensajes. Cuando
es usado sobre un protocolo de transporte confiable (como en este caso con TCP) provee
tiempos de entregas de todos los mensajes a través de todos los canales. Distintas
puede afectar el cómo estos mensajes son enviados cuando la capacidad de transporte está
limitada.
Figura 4.
Basic Header (1 a 3 bytes): Este campo codifica el chunk stream ID y el chunk type. El
chunk type determina el formato del message header codificado. El largo depende
Message Header (0, 3, 7 o 11 bytes): Este campo codifica información sobre el mensaje
siendo enviado (sea entero o una parte). El largo puede ser determinado usando el chunk
header.
Chunk Data (tamaño variable): La carga útil de este chunk, hasta el tamaño máximo
Handshake
no es como en el resto de los protocolos, consiste en tres chunks estáticos en vez de chunks
de tamaño variable con encabezados. El cliente y el servidor envían los mismos tres chunks.
35
Figura 5.
Representación HandShake
Nota. HandShake
Denominaremos estos tres chunks como C0, C1 y C2 cuando son enviados por el
cliente, por otro lado, cuando son enviados por el servidor, los definiremos como S0, S1 y S2.
El cliente debe esperar hasta que reciba S1 antes de enviar C2. Y el cliente ahora debe
esperar hasta que S2 haya sido recibido, para así poder enviar cualquier otra
información.(Parmar, 2012).
36
Encriptación
Las sesiones RTMP pueden ser encriptadas usando uno de los siguientes métodos:
Usando RTMPS, que es el protocolo RTMP sobre una conexión segura TLS/SSL
Transfer Protocol) para evadir firewalls es a través del puerto web estándar (puerto
80)(Jain, 2016).
de audio en tiempo real sin la necesidad de descargar archivos de audio o de video a nuestro
dispositivo o computadora.
A la hora de transmitir streaming de video es importante tener muy claro la calidad del
espera y además es importante saber cuánto va a durar el evento. Con estos tres datos se
puede tener una idea básica de cuántos servidores se podría necesitar para que el streaming
Es muy importante aclarar que no todo el streaming es en vivo. Hoy en día de hecho
existen muchas plataformas de streaming de series y películas como Netflix, HBO Go, por
mencionar algunas, que funcionan con un método de streaming no en vivo, es decir, se trata de
streaming de video, ya sea en vivo o no, se recomiendan servidores dedicados con buenas
líneas y buen hardware, además de una plataforma adecuada. El software que use el servidor
puede variar, aunque algunos ejemplos populares incluyen FFmpeg y GStreamer, entre
otros.(Borges, 2018).
vídeos en lo que refiere vídeo, y sus requisitos básicos podemos verlo en la Tabla1.
Tabla 1
Requisitos FFmpeg
Caracteristicas Cantidad
Memoria RAM 4 GB o Superior
Procesador Quad Core o Superior
Por supuesto estamos hablando para entornos en producción, pues si es para pruebas
lo podemos echar a andar incluso con un solo núcleo y 2GB de RAM o menos. Como siempre,
Middleware Ginga
Se entiende por middleware a una capa intermedia entre el hardware y el software del
equipo, esto ofrece facilidades para desarrollar contenido y aplicaciones para la Televisión
Digital, con esto se designa capas de software que no necesariamente son aplicaciones, sino
que facilitan el uso de plataformas hardware con tecnologías de información. Para el estándar
que se maneja en Ecuador que es el ISDB-Tb se creó el programa Ginga que aún es
Figura 6.
nombre es representativo del país de origen Brasil, que representa la lucha por la libertad e
NCL y Ginga-NCL
extensible (XML) que permite a los autores escribir presentaciones multimedia interactivas.
presentación multimedia, asociar hipervínculos (interacción del usuario) con objetos multimedia,
40
El Ginga-NCL es el subsistema lógico del sistema Ginga que procesa las aplicaciones
Figura 7.
Una aplicación de NCL tiene una estricta separación entre su contenido y su estructura.
El NCL por sí mismo no define ningún contenido de los medios de comunicación. En su lugar,
define el pegamento que mantiene los objetos de los medios juntos en las presentaciones
multimedia.
Un documento NCL sólo define cómo los objetos de medios están estructurados y
tipos de contenido de sus objetos multimedia. Los objetos de medios que se admiten dependen
un receptor de IPTV. De este modo, los flujos de vídeo y audio de un servicio presentado en el
plano de vídeo se tratan como todos los demás objetos de medios mostrados en cualquier
divididas en módulos:
1) Structure:
– Structure module.
2) Components:
– Media module.
– Context module.
42
3) Interfaces:
– MediaContentAnchor module.
– CompositeNodeInterface module.
– PropertyAnchor module.
– SwitchInterface module.
4) Layout:
– Layout module.
5) Presentation specification:
– Descriptor odule.
6) Timing:
– Timing module.
7) Transition effects:
– TransitionBase module.
– Transition module.
8) Navigational key:
– KeyNavigation module.
9) Presentation control:
– TestRule module.
– TestRuleUse module.
– ContentControl module.
– DescriptorControl module.
10) Linking:
– Linking module.
43
11) Connectors:
– ConnectorCommonPart module.
– ConnectorAssessmentExpression module.
– ConnectorCausalExpression module.
– CausalConnector module.
– CausalConnectorFunctionality module.
– ConnectorBase module.
12) Animation:
– Animation module.
13) Reuse:
– Import module.
– EntityReuse module.
– ExtendedEntityReuse module.
14) Meta-Information:
– Metainformation module
medios, los cuales son especificados por elementos <media>. Para cada objeto multimedia, un
NCL. Además, el reproductor de medios debe ser capaz de recibir comandos de presentación,
controlar todas las máquinas de estado de eventos y responder a las preguntas del
formateador.
44
presentación NCL, se sugiere un diseño modular, con el fin de separar los reproductores de
Para poder utilizar un tercero con interfaces que no son compatibles con la requerida por el
motor de presentación, es necesario desarrollar módulos, llamados adaptadores, para hacer las
Figura 8.
Capitulo III
Marco Metodológico
En este capítulo se presenta los diferentes componentes del proyecto y la metodología
utilizada para su integración en la Red de IPTV planteada. Para esto se detallan cada uno de
los componentes que podemos visualizar en la Figura 9 donde se describe un Esquena de Red
de IPTV.
Figura 9.
Nota. Se puede ver lo simple que se puede implementar una red de este estilo
servidor de video implementado en una máquina virtual que utiliza Ubuntu Server como su
sistema operativo y que alberga las aplicaciones interactivas Ginga-NCL previamente creadas y
multimedia.
Transmisor
Tabla 2
En el mercado tecnológico existen varios software y hardware que son utilizados para
la compresión de los paquetes y adaptarse a la red que utilizan para la difusión del contenido.
Para el presente proyecto se utiliza el programa Open Broadcaster Software (OBS), este
software es libre y de código abierto y es usado para grabación de video y transmisión en vivo
10 podemos ver su pantalla principal y cuanta con varias herramientas según el caso de uso.
47
Figura 10.
redes sociales, plataformas virtuales, etc. En este caso la transmisión se hace hacia un servidor
de video creado para este proyecto y que tiene un sistema operativo Linux que integrara la
solución.
resoluciones del decodificador, ya que esto asegura una transmisión confiable de acuerdo a la
conexión que se tenga. Para esto se realiza una prueba de velocidad para evaluar la tasa de
bits de carga.
48
video. Por supuesto, a mayor bitrate, mejor calidad en el video, pero ocuparía más ancho de
banda por eso es importante buscar un equilibrio entre estos dos parámetros (Alvarez, 2012).
Tasa de Bits
Es la cantidad de datos que se envían a un servidor o servicio de streaming cuando se
realiza una transmisión. Una tasa de bits más alta ocupa más de su ancho de banda de Internet
disponible.
Aumentar la tasa de bits puede mejorar la calidad del video, pero sólo hasta cierto
punto. La Tasa de bits se mide en kbit/s o Mbps, kilobits por segundo o megabits por segundo,
una velocidad de bits de 50 megabits por segundo, o 50 Mbit/s, significa que se procesan
Lo que indica que a mayor tasa de bits mayor calidad, pero mayor tamaño de archivo.
Es por eso que se debe buscar un equilibrio entre la calidad y el tamaño del archivo. En la
Tabla 3.
Mientras que en la Tabla 4 podemos ver tasa de bits para alta calidad para creadores
Tabla 4.
Mono Stereo
Video 5.1 Audio
Type Audio bitrate Audio bitrate
bitrate (kbps) bitrate (kbps)
(kbps) (kbps)
Con esto se puede elegir los mejores parámetros en el programa que realizara la
también llamada CBR y velocidad binaria variable VBR. En la Figura 11 se puede ver la
diferencia de los tipos de codificación con respecto al consumo de ancho de banda y el tiempo.
Figura 11.
Notas. Se puede observar la diferencia entre las dos codificaciones con respecto al ancho de
banda y tiempo.
como una película de acción llegando a tener saltos en la imagen y pueden llegar a pixelarse.
Ofrece una tasa de bits dinámica que cambia dependiendo del nivel de detalle
calidad de video mejor que CBR con un menor tamaño de archivo, por lo que para
Servidor de Video
Es un elemento muy importante en la integración del sistema de IPTV, se encarga de la
difusión de la información mediante una única IP dentro de la red privada y así los usuarios
dentro podrán sintonizarla. Se ha usado un servidor gratuito llamado NGINX que se implementa
Posee un directorio donde se alojará las aplicaciones previamente diseñadas para que
puedan ser descargadas por el receptor mediante SFTP (Secure File Transfer Protocol o
funcionaba en servidores web HTTP. Sin embargo, hoy en día también sirve como proxy
inverso, balanceador de carga HTTP y proxy de correo electrónico para IMAP, POP3 y SMTP
(Bustos, 2017).
útiles para diferentes aplicaciones, en este caso usaremos un módulo RTMP para la difusión
52
del contenido. RTMP es un protocolo que permite que la transmisión de video, audio y otros
tipos de datos a través de internet, sea suave, y de alto rendimiento (Parmar, 2012).
Requerimientos de Instalación
En la Tabla 5 se muestra las distribuciones en Ubuntu que soporta el servidor de video.
Tabla 5.
Tabla 6.
Receptor
Para el receptor se ha realizado la programación de una aplicación con el lenguaje Python,
donde se integran las aplicaciones Ginga y VLC que son útiles para la reproducción multimedia
En la Figura 12 de flujo se indican los pasos que sigue esta aplicación para visualizar el
contenido.
Figura 12.
Para lograr implementar un receptor con interactividad se realizó una integración entre
mux, demux, transmitir, filtrar y reproducir prácticamente cualquier cosa que los humanos y las
maquinas hayan creado. Admite los formatos antiguos más oscuros hasta la vanguardia. No
importa si fueron diseñados por algún comité de normas, la comunidad o una corporación.
Linux, Mac OS X, Microsoft Windows, BSD, Solaris, etc. bajo una amplia variedad de entornos
Capitulo IV
componen la red de IPTV y las pruebas realizadas para lograr un funcionamiento óptimo. El
proyecto está pensado para dar una idea de cómo se podría implementar dicha red de IPTV en
proveedores de servicio y que pueda ser utilizado en zonas urbanas y rurales, sector hotelero,
Tabla 7.
Figura 13.
Server y se lo virtualizó para que sea más rápida su implementación en cualquier sitio.
Se usa el programa VMWare Workstation Pro en su versión 15. Esta máquina virtual se
la realizó con las características básicas de software como se visualiza en la Figura 15.
Figura 14.
Para poder adaptar a la red que se requiera se pueden modificar los parámetros de
Figura 15.
Figura 16. Aquí se puede cambiar los diferentes parámetros de acuerdo a la red donde se
Figura 16.
mismo con el equipo del usuario de prueba estos detallados en la Tabla 7. Se lo realiza con el
Figura 17.
Servidor NGINX
Se realiza la instalación del Servidor dentro del sistema virtual. Para esto ingresamos el
comando mostrado en la Figura 18 con los que primero actualizamos todos los componentes
Figura 18.
Para que el sistema pueda ser desplegado en la red es importante la configuración del
Firewall para que la transmisión pueda ser fluida para lo cual se habilitan algunos puertos y
permisos que necesita el programa. En la Figura 19 se muestra las opciones que se tiene para
Figura 19.
configuraciones como se ve en la Figura 20 donde nos indica que el servidor esta ya activado.
Figura 20.
Módulo RTMP
Una vez instalado y verificado el servidor NGINX en el sistema se necesita un módulo el
cual recibirá la transmisión. Este módulo es el RTMP que se lo instala con el comando como se
ve en la Figura 21.
Figura 21.
Figura 22, aquí se debe ingresar las siguientes líneas de código según el requerimiento del
Figura 22.
Para que esta configuración surta efecto se reinicia el servidor con los comandos
Figura 23.
Con todo este paso se ha realizado la configuración del Servidor y queda listo para
Aplicaciones Interactivas
Para poder cargar en el servidor las aplicaciones interactivas el programa
WinSCP, el cual genera una conexión con el servidor y se puede acceder, crear o copiar
archivos en un directorio especifico. En la Figura 24 se visualiza la interfaz y campos
solicitados para realizar dicha conexión.
Figura 24.
Interfaz WinSCP
Figura 25.
Directorio de Aplicaciones
Para agregar más aplicaciones solo se debe arrastrar los documentos y así poder
cargar el contenido en el servidor.
26
63
Figura 26.
En la Figura 27 28 se elige el uso del programa que en este caso será para realizar
transmisiones.
Figura 27.
En la Figura 28 se puede ver los ajustes de video deseado. Se escoge una resolución
base para la presentación y los FPS a lo que se quiere transmitir, ente caso se elige los
parámetros predeterminados
64
Figura 28.
Ajustes de Video
Figura 29.
Figura 30.
prueba.
Figura 31.
Figura 32.
Componentes de OBS
las señaladas se usarán en el presente proyecto con lo que tendremos todo listo para realizar
Figura 33.
Figura 34 donde tenemos dos pantallas una que sería la vista previa y otra lo que ya estamos
transmitiendo.
Figura 34.
Inicio de Transmisión
Configurado todo lo anterior el transmisor está listo para emitir su señal hacia el
receptor para se presiona el botón “Iniciar Transmisión” como se muestra en la Figura 35. En la
parte inferior izquierda aparece un recuerdo verde lo que indica que toda la configuración y la
Figura 35.
Pruebas de Recepción
Para poder comprobar que se está enviando el contenido al servidor y que se lo puede
visualizar desde la IP que se ha asignado, se realiza una prueba de recepción con el programa
Figura 36.
Figura 37.
transmisión por todo el proceso de codificación que se ha visto en los apartados anteriores
reproduciéndose.
Figura 38.
Pruebas de Funcionamiento.
72
realizará la recepción del canal IPTV generado en los apartados anteriores. Para poder afinar el
Configuración de Programas
Para iniciar con las pruebas de recepción y poder implementar de forma correcta se
empieza por configurar los programas necesarios para que estos puedan ejecutarse desde la
consola de Windows. Se sigue los siguientes pasos para agregar dichos programas al Path.
Primer paso es abrir el panel de control de Windows como se visualiza en la Figura 399
Figura 39.
Figura 400, esto despliega una opción del sistema, se procede a dar clic para desplegar la
siguiente ventana
73
Figura 40.
Variables de entorno
donde se encuentran todos los programas que se pueden ejecutar desde consola, en la Figura
Figura 41.
Path de entornos
74
que se van usar que para este proyecto son: FFmpeg, Ginga, VLC y Python.
Figura 42.
Archivo de recepción
Como se ha explicado en apartados anteriores uno de los programas que se usan para
codificación y decodificación de audio como de video es FFmpeg. Para poder receptar la señal
Figura 43.
Con este comando se logra la recepción del video y mientras llega y se reproduce
va borrando el contenido ya que la idea no es guardar la data que se recibe por lo que
va ir sobrescribiendo.
Tabla 8.
Comando Descripción
-y Sobrescribir archivos de salida sin preguntar
-i Ingreso de URL
-vsync Método de sincronización de video.
-vcodec Configura el códec de video.
-acodec Configura el códec de audio.
Para poder ejecutar el mismo de forma automática se ha creado un archivo .bat que al
ejecutar automáticamente mediante consola realiza las acciones descritas en la Figura 444
Figura 44.
Archivo de Recepción
76
Pruebas de Recepción
Para realizar estas pruebas, se configuró todo lo anteriormente explicado en la parte de
servidor y transmisor. Se ejecuta el archivo rx2.bat, este despliega los comandos en consola y
Figura 45.
Para poder ejecutar desde consola los programas Ginga y VLC con los que se va a
visualizar los contenidos transmitidos mediante IP, se deben ejecutar los comandos de la
Figura 46.
Figura 47.
archivo que pueda integrar todos y automáticamente empezar a realizar la recepción, además
que como se ha dicho anteriormente se necesita de un tiempo para poder sincronizar todo, en
Figura 48.
Pruebas de Ejecución
Para este apartado se ejecutó el ultimo archivo indicado en la sección anterior con las
Tabla 9.
Prueba1 de recepción
requiere otros programas adicionales como el Visual Studio 2010, pero aun así algunas
Para esta herramienta existe un soporte por parte de PUC-Rio en la plataforma Github
en su apartado (Guedes, 2018) se aprecia la nueva versión ginga-v1.0 que está diseñado con
versión reproduce archivos en formato .ts y todas las aplicaciones diseñadas en el lenguaje
Tabla 10.
Prueba 2 de Recepción
Figura 49.
Integración y Automatización
Para poder realizar una integración de todos los archivos antes mencionados y que
pueda ser transparente para el usuario final se debe integrar todos los archivos antes
mencionados. Para este fin se realiza una aplicación llamada GIPTV desarrollada en lenguaje
Esta aplicación genera automáticamente los archivos descritos según el usuario donde
Figura 50.
GIPTV versión 1
Figura 52.
tráfico bajo en su sitio web y además NGINX, su base de datos y la aplicación web todos se
Figura 53.
Si en cambio tiene un tráfico alto o una instancia dedicada para NGINX, fije
un worker por cada core del CPU como se visualiza en la Figura 54.
83
Figura 54.
Conexiones Worker
proceso worker puede procesar a la vez. Por defecto, el límite de este valor es 512 pero
El tamaño apropiado puede ser descubierto a través de pruebas y es variable con base
en el tipo de tráfico que maneje NGIN (BlueHosting., 2016) X.. Las limitaciones en el core del
sistema también pueden encontrarse usando el comando que se visualiza en la Figura 56.
Figura 55.
𝐴𝐵 = 𝐺 ∗ 𝐶
Ecuación 1. Calculo de Ancho de Banda
Para este proyecto se realizó la prueba para 20 usuarios y con el preámbulo de que para tener
una buena calidad de video según la Tabla 3.
𝐺 = 5000𝑘𝑝𝑠
𝐶 = 20 ∗ 0.30
𝐶=6
Reemplazando en la Ecuación 1
𝐴𝐵 = 𝐺 ∗ 𝐶
𝐴𝐵 = 5000𝑘𝑝𝑠 ∗ 6
𝐴𝐵 = 30𝑀𝑏𝑝𝑠
85
Capítulo V
Conclusiones y Recomendaciones
Conclusiones
El conocimiento de los parámetros necesarios como el bitrate, resolución de
video, ancho de banda de la red para realizar una transmisión de streaming son
en el mercado.
Tener claro la diferencia que tiene la IPTV con las otras tecnologías de
alcance que se le puede ofrecer al cliente final ya que las ventajas son evidentes
La IPTV al ser implementada en una red privada tiene varias ventajas como la
original.
del mismo en cualquier red privada tan solo cambiado sus parámetros de red.
usuario final.
Recomendaciones
Se debe tener en cuenta las versiones de los programas como se indican en los
desperfectos.
de sintonización.
88
Bibliografía
Anexos