CD-4862.pdf

Anuncio
La versión digital de esta tesis está protegida por la Ley de Derechos de Autor del
Ecuador.
Los derechos de autor han sido entregados a la “ESCUELA POLITÉCNICA
NACIONAL” bajo el libre consentimiento del (los) autor(es).
Al consultar esta tesis deberá acatar con las disposiciones de la Ley y las
siguientes condiciones de uso:
· Cualquier uso que haga de estos documentos o imágenes deben ser sólo para
efectos de investigación o estudio académico, y usted no puede ponerlos a
disposición de otra persona.
· Usted deberá reconocer el derecho del autor a ser identificado y citado como el
autor de esta tesis.
· No se podrá obtener ningún beneficio comercial y las obras derivadas tienen
que estar bajo los mismos términos de licencia que el trabajo original.
El Libre Acceso a la información, promueve el reconocimiento de la originalidad
de las ideas de los demás, respetando las normas de presentación y de citación
de autores con el fin de no incurrir en actos ilegítimos de copiar y hacer pasar
como propias las creaciones de terceras personas.
Respeto hacia sí mismo y hacia los demás.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA ELÉCTRICA Y
ELECTRÓNICA
ESTUDIO DE LA PLATAFORMA – CRUZADA OPENSOURCE –
FFMPEG (COLECCIÓN DE SOFTWARE LIBRE QUE PUEDE
GRABAR, CONVERTIR Y HACER STREAMING DE AUDIO Y
VÍDEO) Y DESARROLLO DE UNA APLICACIÓN
CLIENTE/SERVIDOR PARA UN WALL VIEW
PROYECTO PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO EN
ELECTRÓNICA Y REDES DE INFORMACIÓN
CHRISTIAN MAURICIO MONTENEGRO CHÁVEZ
[email protected]
PROYECTO PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO EN
ELECTRÓNICA Y TELECOMUNICACIONES
CÉSAR IVÁN MULLO ANCHATUÑA
[email protected]
DIRECTOR: Ing. CÉSAR GUSTAVO SAMANIEGO BURBANO, MSc.
[email protected]
CO-DIRECTOR: Ing. XAVIER ALEXANDER CALDERÓN HINOJOSA, MSc.
[email protected]
Quito, Mayo 2013
DECLARACIÓN
Nosotros, Christian Mauricio Montenegro Chávez y César Iván Mullo Anchatuña,
declaramos bajo juramento que el trabajo aquí descrito es de nuestra autoría; que
no ha sido previamente presentado para ningún grado o calificación profesional; y,
que hemos consultado las referencias bibliográficas que se incluyen en este
documento.
A través de la presente declaración cedemos nuestros derechos de propiedad
intelectual correspondientes a este trabajo, a la Escuela Politécnica Nacional,
según lo establecido por la Ley de Propiedad Intelectual, por su Reglamento y por
la normatividad institucional vigente.
Christian Mauricio Montenegro Chávez
César Iván Mullo Anchatuña
CERTIFICACIÓN
Certificamos que el presente trabajo fue desarrollado por Christian Mauricio
Montenegro Chávez y César Iván Mullo Anchatuña, bajo nuestra supervisión.
Ing. Gustavo Samaniego, MSc.
DIRECTOR DEL PROYECTO
Ing. Xavier Calderón, MSc.
CO-DIRECTOR DEL PROYECTO
AGRADECIMIENTO
Agradezco a Dios Todopoderoso, quien con su infinito amor y misericordia ha
guiado cada uno de mis pasos hasta culminar mi carrera profesional. A mi Señor y
salvador Jesucristo, quien me ha provisto de fuerza, valor, valentía y sabiduría
para enfrentar todas las adversidades que en algunos momentos pasé.
Agradezco a mis padres, Gladys y Jorge, y a mi hermana Paulina, por ser mis
fuentes de amor, apoyo y aliento en cada instante de mi vida, por acompañarme
en esta ardua batalla a pesar de todo, por formarme e inculcar en mí valores y
ese espíritu combativo que estoy seguro me acompañarán a lo largo de mi
existencia, por su tolerancia a mi “mal genio”, y sobre todo por enseñarme que en
la vida siempre, por más pequeño que sea, existe un buen motivo para levantarse
y comenzar de nuevo.
Agradezco a mis tí@s maternos y paternos, a sus cónyuges y a mis prim@s
también, por su cariño, por su confianza, y porque todos ellos forman parte de ese
gran terruño mío que es mi familia. Aprovechando esta mención, quisiera citar de
manera particular a mi ñaño Romel, por su especial aporte y decisiva motivación
que me brindó para culminar este gran sueño de ser ingeniero.
Agradezco a Iván, mi amigo y compañero de tesis, por confiar en mí para realizar
este proyecto de titulación, por su esfuerzo, esmero y aporte para día a día sacar
adelante este objetivo planteado.
Agradezco y hago especial reminiscencia a la memoria del Ing. Pablo Salinas (†),
quien favorablemente nos ilustró sobre la temática de este proyecto de titulación.
Agradezco
a
esta
noble
Institución,
la
Escuela
Politécnica
Nacional,
particularmente a la Facultad de Ingeniería Eléctrica y Electrónica, donde cursé
toda mi formación profesional académica.
Agradezco a mis profesores, a quienes con real entrega y preocupación
estuvieron a la expectativa de la evolución favorable de todos los alumnos que
somos parte de la carrera de Ingeniería Electrónica y Redes de Información,
contribuyendo con sus conocimientos, valores y ética a moldearnos humana y
profesionalmente.
Agradezco a mis entrañables amig@s, mis “panas”, mis colegas de aula, por ser
parte de mi historia con sus experiencias, mensajes y fundamentalmente su
apoyo.
Finalmente un agradecimiento especial a nuestro director, Ing. Gustavo
Samaniego, y a nuestro co-director, Ing. Xavier Calderón, por confiar en este
proyecto e impulsar esta iniciativa que hoy se traduce en una estupenda realidad.
Christian
DEDICATORIA
En primer lugar dedico este trabajo a Dios y a mi Señor Jesús, por darme
esperanza, amor y vida para dar testimonio de sus maravillas y su misericordia.
A mis padres, Gladys y Jorge, a mi hermana Paulina, a quienes amo con total
entrega y abnegación.
A mi maravillosa familia, mis tí@s, mis prim@s, a mi abuelito que gracias a Dios
aún vive, a mis abuelitas y a mi abuelito fallecidos (†).
A mis profesores y amig@s, quienes, en los altos y bajos de la vida, han formado
parte de esta genial etapa politécnica.
A quienes con transparencia continúen trabajando con esta iniciativa que se
promueve en este proyecto de titulación.
Christian
AGRADECIMIENTO
A Dios por todas las bendiciones recibidas, por todos los caminos de rosas y
espinas, por la gran oportunidad de disfrutar de este gran milagro que llamo vida,
por la fuerza, fe y sabiduría que me ha dado en todo momento.
A mi mamita María, papito César, mi hermana Dayanna, por siempre estar a mi
lado, acompañándome, ayudándome en todo este camino, a momentos tan
difíciles para todos, gracias por esa ardua lucha diaria a pesar de todo y a pesar
de todos, gracias por formar e inculcar en mí todas las enseñanzas y valores que
han formado la persona que ahora soy, si algo soy es gracias a ustedes.
A mi familia, tíos, tías, primos y primas, por de alguna forma siempre estar al
pendiente. En especial a Alejandro, Carmen, Blanca, Segundo y Julio por su
constante motivación y preocupación.
A Christian, gran amigo y compañero de tesis, por su constante apoyo,
comprensión, confianza en mí, a pesar de tantos momentos difíciles, su
dedicación y tenacidad han hecho posible la realización de este gran sueño. De
igual forma un gran Dios le pague a su familia, Don Jorge, Sra. Gladys y Paulina
por tan gratamente acogerme y abrirme las puertas de su hogar.
A mis amigos y compañeros con quienes hemos compartido tantos buenos y
malos momentos, gracias por la aventura de luchar y crecer acompañados. En
especial a Diego F., Paúl R., Christian B. y Andrés H. gracias por brindarme su
apoyo y comprensión incondicional.
Gracias al Ing. Pablo Salinas (†) quien confió en nosotros y nos guío para el
desarrollo de este plan de titulación.
A todos quienes han sido mis profesores quienes a más de transmitirnos sus
conocimientos han sabido también inculcar el sentido de moral y ética profesional.
A nuestro director Ing. Gustavo Samaniego, y a nuestro co-director, Ing. Xavier
Calderón, quienes confiaron en este proyecto y tan acertadamente nos han
guiado para la finalización exitosa del mismo.
A todos y todas con quienes me he cruzado en la vida, pues ahora soy la suma de
todo lo que he pasado.
Al final todo esfuerzo tiene su recompensa, y esa ha llegado.
Iván
DEDICATORIA
A ustedes mamita María, papito César, esto es posible gracias a ustedes, con su
gran amor, su apoyo, confianza, con su gran ejemplo de trabajo y perseverancia
diaria, me han demostrado que todos los sueños y metas son posibles de lograr y
realizar si se trabaja y lucha constantemente.
A Dayanna mi ñañita hermosa, con su inocencia, ternura, cariño siempre ha
estado ahí para darme ánimo.
Su existencia hace que todo sea posible y es razón suficiente para salir y seguir
adelante….
Iván
ÍNDICE DE CONTENIDOS
RESUMEN ……………………………………………………………………………..... i
PRESENTACIÓN ……………………………………………………………………..... ii
CAPÍTULO I ........................................................................................................... 1
FUNDAMENTOS TEÓRICOS ................................................................................ 1
1.1 GENERALIDADES ........................................................................................1
1.1.1 GNU – Linux ........................................................................................... 1
1.1.1.1 Entorno de Escritorio GNOME ......................................................... 2
1.1.1.2 Entorno de Escritorio KDE ............................................................... 2
1.1.1.3 Entorno de Escritorio LXDE ............................................................. 3
1.1.1.4 Entorno de Escritorio Xfce ............................................................... 4
1.1.2 FFMPEG ................................................................................................ 7
1.1.2.1 Descripción del Proyecto FFmpeg ................................................... 7
1.1.2.2 FFmpeg ........................................................................................... 8
1.1.2.1.1 Descripción del funcionamiento ................................................ 9
1.1.2.1.2 Opciones principales ................................................................. 9
1.1.2.3 FFplay ............................................................................................ 11
1.1.2.3.1 Opciones principales. .............................................................. 11
1.1.2.4 FFserver ........................................................................................ 12
1.1.2.5 FFprobe ......................................................................................... 13
1.1.3 Esquemas de compresión de audio y video ......................................... 13
1.1.3.1 Multimedia ..................................................................................... 13
1.1.3.2 Audio ............................................................................................. 14
1.1.3.2.1 Compresión de Audio .............................................................. 14
1.1.3.3 Video ............................................................................................. 15
1.1.3.3.1 Compresión de Video .............................................................. 16
1.1.4 Concepto de redes ............................................................................... 17
1.1.4.1 Redes de Área Local (LAN) ........................................................... 17
1.1.4.2 Redes de Área Metropolitana (MAN) ............................................. 18
1.1.4.3 Redes de Área Extendida (WAN) .................................................. 18
1.1.4.4 Intranet .......................................................................................... 19
1.1.5 Streaming ............................................................................................. 20
1.1.6 ARQUITECTURA Cliente – Servidor.................................................... 21
1.2 REQUERIMIENTOS ....................................................................................22
1.2.1 Requerimientos Hardware .................................................................... 22
1.2.1.1 Múltiples monitores ........................................................................ 22
1.2.1.1.1 Modo de Pantalla Duplicado ................................................... 22
1.2.1.1.2 Modo de Pantalla Escritorio Extendido ................................... 22
1.2.1.2 Tarjeta de Video ............................................................................ 23
1.2.2 Requerimientos Software ..................................................................... 26
1.2.2.1 Zenity ............................................................................................. 26
1.2.2.2
Devil's Pie .................................................................................. 26
1.2.2.3 Notify-send..................................................................................... 27
1.3 INSTALACION FFMPEG .............................................................................27
1.3.1 Instalación de FFMPEG para distribuiciones Debian y Derivadas ....... 27
1.3.1.1 Previos ........................................................................................... 27
1.3.1.2 Instalación de FFmpeg .................................................................. 28
1.3.1.3 Instalación de paquetes opcionales .............................................. 30
1.3.1.4 Revertir los cambios realizados ..................................................... 33
1.3.2 Instalación de FFMPEG para distribuciones RED HAT y Derivadas .... 33
1.3.2.1 Previos ........................................................................................... 33
1.3.2.2 Instalación de FFmpeg .................................................................. 34
1.3.2.3 Revertir los cambios realizados ..................................................... 37
1.4 METODOLOGÍAS DE DESARROLLO DE SOFTWARE .............................37
1.4.1 Metodología en Cascada ..................................................................... 38
1.4.2 Metodología de Prototipado ................................................................. 38
1.4.3 Metodología Incremental ...................................................................... 38
1.4.4 Metodología en Espiral ......................................................................... 39
1.4.5 Metodología RAD “Rapid Application Development” ............................ 40
CAPÍTULO II ........................................................................................................ 42
DISEÑO DE LA APLICACIÓN PARA UN WALL VIEW ...................................... 42
2.1 CONSIDERACIONES PREVIAS .................................................................42
2.1.1 METODOLOGÍA DE DESARROLLO DE SOFTWARE
SELECCIONADA .......................................................................................... 42
2.1.1.1 Justificación ................................................................................... 42
2.1.2 ALTERNATIVAS DE SERVIDORES DE STREAMING DE
AUDIO/VIDEO .............................................................................................. 42
2.1.2.1 Selección y Justificación ................................................................ 48
2.1.3 REPRODUCTOR DE STREAMING DE AUDIO/VIDEO
SELECCIONADO .......................................................................................... 48
2.1.3.1 Justificación ................................................................................... 48
2.2 CONFIGURACIONES INICIALES ...............................................................49
2.2.1 ARCHIVO DE CONFIGURACIÓN XORG.CONF ................................. 49
2.2.2 ARCHIVO DE CONFIGRUACIÓN FFSERVER.CONF ........................ 50
2.2.3 ARCHIVOS DE CONFIGURACIÓN “*.DS” DE DEVIL’S PIE ............... 51
2.3 DIAGRAMA DE FLUJO DE LA APLICACIÓN .............................................53
2.3.1 SERVIDOR .......................................................................................... 53
2.3.2 CLIENTE ............................................................................................. 54
2.4 PROGRAMACIÓN Y COMANDOS .............................................................55
2.4.1 DESCRIPCIÓN DE COMANDOS EMPLEADOS EN FFWALLVIEW ... 55
2.4.1.1 Script de instalación de pre-requisitos “PreReq.sh” ....................... 55
2.4.1.2 Script de selección del modo de ejecución “MODE.sh” ................. 57
2.4.1.3 Script para remasterización de video. ............................................ 57
2.4.1.4 Script principal para el servidor FFWallView.................................. 60
2.4.1.5 Script de streaming de video para el servidor FFWallView ............ 61
2.4.1.6 Script de streaming de un evento en vivo para el servidor
FFWallView “SendLiveC.sh” y “SendLiveG.sh” ......................................... 63
2.4.1.7 Script de streaming de un screencast para el servidor
FFWallView “SendScrC.sh” y “SendScrG.sh” ........................................... 64
2.4.1.8 Script principal para el cliente FFWallView .................................... 65
2.4.1.9 Script de transmisión de video para el cliente FFWallView
“DivTxVidC.sh” y “DivTxVidG.sh” .............................................................. 66
2.4.1.10 Script para terminar la ejecución de FFWallView “OFFWV.sh” ... 68
2.5 HARDWARE RECOMENDADO PARA EL FUNCIONAMIENTO DE LA
APLICACIÓN FFWALLVIEW .............................................................................69
2.5.1 SERVIDOR .......................................................................................... 69
2.5.2 CLIENTE .............................................................................................. 74
CAPÍTULO III ....................................................................................................... 76
PRUEBAS, RESULTADOS Y COSTOS .............................................................. 76
3.1 PRUEBAS Y RESULTADOS EN EL SERVIDOR ........................................76
3.1.1 REMASTERIZACIÓN DE VIDEO ......................................................... 76
3.1.2 MODO DE OPERACIÓN “TRANSMITIR VIDEO” ................................ 79
3.1.3 MODO DE OPERACIÓN “LIVESTREAM” ............................................ 87
3.1.4 MODO DE OPERACIÓN “SCREENCAST” .......................................... 90
3.2 PRUEBAS Y RESULTADOS EN EL CLIENTE............................................91
3.2.1 MODO DE OPERACIÓN “TRANSMITIR VIDEO” ................................ 91
3.2.2 MODO DE OPERACIÓN “LIVESTREAM” ............................................ 98
3.2.3 MODO DE OPERACIÓN “SCREENCAST” ........................................ 101
3.3 COSTOS....................................................................................................105
3.3.1 PRECIO DE LA APLICACIÓN FFWALLVIEW ................................... 106
3.3.2 COTIZACIÓN DE LA ALTERNATIVA DEL MERCADO
ECUATORIANO .......................................................................................... 107
3.3.3 COTIZACIÓN DE LA ALTERNATIVA DEL MERCADO
EXTRANJERO ............................................................................................ 107
3.3.4 COMPARATIVA DE PRECIOS .......................................................... 108
CAPÍTULO IV..................................................................................................... 109
CONCLUSIONES Y RECOMENDACIONES ..................................................... 109
4.1 CONCLUSIONES ......................................................................................109
4.2 RECOMENDACIONES ..............................................................................112
REFERENCIAS BIBLIOGRÁFICAS
ANEXOS
ÍNDICE DE FIGURAS
CAPÍTULO I
Figura 1.1
Proyecto GNU/Linux………………….……………………...........
1
Figura 1.2
Entorno de Escritorio GNOME…...………………………............
2
Figura 1.3
Entorno de Escritorio KDE………………………………..............
3
Figura 1.4
Entorno de Escritorio LXDE………………………………............
3
Figura 1.5
Entorno de Escritorio Xfce…………………………………...........
4
Figura 1.6
Arquitectura de distribuciones Linux con componentes
GNU...........................................................................................
5
Figura 1.7
Distribución “Fedora 17 (Beefy Miracle)”………………..............
6
Figura 1.8
Distribución “Ubuntu 12.10 (Quantal Quetzal)”…….……...........
6
Figura 1.9
Ilustración de FFmpeg………………………………………..........
8
Figura 1.10
Funcionamiento de FFmpeg………………………………...........
9
Figura 1.11
Funcionamiento de FFserver……………………………..............
13
Figura 1.12
Red de Área Local………………………………………................
17
Figura 1.13
Red de Área Metropolitana…………………………………..........
18
Figura 1.14
Red de Área Extendida……………………………………............
19
Figura 1.15
Intranet……………………………………………………................ 20
Figura 1.16
Arquitectura Cliente – Servidor…………………………............... 21
Figura 1.17
Resultado de instalación completa de FFmpeg (Ubuntu)..........
29
Figura 1.18
FFmpeg, FFplay, FFserver y FFprobe instalados
en versión 0.10.2……………….................................................
Figura 1.19
Figura 1.20
31
FFmpeg, FFplay, FFserver y FFprobe reinstalados
en versión 1.0………………………............................................
32
Resultado de instalación completa de FFmpeg (Fedora)..…....
36
CAPÍTULO II
Figura 2.1
FFserver………………..…………………………….................. 43
Figura 2.2
VideoLAN “VLC” Streaming………………………..….…........
44
Figura 2.3
Helix Universal Media Server……………………………….....
46
Figura 2.4
Darwin Streaming Server………………………………….......
47
Figura 2.5
Diagrama de flujo de la aplicación para el servidor…….......
53
Figura 2.6
Diagrama de flujo de la aplicación para el cliente.................
54
Figura 3.1
Video original sin remasterizar………………………………
76
Figura 3.2
Transmisión de video sin remasterizar………………..……
77
Figura 3.3
Video original remasterizado………………………………...
77
Figura 3.4
Transmisión de video remasterizado………………………..
78
Figura 3.5
Propiedades del video antes y después de remasterizar...
78
Figura 3.6
Resolución del monitor……………………………………….
79
Figura 3.7
Lista de videos almacenados en el servidor……………….
79
Figura 3.8
Parámetros del archivo de video para realizar el
CAPÍTULO III
streaming............................................................................
80
Figura 3.9
Salidas de streaming..…………………………..…………....
81
Figura 3.10
Streaming en curso…………………………………………..
82
Figura 3.11
Aplicación OFFWallView…………………………………….
82
Figura 3.12
Notificación de terminación de FFWallView……………….
82
Figura 3.13
Características generales del sistema (servidor)….………
83
Figura 3.14
Consumo de recursos al inicio del streaming………...……
83
Figura 3.15
Consumo de Recursos durante el streaming………………
84
Figura 3.16
Consumo de recursos al final del streaming……………….
84
Figura 3.17
Características generales del sistema
(servidor, prueba 1)……………………….…………………..
Figura 3.18
Consumo de recursos durante el streaming
(prueba 1)……………………………………………………..
Figura 3.19
86
Consumo de recursos durante el streaming
(prueba 3)…………………………………….………………..
Figura 3.23
86
Características generales del sistema
(servidor, prueba 3)…………………………………………..
Figura 3.22
86
Consumo de recursos durante el streaming
(prueba 2)……………………………………………………..
Figura 3.21
85
Características generales del sistema
(servidor, prueba 2)…………………………………………..
Figura 3.20
85
87
Efecto por envío de 4 flujos directamente desde la
webcam...............................................................................
87
Figura 3.24
Inicio de streaming en modo de operación livestream…....
88
Figura 3.25
Parámetros de FFmpeg para realizar un livestream………
88
Figura 3.26
Parámetros de FFmpeg para realizar un livestream
(continuación)…………………….……………………………
Figura 3.27
89
Consumo de recursos durante el streaming de un
evento en vivo……………………………………………...….
89
Figura 3.28
Parámetros de FFmpeg para realizar un screencast……..
90
Figura 3.29
Consumo de recursos screencast…………………………..
91
Figura 3.30
Espera de señal de transmisión……………………………..
92
Figura 3.31
Inicio de transmisión…………………………………………..
92
Figura 3.32
Entradas de streaming para transmitir video……………….
93
Figura 3.33
Presentación del Wall View con créditos iniciales…………
94
Figura 3.34
Instante aleatorio durante la presentación del Wall
View…………………………………………………………….
94
Figura 3.35
Efecto por terminación del streaming desde el servidor.....
95
Figura 3.36
Presentación de duplicados en el Wall View……………….
95
Figura 3.37
Características generales del sistema (cliente)……………
96
Figura 3.38
Consumo de recursos al inicio de la presentación………...
96
Figura 3.39
Consumo de recursos durante la presentación……………
97
Figura 3.40
Consumo de recursos al cancelar la presentación………..
97
Figura 3.41
Espera de señal de livestream……………...……………….
98
Figura 3.42
Entradas de streaming para livestream…………...………..
99
Figura 3.43
Presentación de un evento en vivo en el Wall View…...….
100
Figura 3.44
Presentación de duplicados de un evento en vivo
en el Wall View……………………………………...………… 100
Figura 3.45
Consumo de recursos durante la presentación de un
evento en vivo…………………………...…………………….
101
Figura 3.46
Recepción de señal de screencast………………………….
101
Figura 3.47
Entradas de streaming para screencast…………...……….
102
Figura 3.48
Desfase señal recibida vs. señal original…………………... 103
Figura 3.49
Presentación de un screencast en el Wall View…………... 104
Figura 3.50
Presentación de duplicados de un screencast en
el Wall View……………………………………………..……..
Figura 3.51
104
Consumo de recursos durante la presentación
de un screencast……………………………………………… 105
ÍNDICE DE TABLAS
CAPÍTULO I
Tabla 1.1
Interfaces de conexión para tarjetas gráficas….…………..…
24
Tabla 1.2
Tipos de memoria RAM de tarjetas gráficas……..………..….
25
CAPÍTULO II
Tabla 2.1
Requerimientos generales de las distribuciones Ubuntu y
Fedora …………………………………………………………….
70
Tabla 2.2
Resumen de cálculo capacidad de almacenamiento………...
72
Tabla 2.3
Hardware recomendado para el servidor FFWallView……….
74
Tabla 2.4
Hardware recomendado para el cliente FFWallView…………
75
CAPÍTULO III
Tabla 3.1
Precio de la aplicación FFWallView……………………...…….
106
Tabla 3.2
Cotización mercado ecuatoriano……………………..………...
107
Tabla 3.3
Cotización mercado extranjero………………………………….
107
ÍNDICE DE ECUACIONES
CAPÍTULO II
Ecuación 2.1
Cálculo de espacio en disco de un video.……………...….....
71
Ecuación 2.2
Cálculo del bit rate……………………………………………….
71
Ecuación 2.3
Cálculo de ancho de banda para streaming………………….
72
ÍNDICE DE ESPACIOS DE CÓDIGO
CAPÍTULO II
Espacio de Código 2.1
Instalación de pre-requisitos (1)...............................
55
Espacio de Código 2.2
Instalación de pre-requisitos (2)…………….............
56
Espacio de Código 2.3
Selección del modo de ejecución.............................
57
Espacio de Código 2.4
Remasterización de video, modo consola (1)..........
58
Espacio de Código 2.5
Remasterización de video, modo consola (2)…......
58
Espacio de Código 2.6
Remasterización de video, modo gráfico.................
59
Espacio de Código 2.7
Servidor FFWallView, modo consola.......................
60
Espacio de Código 2.8
Servidor FFWallView, modo gráfico........................
60
Espacio de Código 2.9
Streaming de video, modo consola.........................
61
Espacio de Código 2.10
Streaming de video, modo gráfico...........................
62
Espacio de Código 2.11
Streaming en modo livestream................................
63
Espacio de Código 2.12
Streaming en modo screencast...............................
64
Espacio de Código 2.13
Cliente FFWallView, modo consola.........................
65
Espacio de Código 2.14
Cliente FFWallView, modo gráfico..........................
65
Espacio de Código 2.15
Pruebas de conectividad.........................................
66
Espacio de Código 2.16
Modo de transmisión (presentación).......................
67
Espacio de Código 2.17
Segmentación y transmisión....................................
67
Espacio de Código 2.18
Terminación de FFWallView....................................
68
i
RESUMEN
En la actualidad se nota un considerable crecimiento en el uso de pantallas
gigantes o dispositivos de proyección, para presentar videos pertinentes a
publicidad, educación y afines. Sin embargo, el alto precio de sistemas dedicados
exclusivamente a la reproducción multimedia, se torna como una limitante para la
implementación de este tipo de sistemas; de allí nace la iniciativa de plantear
opciones que mermen en cierta medida los costos asociados.
Por otro lado, las alternativas en hardware que están vigentes, no se encuentran
disponibles en el mercado ecuatoriano; es decir, que para contar con alguno de
los sistemas mencionados, necesariamente se debe realizar la importación del
mismo. Además, cabe mencionar que estos sistemas implican la adquisición de
elementos adicionales (hardware dedicado) para su adecuado funcionamiento,
tales como: mainboard compatible y con características específicas, fuente de
poder de última generación, sistema de ventilación, entre otros.
Por los motivos descritos anteriormente, la finalidad del presente proyecto es
realizar una aplicación basada en software libre, que permita implementar un Wall
View construido con monitores comunes, siendo importante el tomar en cuenta la
sección del video que cada uno debe representar. El uso de herramientas libres
en el desarrollo de dicha aplicación, representa no incurrir en gastos relativos a la
adquisición de licencias de software orientado a programación.
La aplicación desarrollada será capaz de presentar en el Wall View un video
educativo, informativo y/o de publicidad, un evento en vivo a través de una
webcam, o una captura de escritorio, desde el servidor.
ii
PRESENTACIÓN
El presente proyecto consta de cuatro capítulos, los cuales puntualizan todos los
pormenores para cumplir con el objetivo planteado.
En el primer capítulo se estudia de forma general la plataforma-cruzada FFmpeg;
además se describen las principales características del sistema operativo
GNU/Linux, del audio y video digital, y de las redes de voz y datos. Se incluye
también una breve explicación de las metodologías de desarrollo de software
afines al propósito que se persigue en dicho proyecto.
En el segundo capítulo se realiza una clara descripción sobre las consideraciones
y configuraciones previas al diseño, y el desarrollo en sí de la aplicación
cliente/servidor que permite tomar una señal de video, para dividirla y procesarla
usando las herramientas de FFmpeg, y luego ser presentada en monitores,
ajustando las características de la imagen a cada uno de ellos, conformando un
Wall View. Asimismo, en este apartado, también se especifican los requerimientos
de hardware apropiados para el correcto desempeño de la aplicación.
En el tercer capítulo se muestran las diferentes pruebas y los resultados
derivados del funcionamiento de la aplicación. Se incluye también la cotización
relativa a los componentes asociados para conformar un Wall View con la
alternativa presentada en este proyecto.
En el cuarto capítulo se presentan las conclusiones y recomendaciones
inherentes al desarrollo del proyecto.
Finalmente se incluyen anexos que contienen información concerniente a la Guía
de Usuario de la aplicación, descripción del proceso de desarrollo de la aplicación
con la metodología incremental, cotizaciones de los proveedores consultados, y
método de instalación manual de controladores de tarjetas gráficas GeForce.
1
CAPÍTULO I
FUNDAMENTOS TEÓRICOS
1.1 GENERALIDADES
1.1.1 GNU – LINUX [L1] [PW1] [PW2]
El término GNU/Linux se emplea para referirse a la combinación del kernel1 libre
similar a Unix denominado Linux con las herramientas del proyecto GNU 2 (ver
Figura 1.1).
Figura 1.1 Proyecto GNU/Linux.
Linux es en sí el sistema operativo, pero, parte fundamental de la interacción
entre el kernel y los programas de aplicación se maneja usualmente con las
herramientas del proyecto GNU y con entornos de escritorio basados en GNOME
(GNU Network Object Model Environment), aun cuando este último tuvo un origen
independiente. Sin embargo, una parte significativa de los usuarios alrededor del
mundo, así como muchos medios generales y especializados, prefieren utilizar el
término Linux para referirse a la asociación de ambos proyectos.
En Linux se distinguen dos modos de operación, tanto en entorno gráfico como en
modo consola (línea de comandos), siendo la consola el modo más común en
distribuciones para servidores, mientras que la interfaz gráfica está enfocada
hacia el usuario final (de hogar o empresarial).
1
Kernel: Núcleo de un Sistema Operativo.
GNU: Es un acrónimo recursivo que significa GNU No es Unix (GNU is Not Unix). El proyecto
GNU fue iniciado por Richard Stallman con el objetivo de crear un sistema operativo
completamente libre.
2
2
Respecto del entorno gráfico, se debe mencionar la variedad de entornos de
escritorio existentes. Estos entornos son un conjunto de programas conformados
por ventanas, iconos y aplicaciones que facilitan el uso y manejo del computador.
Los entornos de escritorio más populares en GNU/Linux son: GNOME, KDE,
LXDE y Xfce.
1.1.1.1 Entorno de Escritorio GNOME [PW3]
“Es un entorno de escritorio e infraestructura de desarrollo para sistemas
operativos Unix y derivados Unix como GNU/Linux, BSD o Solaris; compuesto
enteramente de software libre.” (Ver Figura 1.2).
Figura 1.2 Entorno de Escritorio GNOME.
1.1.1.2 Entorno de Escritorio KDE [PW4]
“Es un proyecto de software libre para la creación de un entorno de escritorio e
infraestructura de desarrollo para diversos sistemas operativos como GNU/Linux,
Mac OS X, Windows, entre otros.” (Ver Figura 1.3).
3
Figura 1.3 Entorno de Escritorio KDE.
1.1.1.3 Entorno de Escritorio LXDE[PW5]
“Es un entorno de escritorio libre para Unix y otras plataformas POSIX, como
Linux o BSD. El nombre corresponde a "Lightweight X11 Desktop Environment",
que en español significa Entorno de escritorio X11 ligero.” (Ver Figura 1.4).
Figura 1.4 Entorno de Escritorio LXDE.
4
1.1.1.4 Entorno de Escritorio Xfce[PW6]
“Es un entorno de escritorio ligero para sistemas tipo Unix como GNU/Linux, BSD,
Solaris y derivados. Se configura íntegramente con el ratón o mouse.” (Ver Figura
1.5).
Figura 1.5 Entorno de Escritorio Xfce.
Las aplicaciones para Linux se distribuyen básicamente en los formatos .deb 3 y
.rpm4, aunque también existe la posibilidad de instalar aplicaciones a partir de
código fuente (sin discriminar la distribución de Linux 5 que se esté usando).
Una distribución de Linux es una distribución de software basada en el kernel de
Linux que incluye determinados paquetes informáticos orientados a satisfacer
requerimientos de un grupo específico de usuarios.
3
.deb: Formato para aplicaciones desarrolladas bajo distribuciones Debian y derivadas.
.rpm: Formato para aplicaciones desarrolladas bajo distribuciones Red Hat y derivadas.
5
Distribución de Linux: También denominada coloquialmente como “distro”.
4
5
Las distribuciones de Linux están compuestas, total o mayoritariamente, de
software libre6, aunque a menudo incorporan aplicaciones y/o controladores
privativos (propietarios). (Ver Figura 1.6).
Figura 1.6 Arquitectura de distribuciones Linux con componentes GNU.
Existen distribuciones soportadas comercialmente, como Fedora (Red Hat),
OpenSUSE (Novell), Ubuntu (Canonical Ltd.), Mandriva, entre otras. Asimismo, se
tienen distribuciones mantenidas por comunidades, como Debian y Gentoo.
También existen distribuciones que no están relacionadas con alguna empresa o
comunidad, como es el caso de Slackware7. (Ver Figura 1.7 y Figura 1.8).
6
[PW2]
Software Libre
: Es una cuestión de libertad de los usuarios para ejecutar, copiar, distribuir,
estudiar, cambiar y modificar el software (accediendo al código fuente). Esta característica da
origen a ediciones domésticas, empresariales y para servidores.
7
[PW7]
Slackware
: “Es la distribución de Linux más antigua que tiene vigencia. En su versión 14.00,
Slackware incluye la versión del núcleo Linux 3.2.29 y Glibc 2.15.”
6
Figura 1.7 Distribución “Fedora 17 (Beefy Miracle)”.
Figura 1.8 Distribución “Ubuntu 12.10 (Quantal Quetzal)”.
7
1.1.2 FFMPEG [PW8] [PW9] [P1]
1.1.2.1 Descripción del Proyecto FFmpeg
FFmpeg es una solución completa de código libre y de plataforma cruzada para
grabar, convertir y reproducir audio y video localmente o a través de la red. Es un
software libre licenciado bajo LGPL8 o GPL9 dependiendo de la elección en las
opciones de configuración. Al momento de usar FFmpeg o sus bibliotecas, se
debe acordar los términos de la licencia en cuestión.
Es desarrollado bajo Linux y puede ser compilado para plataformas como Redhat
“RPMs”, Debian “DEBs”, Windows y MacOS.
FFmpeg, como plataforma, está formada por elementos principales como:
·
FFmpeg: Herramienta que permite procesar archivos multimedia y
convertirlos en diferentes formatos.
·
FFplay: Reproductor muy simple y portable de archivos multimedia.
·
FFserver: Es un servidor de streaming para audio y video de todo lo que
FFmpeg pueda procesar y usar como entrada.
·
FFprobe: Obtiene información de los recursos multimedia y los imprime en
pantalla.
Y algunas bibliotecas como:
·
libavformat: Biblioteca que contiene los multiplexores-demultiplexores para
determinar el tipo de archivo, e identificar sus códecs asociados.
·
libavcodec: Biblioteca que contiene todos los códecs10 de FFmpeg, para
consultar información acerca del streaming, y para codificar/decodificar el
archivo multimedia. Aunque el objetivo principal de libavcodec son archivos
de audio/video, éste también provee códecs para formatos de imágenes
como GIF y PNG.
·
libavutil: Biblioteca de apoyo que contiene todas las rutinas comunes en las
diferentes partes de FFmpeg.
8
LGPL: Lesser General Public License “Licencia Pública General Reducida”.
GPL: General Public License “Licencia Pública General”.
10
Códecs: Es la abreviatura y/o nombre que se le da un codificador-decodificador.
9
8
·
libpostproc: Biblioteca de funciones de post-procesado de video.
·
libswscale: Biblioteca de escalado de video.
Esencialmente, FFmpeg provee un framework 11 que:
·
Determina el tipo de archivo multimedia
·
Enumera los streaming multimedia que contiene.
·
Identifica los códecs necesarios para decodificar/descomprimir/leer los
streaming.
·
Opcionalmente los convierte/guarda en un formato determinado.
1.1.2.2 FFmpeg [PW8] [P1][M1]
Es una herramienta muy rápida en línea de comandos que permite convertir
archivos de audio y/o video de un formato a otro, capturar y codificar en tiempo
real desde distintas fuentes como una webcam o una tarjeta de TV, o realizar un
screencast (grabar el escritorio). Permite manejar parámetros característicos de
audio y video como imágenes por segundo (frames per second, fps), resolución,
relación de aspecto, tasa de bits, compresión, número de canales de audio, entre
otros. En la Figura 1.9 [PW10] se ilustran las aplicaciones de FFmpeg.
Figura 1.9 Ilustración de FFmpeg.
11
Framework: Conjunto estandarizado de conceptos, experiencias y criterios para enfocar un
determinado tipo de problemática, cuya finalidad es servir de referencia, para solventar nuevos
problemas de carácter similar.
9
1.1.2.1.1 Descripción del funcionamiento
El diagrama de la Figura 1.10 describe el proceso de codificación y decodificación
que realiza FFmpeg.
Figura 1.10 Funcionamiento de FFmpeg.
FFmpeg utiliza la biblioteca libavformat (contenedor de demultiplexores) para leer
los archivos de entrada y obtener su información que se encuentra codificada.
Cuando existan múltiples archivos de entrada, ffmpeg mediante un rastreo del
menor timestamp (marca de tiempo) los mantiene sincronizados.
1.1.2.1.2 Opciones principales
‘-L’
Muestra la licencia.
‘-h, -?, -help, --help [arg]’
Muestra la ayuda.
‘-version’
Muestra la versión.
‘-formats’
Muestra los formatos disponibles.
El significado de los campos de los parámetros es el siguiente:
‘D’
Decodificadores12 disponibles.
‘E’
Codificadores13 disponibles.
12
13
Decodificador: Convierte señales de audio/video digitales en señales de audio/video analógicos.
Codificador: “Convierte señales de audio/video analógico a señales de audio/video digital”.
10
‘-codecs’
Muestra todos los códecs conocidos por libavcodec.
‘-decoders’
Muestra los decodificadores disponibles.
‘-encoders’
Muestra todos los codificadores disponibles.
‘-bsfs’
Muestra los filtros de bitstream14.
‘-protocols’
Muestra los protocolos disponibles.
‘-filters’
Muestra los filtros disponibles en libavfilter.
‘-f fmt (input/output)’
Fuerza el formato de entrada o salida.
‘-i filename (input)’
Nombre del archivo de entrada.
‘-y (global)’
Sobre-escribe el archivo de salida sin preguntar.
‘-n (global)’
No sobre-escribe el archivo de salida si el archivo existe.
‘-c[:stream_specifier] codec (input/output,per-stream)’
‘-codec[:stream_specifier] codec (input/output,per-stream)’
Selecciona un codificador o un decodificador de uno o más streams.
14
Bitstream: Secuencia o flujo de bits.
11
‘-t duration (output)’
Determina el tiempo de duración del procesamiento del archivo, se lo puede
configurar en segundos o en el formato hh:mm:ss.
‘-fs limit_size (output)’
Configura el tamaño máximo del archivo en bytes.
‘-q[:stream_specifier] q (output,per-stream)’
‘-qscale[:stream_specifier] q (output,per-stream)’
Usa una escala de calidad fija. El significado de "q" es códec-dependiente.
‘-aspect[:stream_specifier] aspect (output,per-stream)’
Configura la relación de aspecto15, por ejemplo "4:3", "16:9", "1.3333", y "1.7777"
son argumentos válidos.
-vf crop=width:height:x:y
Permite segmentar el video.
1.1.2.3 FFplay[PW11][M2]
Es un reproductor sencillo y portable de archivos multimedia, que utiliza las
bibliotecas de FFmpeg y las bibliotecas SDL16 , es principalmente usado como un
banco de pruebas de API 17 de FFmpeg.
1.1.2.3.1 Opciones principales.
‘-x width’
Forza el ancho de pantalla.
‘-y height’
Forza la altura de pantalla.
15
Relación de aspecto: Es la proporción entre las dimensiones ancho y altura.
Simple DirectMedia Layer: Es una biblioteca de plataforma cruzada para uso multimedia.
17
API (Application Programming Interface “Interfaz de Programación de Aplicaciones”): Provee
una capa de abstracción que permite la comunicación entre componentes de software.
16
12
‘-an’
Deshabilita el audio.
‘-vn’
Deshabilita el video.
‘-ss pos’
Avanza a una determinada posición del archivo de audio/video.
‘-t duration’
Configurar el tiempo de reproducción del archivo de audio/video.
‘-bytes’
Avanza por tamaño en bytes.
‘-f fmt’
Fuerza el formato.
‘-window_title title’
Establece un título a la ventana, el nombre por defecto es el nombre del archivo.
‘-loop number’
Número de veces que se va a reproducir el archivo. “0” (cero) significa una
reproducción infinita.
1.1.2.4 FFserver [PW12] [PW13][M3]
Es un servidor de streaming de audio/video que está habilitado para recoger
varias fuentes de entrada (normalmente aplicaciones FFmpeg), para luego
transcodificar 18, remultiplexar 19, y/o difundir cada una de ellas utilizando múltiples
streams de salida, distribuyéndolos a uno o varios clientes para su visualización
(ver Figura 1.11).
18
19
Transcodificar: Conversión directa, digital –digital de un códec a otro.
Remultiplexar: Proceso de demultiplexar un contenedor y multiplexarlo nuevamente.
13
Figura 1.11 Funcionamiento de FFserver.
1.1.2.5 FFprobe [PW14] [M4]
Recopila información de los archivos multimedia y lo muestra de en una forma
legible. FFprobe tratará de abrir cualquier archivo que sea especificado como
entrada, y en caso de no ser reconocido como un archivo multimedia, se devuelve
como un archivo de salida positivo.
Se lo puede usar como una aplicación independiente o, gracias a que está
diseñado para ser analizado fácilmente por un filtro de texto, puede ser usado en
combinación con alguno de aquellos.
1.1.3 ESQUEMAS DE COMPRESIÓN DE AUDIO Y VIDEO
1.1.3.1 Multimedia [PW15 ]
“Multimedia es un término que procede de la lengua inglesa y que refiere a
aquello que utiliza varios medios de manera simultánea en la transmisión de una
información. Una presentación multimedia, por lo tanto, puede incluir fotografías,
videos, sonidos y texto. El concepto se aplica a objetos y sistemas que apelan a
14
múltiples medios físicos y/o digitales para comunicar sus contenidos. El término
también se usa en referencia a los medios en sí que permiten almacenar y
difundir contenidos con estas características.”
1.1.3.2 Audio [PW16]
La generación del sonido se debe a la vibración de alguna fuente, por ejemplo la
vibración de partículas de aire, que son perceptibles para el oído humano 20 e
interpretadas por el cerebro. El sonido digital es la conversión de la señal
analógica, ondas sonoras, en una señal digital, unos y ceros.
1.1.3.2.1 Compresión de Audio [PW17] [PW18]
“La compresión de audio es una forma de compresión de datos, específicamente
en la reducción del tamaño de los archivos de audio. Los algoritmos de
compresión de audio normalmente son llamados códecs de audio. Existen dos
tipos de compresión, basados en algoritmo de compresión sin pérdida o
algoritmo de compresión con pérdida.” [PW19]
Compresión basada en algoritmos sin pérdidas [PW20]
Los archivos que se basan en este tipo de compresión representan la
información ocupando u utilizando un espacio menor, pero consiguiendo la
reconstrucción exactamente igual a la original.
Archivos de sonido sin pérdida:
·
WAV o wave (Waveform Audio Format): Se emplea para almacenar
sonidos en los ordenadores con Windows.
·
MIDI (Musical Instrument Digital Interface): Considerado el estándar para
industria de la música electrónica. Es muy útil para trabajar con
dispositivos como sintetizadores musicales o tarjetas de Sonido. Su
extensión es .midi o .mid.
20
·
AU: Formato de UNIX (Linux).
·
AIFF (Audio Interchange File Format): Formato propio de MacOS.
El rango de frecuencia audible oscila entre los 20 Hz y 20 KHz.
15
Compresión basada en algoritmos con pérdidas [PW21]
Los archivos que se basan en este tipo de compresión representan la
información con una menor cantidad de datos. Esto implica la imposibilidad de
reconstruir exactamente la información original del archivo; lo que se obtendrá
será una aproximación, con la gran ventaja que requerirá de un menor espacio
de almacenamiento.
Archivos de sonido con pérdida:
·
MP3 o MPEG-1 Audio Layer 3: Formato de audio digital estándar, la
pérdida de información del formato mp3 no es audible por el oído
humano, de forma no se distinguirá la diferencia entre un archivo sin
comprimir y uno en formato mp3. Relación de compresión de 10:1
patentado.
·
AAC (Advanced Audio Coding): Formato de audio digital estándar como
extensión de MPEG-2 comprimido con pérdida. Mejora el rendimiento del
MP3. Propiedad de Apple.
·
OGG: Formato de audio digital comprimido con pérdida. Normalmente
están comprimidos con el códec Vorbis, que es un códec de audio libre.
Mejora la calidad de un MP3 del mismo tamaño.
·
Real Audio o RM: Es un formato casi exclusivo para el streaming. Basado
en el formato ACC.
·
WMA (Windows Media Audio): Formato de compresión de audio con
pérdida aunque también existe este formato con compresión sin pérdida.
Competencia de Microsoft para el MP3. Calidad muy parecida a éste.
·
AC3: Formato propio de los dvd, permite varios canales de audio (5.1 y
7.1).
1.1.3.3 Video [PW22]
Un video es una sucesión de imágenes que se reproducen a una determinada
frecuencia, usualmente el ojo humano es capaz de distinguir hasta una sucesión
de 20 imágenes por segundo, por lo que al mostrar más de 20 imágenes por
segundo es posible engañar al cerebro y generar percepción de movimiento. La
16
calidad de un video se caracteriza por la cantidad de imágenes por segundo, fps
(frames per second).
Son almacenados en un determinado formato digital de video como puede
ser AVI, MPEG, MPG, WMV, entre otros.
1.1.3.3.1 Compresión de Video [PW23]
La importancia que tienen los codificadores ha ido en aumento en estos últimos
años, debido a la búsqueda de una mejor calidad en la imagen con la menor
capacidad de almacenamiento posible, para lo cual es necesario el uso de
técnicas de compresión de datos, específicamente la compresión de video.
·
AVI (Audio Video Interleaved): Es el formato estándar para almacenar
video digital. El archivo AVI puede contener video con una calidad
excelente. Sin embargo el peso del archivo resulta siempre muy elevado.
·
MPEG (Moving Pictures Expert Group): Es un formato estándar para la
compresión de video digital. Son archivos de extensión *.mpg ó *.mpeg.
Admite distintos tipos de códecs de compresión: MPEG-1 (calidad CD),
MPEG-2 (calidad DVD), MPEG-3 (orientado al audio MP3) y MPEG-4 (más
orientado a la web).
·
H.264 [PW24] ( MPEG-4 AVC): Desarrollado para el uso en alta resolución en
sistemas como HDTV, Blu-ray y HD DVD, así como dispositivos de baja
resolución como Sony’s PSP y Apple’s iPod, H.264 ofrece mejor calidad a
tamaños menores que los formatos MPEG-2 y MPEG-4 ASP (DivX or
XviD).
·
MOV: Es el formato de video y audio desarrollado por Apple.
·
WMV (Windows Media Video): Desarrollado por Microsoft, Utiliza el códec
MPEG-4 para la compresión de video, puede tener la extensión *.asf, por
su razonable relación calidad/tamaño se puede usar para realizar
streaming.
·
RM (Real Media): Propietario de Real Network, utiliza un códec propio para
comprimir el audio, Tienen la extensión *.rm y *.ram, y también se puede
usar para realizar streaming por su aceptable relación calidad/tamaño.
17
·
FLV (Flash Video): Formato que utiliza el reproductor Adobe Flash para
visualizar vídeo en Internet. Los archivos tienen la extensión *.flv y es la
opción más utilizada para la difusión de videos por internet gracias a la
accesibilidad a este reproductor desde distintos sistemas operativos, es
popularmente usado por sitios como Youtube y Google Video.
1.1.4 CONCEPTO DE REDES [F2][PW25]
1.1.4.1 Redes de Área Local (LAN 21)
Una Red de Área Local está formada por un grupo de equipos que pertenecen a
un mismo grupo de trabajo (ver Figura 1.12), con el objeto de compartir recursos e
intercambiar información, en un área geográfica relativamente pequeña y
predeterminada (como una habitación, un edificio, o un conjunto de edificios). Las
velocidades de transmisión oscilan entre 10 Mbps22 (Ethernet) y 10 Gbps 23 (10
Gigabit Ehternet), la tecnología que utilizan es la de conmutación, y gracias a las
cortas distancias que no deben superar los 200 metros, se experimentan pocos
errores y un bajo retardo.
Figura 1.12 Red de Área Local.
21
LAN: Local Area Network “Red de Área Local”.
Mbps: Megabits por segundo.
23
Gbps: Gigabits por segundo.
22
18
Aunque las LAN inicialmente fueron concebidas como redes de difusión
conectadas a través de líneas telefónicas y ondas de radio, en la actualidad el
esquema universal que se emplea es el de Ethernet Conmutada 24.
1.1.4.2 Redes de Área Metropolitana (MAN 25)
Es una red de alta velocidad que conecta diversas LAN geográficamente
dispersas, hasta distancias de 50 Km, permitiendo de este modo que dos redes
locales se comuniquen remotamente, como si fueran parte de la misma red (ver
Figura 1.13). Una MAN proporciona capacidad de integración de múltiples
servicios (voz, datos, y vídeo), sobre medios de transmisión tales como fibra
óptica y par trenzado, aprovechando su baja latencia (entre 1 ms y 50 ms), gran
estabilidad y carencia de interferencias radioeléctricas. Las velocidades de una
MAN generalmente son de 10 Mbps, 20 Mbps, 45 Mbps y 75 Mbps, sobre pares
de cobre, y, 100 Mbps, 1 Gbps y 10 Gbps mediante Fibra Óptica.
Figura 1.13 Red de Área Metropolitana.
1.1.4.3 Redes de Área Extendida (WAN 26) [F1] [P3]
Una WAN conecta y permite la transmisión de datos de varias LAN y MAN
geográficamente ubicadas a cientos de kilómetros (ver Figura 1.14). Las WAN
transportan varios tipos de tráficos como voz, datos y video, proveyendo de
24
Ethernet Conmutada: Tecnología de red donde los hosts se conectan mediante enlaces punto a
punto a un conmutador (switch) de tramas Ethernet. La estructura típica es en forma de árbol.
25
MAN: Metropolitan Area Network “Red de Área Metropolitana”.
26
WAN: Wide Area Network “Red de Área Extendida”.
19
servicio a un país o un continente. Tal es el caso de Internet o cualquier red en la
cual no estén en un mismo edificio todos sus miembros.
Figura 1.14 Red de Área Extendida.
Muchas WAN son construidas por y para una organización o empresa particular y
son de uso privado, otras son construidas por los ISPs27 para proveer de conexión
a sus clientes. Estas conexiones pueden presentarse bajo diferentes esquemas,
como el utilizar redes acondicionadas para el transporte de datos (PSTN28),
emplear redes propias para el transporte de datos: VPN29, a través de un
Proveedor de Servicio de Telecomunicaciones, o con una infraestructura propia.
Las tecnologías más frecuentes para implementar una WAN son ATM 30, Frame
Relay, xDSL31 y MPLS 32.
1.1.4.4 Intranet [PW26]
Una intranet es una red que permite la comunicación entre varios equipos (de una
misma empresa, organización y/o institución), que se realiza sobre un protocolo
de comunicaciones estándar como TCP/IP (comúnmente) u otro diferente,
siempre que todos los equipos que se comuniquen a la intranet utilicen el mismo
protocolo (ver Figura 1.15).
Se debe resaltar que una intranet también está orientada a quienes utilizan
servicios de información que produce una determinada empresa, es decir,
27
ISP: Internet Service Provider “Proveedor de Servicios de Internet”.
PSTN: Public Switched Telephone Network “Red Telefónica Pública Conmutada”.
29
VPN: Virtual Private Netwok “Red Privada Virtual”.
30
ATM: Asynchronous Transfer Mode “Modo de Transferencia Asincrónico”.
31
xDSL: Digital Subscriber Line “Línea Digital de Abonado”.
32
MPLS: MultiProtocol Label Switching “Conmutación MultiProtocolo por Etiquetas”.
28
20
servicios que se ponen a disposición de usuarios externos, pero exclusivos de
dicha empresa.
Figura 1.15 Intranet.
1.1.5 STREAMING [PW27]
El termino streaming hace referencia a un flujo continuo (sin interrupciones). En
computación streaming hace referencia a escuchar y/o ver un archivo multimedia
en una red de datos, directamente de un servidor al mismo tiempo que lo está
descargando. Esto se realiza con la ayuda de un buffer de datos que va
almacenando lo que va descargando para luego ser mostrado al usuario, se
diferencia del esquema de descarga de archivos en que no es necesario que se
descargue por completo el archivo para poder acceder al mismo.
Para la transmisión de información hace uso de protocolos ligeros como UDP33,
RTSP34 y RTP35 que permiten que la entrega de información desde el servidor
hasta el cliente quien reproduce el archivo, sea en un tiempo menor que el
conseguido con protocolos como TCP36 y HTTP37. Esto se debe a la forma en que
los protocolos mencionados manejan los paquetes perdidos y erróneos de
información, mientras que TCP y HTTP, persiste en el reenvió de paquetes
(perdidos/errados) hasta recibir una confirmación de transmisión exitosa. UDP,
RTSP y RTP trabajan con el esquema de envío continuo de paquetes sin tomar
33
UDP: User Datagram Protocol “Protocolo de Datagramas de Usuario”.
RTSP: Real Time Streaming Protocol “Protocolo de Streaming en Tiempo Real”.
35
RTP: Real-time Transport Protocol “Protocolo de Transporte en tiempo Real”.
36
TCP: Transmission Control Protocol “Protocolo de Control de Transmisión”.
37
HTTP: HyperText Transfer Protocol “Protocolo de Transferencia de HiperTexto”.
34
21
en cuenta los perdidos o erróneos, los cuales son casi imperceptibles al tratarse
de aplicaciones multimedia.
1.1.6 ARQUITECTURA CLIENTE – SERVIDOR [PW27]
Esta arquitectura se basa en la asignación de dos roles a los computadores que
forman parte de una red, de esta forma se tienen: clientes y servidores.
El cliente es una computadora o un proceso que inicia la comunicación y solicita
los recursos o servicios que serán provistos por un servidor. Este host, espera y
recibe respuestas, desde uno o varios servidores dependiendo del (los) servicio(s)
que solicite y normalmente es quien interactúa con los usuarios finales.
El servidor es una aplicación o un proceso que se encuentra en espera de
solicitudes de los clientes, en base a las cuales devuelve los resultados en forma
de una respuesta. Un servidor puede manejar las peticiones de múltiples clientes
a la vez.
Algunos servidores esperan las solicitudes de los clientes en direcciones de
puertos 38 específicos, de forma que los clientes conocen a qué socket 39 IP deben
realizar las peticiones (ver Figura 1.16).
Figura 1.16 Arquitectura Cliente – Servidor.
38
Puerto: Extremo de una conexión lógica.
Socket: Es una abstracción para representar el emparejamiento entre direcciones IP, protocolo
de transporte y números puertos.
39
22
1.2 REQUERIMIENTOS
1.2.1 REQUERIMIENTOS HARDWARE
1.2.1.1 Múltiples monitores [PW29] [PW30] [PW31]
El término múltiples monitores, también llamado multi-display se refiere a la
posibilidad de tener varios dispositivos de visualización como monitores,
televisores y proyectores en un mismo computador permitiendo al usuario
incrementar la zona de visualización y la ejecución de programas. Esta opción se
tiene disponible en los computadores Macintosh, Linux y con sistemas operativos
Windows 98, ME, XP, Vista, 7, 8.
La salida de video en una computadora es generada por un dispositivo que
maneja señales gráficas, típicamente en una tarjeta extraíble pero puede también
estar integrada dentro de la tarjeta madre 40 como parte del chipset. Las opciones
de configuración son las siguientes:
1.2.1.1.1 Modo de Pantalla Duplicado
Desde antes de disponer de computadoras personales, las señales de video eran
divididas con un simple adaptador en Y 41 para duplicar las señales a múltiples
monitores. Cuando las computadoras empezaron a tener salidas de video
personales en todos los monitores se refleja exactamente lo mismo, el sistema
operativo administra independiente la resolución, profundidad de color y la tasa de
refresco, de modo que al usar el ratón sobre la pantalla original, también será
reflejado en todos los monitores, facilitándose las presentaciones a una gran
cantidad de público.
1.2.1.1.2 Modo de Pantalla Escritorio Extendido
Consiste en la capacidad de las tarjetas de video de expandir el mismo flujo de
datos de un escritorio a través de dos monitores, consiguiendo de esta forma el
40
Tarjeta Madre: Conocida también como Mainboard o placa base. Es la parte principal de un
computador que permite conectar los demás dispositivos y que éstos interactúen entre sí.
41
Adaptador en Y: Es el mismo concepto de los actuales splitter (separadores/repetidores) de
video.
23
doble de la resolución ya sea en forma horizontal o vertical, dependiendo del
modo de configuración de los monitores, así por ejemplo, si la resolución de los
monitores usados son de 1366x768 se puede tener una resolución combinada de
2732x768 o de 1366x1536, ambos monitores funcionarán a la misma resolución,
profundidad de color y la tasa de refresco, de forma que se minimiza el uso de los
recursos del sistema operativo.
El concepto de escritorio extendido se puede ampliar no únicamente al uso de dos
monitores, sino también a la implementación de tres o más de ellos con un mismo
computador, empleando un hardware adecuado. Existen varias opciones de
GPU42 para crear una pantalla unificada, como por ejemplo la tecnología Eyefinity
de ATI, tarjetas de video a través de puertos pci o pci express, o en puertos usb.
1.2.1.2 Tarjeta de Video [PW32]
Es un dispositivo de hardware que integra dentro de sí un circuito integrado
encargado del proceso de gráficos por lo que liberan de carga al microprocesador,
también integra memoria RAM (ver Tabla 1.2), evitando así el consumo de la
memoria RAM 43 principal, para mostrarlas en un dispositivo de salida como puede
ser un monitor. Se las instala dentro de ranuras de expansión en la tarjeta madre,
tiene uno o varios puertos de salida con distintos tipos de conectores (ver Tabla
1.1) como pueden ser vga, dvi, hdmi, display-port, S-Video.
42
GPU: Graphics Processing Unit “Unidad de Procesamiento de Gráficos”.
RAM: Random Access Memory “Memoria de Acceso Aleatorio”. “Se utiliza como memoria de
trabajo para el sistema operativo, los programas y la mayoría del software.”
43
24
CONECTOR
USO
IMAGEN
HDMI ("High Definition
Permite
Multimedia interface")
computarizado en alta definición
el
uso
de
video
(HD1080p).
DVI ("Digital Visual
Interface")
Para
la
máxima
visualización
calidad
en
posible
la
de
monitores de pantalla plana o
proyectores digitales.
VGA ("Video Graphics
Array")
Conector de video analógico
adoptado
universalmente
por
las tarjetas gráficas.
Display-port
Es una interfaz digital estándar
que permite la transmisión de
video y eventualmente de audio.
Tabla 1.1 Interfaces de conexión para tarjetas gráficas.
25
TIPOS DE MEMORIA RAM GDDR
Tipo de RAM
GDDR5 "Graphics Double Data Rate 5"
Características
Especificación
gráficas
de
para
alto
tarjetas
rendimiento
provee un doble ancho de banda a
diferencia de GDDR4, que permite
ser configurada a 32 y 64 bits.
GDDR4 "Graphics Double Data Rate 4"
Mejora características de consumo
y ventilación con respecto a la
GDDR3.
GDDR3 "Graphics Double Data Rate 3"
Reduce considerablemente costes
de consumo y de disipación y
permite aumentar la eficiencia de
los
módulos
con
el
uso
de
sencillos sistemas de refrigeración.
GDDR2 "Graphics Double Data Rate 2"
Es un tipo de memoria RAM
diseñada para tarjetas gráficas,
funcionaba
según
el
estándar
DDR.
GDDR "Graphics Double Data Rate"
Es un tipo de memoria RAM
diseñada para tarjetas gráficas.
Tabla 1.2 Tipos de memoria RAM de tarjetas gráficas.
26
1.2.2 REQUERIMIENTOS SOFTWARE
1.2.2.1 Zenity [PW33][M5]
Zenity es un programa de software libre y plataforma cruzada que facilita la
creación de GUIs44, mediante línea de comandos y shell scripts. A diferencia de
otros lenguajes de script como Perl y Python, Zenity puede ser usado como una
herramienta gráfica ligera, que permite la interacción con el usuario a través de
una interfaz sencilla, mostrando mensajes de diálogo. Algunos de los tipos de
diálogo soportados son:
·
Diálogo de calendario.
·
Diálogo de contraseña
·
Diálogo de escala.
·
Diálogo de formularios.
·
Diálogo de lista.
·
Diálogo de mensaje Error, Información, Pregunta, Advertencia
·
Diálogo de progreso.
·
Diálogo de selección de archivos.
·
Diálogo de selección de color.
·
Diálogo para la entrada de texto.
·
Diálogo para el texto de información.
·
Icono de notificación.
1.2.2.2 Devil's Pie [PW34] [PW35][M6]
Devil’s Pie es una herramienta que permite a las aplicaciones iniciarse en un lugar
de trabajo específico, con especificaciones como tamaño y lugar, minimizado o
maximizado, basado en archivos de configuración sencillos. A pesar de manejar
ventanas no es un administrador de ventanas como lo son Compiz o Metacity, sin
embargo este último carece de algunas características que son provistas por
Devil’s Pie, lo cual permite que este pueda ser usado con cualquier gestor de
ventanas.
44
GUI: Graphical User Interface “Interfaz Gráfica de Usuario”.
27
La configuración se la realiza mediante scripts cuyos nombres de archivo deben
tener la extensión “.ds” para ser reconocidos. Devil’s Pie arranca ejecutando el
comando devilspie en cualquier terminal, con lo cual serán leídos todos los
archivos “*.ds” que son almacenados en el directorio por defecto:
$HOME/.devilspie/ Ejemplo: /home/<YourUserName>/.devilspie
1.2.2.3 Notify-send [M7]
Es un programa que envía notificaciones al escritorio, mediante línea de
comandos. Dichas notificaciones pueden ser usadas para informar al usuario
acerca de determinados eventos, o mostrar algún tipo de información sin
necesidad de interrumpir las acciones que este ejecutando usuario.
1.3 INSTALACION FFMPEG
1.3.1 INSTALACIÓN DE FFMPEG PARA DISTRIBUICIONES DEBIAN Y
DERIVADAS [PW36]
El procedimiento que se describe a continuación permite instalar la última versión
estable 45 de FFmpeg. En la Figura 1.17 se observa el resultado de instalación.
1.3.1.1 Previos
Desinstalación completa de cualquier paquete existente relacionado con la
herramienta FFmpeg:
sudo apt-get remove ffmpeg x264 libav-tools libvpx-dev libx264-dev yasm
Dependencias necesarias:
sudo apt-get update
sudo apt-get –y install autoconf build-essential checkinstall git \
libass-dev libfaac-dev libgpac-dev libjack-jackd2-dev libmp3lame-dev \
libopencore-amrnb-dev libopencore-amrwb-dev librtmp-dev libsdl1.2-dev \
libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev \
libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev
45
NOTA: La instalación fue realizada y probada exitosamente bajo la distribución de Linux “Ubuntu
Desktop 12.10 (Quantal Quetzal)”.
28
1.3.1.2 Instalación de FFmpeg
Yasm 46:
cd /usr/share
sudo wget http://www.tortall.net/projects/yasm/releases/yasm-\
1.2.0.tar.gz
sudo tar xzvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
sudo ./configure
sudo make
sudo checkinstall –pkgname=yasm –pkgversion=”1.2.0” –backup=no \
--deldoc=yes –fstrans=no –default
x26447:
cd ..
sudo git clone –depth 1 git://git.videolan.org/x264
cd x264
sudo ./configure –enable-static
sudo make
sudo checkinstall –pkgname=x264 –pkgversion=”3:$(./version.sh | \
awk –F’[“ ]’ ‘/POINT/{print $4”+git”$5}’)” –backup=no –deldoc=yes \
--fstrans=no –default
fdk-aac 48:
cd ..
sudo git clone –depth 1 git://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
sudo autoreconf –fiv
sudo ./configure –disable-shared
sudo make
sudo checkinstall –pkgname=fdk-aac –pkgversion=”$(date +%Y%m%d%H%M)-\
git” –backup=no --deldoc=yes –fstrans=no –default
libvpx 49:
cd ..
sudo git clone –depth 1 http://git.chromium.org/webm/libvpx.git
46
Yasm: Es un ensamblador recomendado para x264 y FFmpeg.
x264: Codificador de video H.264.
48
fdk-aac: Codificador de audio aac.
49
libvpx: Codificador/decodificador de video VP8.
47
29
cd libvpx
sudo ./configure –disable-examples –disable-unit-tests
sudo make
sudo checkinstall –pkgname=libvpx –pkgversion=”1:$(date +%Y%m%d%H%M)-\
git” –backup=no –deldoc=yes –fstrans=no –default
FFmpeg:
cd ..
sudo git clone –depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
sudo ./configure –enable-gpl –enable-libass –enable-libfaac \
--enable-libfdk-aac –enable-libmp3lame –enable-libopencore-amrnb \
--enable-libopencore-amrwb –enable-librtmp –enable-libtheora \
--enable-libvorbis –enable-libvpx –enable-x11grab –enable-libx264 \
--enable-nonfree –enable-version3
sudo make install
sudo checkinstall –pkgname=ffmpeg –pkgversion=”7:$(date +%Y%m%d%H%M)-\
git” –backup=no –deldoc=yes –fstrans=no –default
hash –r
Figura 1.17 Resultado de instalación completa de FFmpeg (Ubuntu).
30
1.3.1.3 Instalación de paquetes opcionales 50
La instalación de los paquetes opcionales que se detallan a continuación son
necesarios para un mejor soporte y desempeño para esquemas relativos a MP4 y
x264.
Qt-faststart 51:
cd /usr/share/ffmpeg
sudo make tools/qt-faststart
sudo checkinstall –pkgname=qt-faststart –pkgversion=”$(date
+%Y%m%d%H%M)- \ git” –backup=no –deldoc=yes –fstrans=no –default install
–Dm755 \ tools/qt-faststart /usr/local/bin/qt-faststart
lavf 52 como soporte para x264:
cd /usr/share/x264
sudo make distclean
sudo ./configure –enable-static
sudo make
sudo checkinstall –pkgname=x264 –pkgversion=”3:$(./version.sh | awk \
-F’[“ ]’ ‘/POINT/{print $4”+git”$5}’)” –backup=no –deldoc=yes \
--fstrans=no –default
Inicialmente se instaló la versión 0.10.2 de FFmpeg (ver Figura 1.18), la cual se
consideraba como la más estable a la fecha 24 de julio de 2012. Con esta versión
se realizaron los ensayos de familiarización con dicha herramienta.
Posteriormente, y de manera definitiva, se reinstaló FFmpeg en su versión 1.0
(ver Figura 1.19), misma que a la fecha 28 de noviembre de 2012, tras algunas
mejoras, se presentó como la versión más estable.
50
NOTA: Se recomienda la instalación de dichos paquetes para evitar eventuales conflictos con la
aplicación.
51
qt–faststart: Esta es una herramienta muy útil para relocalizar algunos datos en el vídeo
(H.264/MP4) y así permitir el inicio de la reproducción antes de que el archivo se haya descargado
por completo en la web.
52
lavf: Permite que x264 acepte casi cualquier entrada que pueda ser manejada por FFmpeg.
31
Figura 1.18 FFmpeg, FFplay, FFserver y FFprobe instalados en versión 0.10.2.
32
Figura 1.19 FFmpeg, FFplay, FFserver y FFprobe reinstalados53 en versión 1.0.
53
NOTA: Recordar que al reinstalar la herramienta con los pasos descritos en este apartado,
siempre se instala la versión más reciente de la misma.
33
1.3.1.4 Revertir los cambios realizados
Para eliminar la herramienta FFmpeg (instalada bajo el lineamiento descrito en los
pasos anteriores), se debe realizar el siguiente procedimiento:
sudo apt-get -y autoremove autoconf build-essential checkinstall \
fdk-aac ffmpeg git libass-dev libfaac-dev libgpac-dev \
libjack-jackd2-dev libmp3lame-dev librtmp-dev libsdl1.2-dev \
libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libvpx \
libx11-dev libxfixes-dev pkg-config qt-faststart texi2html x264 yasm \
zlib1g-dev
cd /usr/share
sudo rm –R x264 fdk-aac libvpx ffmpeg
1.3.2 INSTALACIÓN DE FFMPEG PARA DISTRIBUCIONES RED HAT Y
DERIVADAS [PW37]
El procedimiento que se describe a continuación permite instalar la última versión
estable 54 de FFmpeg. En la Figura 1.20 se observa el resultado de instalación.
1.3.2.1 Previos
Desinstalación completa de cualquier paquete existente relacionado con la
herramienta FFmpeg:
yum erase ffmpeg x264 x264-devel-tools
Dependencias necesarias:
yum install gcc git make nasm pkgconfig wget
Crear un directorio:
mkdir ~/ffmpeg-source
54
NOTA: La instalación fue realizada y probada exitosamente bajo la distribución de Linux “Fedora
17 (Beefy Miracle)”.
34
1.3.2.2 Instalación de FFmpeg
Yasm:
cd ~/ffmpeg-source
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar xzvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure
make
# make install
x264:
cd ~/ffmpeg-source
git clone git://git.videolan.org/x264
cd x264
./configure --enable-static
make
# make install
LAME 55:
cd ~/ffmpeg-source
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame- \
3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --disable-shared --enable-nasm
make
# make install
libogg 56:
cd ~/ffmpeg-source
wget http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz
tar xzvf libogg-1.3.0.tar.gz
cd libogg-1.3.0
./configure --disable-shared
make
# make install
55
56
LAME: Codificador de audio mp3.
libogg: Requerimiento para libvorbis.
35
libvorbis 57:
cd ~/ffmpeg-source
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz
tar xzvf libvorbis-1.3.3.tar.gz
cd libvorbis-1.3.3
./configure --disable-shared
make
libvpx:
cd ~/ffmpeg-source
git clone http://git.chromium.org/webm/libvpx.git
cd libvpx
./configure
make
# make install
zlib 58:
cd ~/ffmpeg-source
wget http://zlib.net/zlib-1.2.7.tar.gz
tar xzvf zlib-1.2.7.tar.gz
cd zlib-1.2.7
./configure
make
# make install
FFmpeg:
cd ~/ffmpeg-source
git clone git://source.ffmpeg.org/ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libmp3lame --enable-libvorbis -enable-libvpx --enable-libx264
make
# make install
57
58
libvorbis: Biblioteca de Vorbis que es un códec de audio libre de compresión con pérdida.
zlib: requerido para codificar y decodificar varios formatos incluyendo PNG.
36
Figura 1.20 Resultado de instalación completa de FFmpeg (Fedora).
37
1.3.2.3 Revertir los cambios realizados
Para eliminar la herramienta FFmpeg (instalada bajo el lineamiento descrito en los
pasos anteriores), se debe realizar el siguiente procedimiento:
cd ~/ffmpeg-source/yasm-1.2.0
# make uninstall
cd ../x264
# make uninstall
cd ../lame-3.99.5
# make uninstall
cd ../libogg-1.3.0
# make uninstall
cd ../libvorbis-1.3.3
# make uninstall
cd ../libvpx
# make uninstall
cd ../zlib-1.2.7
# make uninstall
cd ../ffmpeg
# make uninstall
rm -rf ~/ffmpeg-source
# yum erase gcc git make nasm pkgconfig wget
1.4 METODOLOGÍAS DE DESARROLLO DE SOFTWARE [PW38]
Las metodologías de desarrollo de software son básicamente un conjunto de
procedimientos, técnicas, herramientas y soporte documental que ayuda a los
desarrolladores (programadores) a realizar nuevo software.
La constante innovación tecnológica hace necesaria la aplicación de nuevas
metodologías adaptadas a las tendencias actuales. Por este motivo, se asevera
que “la ausencia de metodología en el desarrollo de un proyecto de software
implica con seguridad también la ausencia de calidad”.
38
Cada metodología de desarrollo de software tiene relativamente su propio
enfoque. A continuación se explican los enfoques más generales, que se
desarrollan en varias metodologías específicas.
1.4.1 METODOLOGÍA EN CASCADA
Es un proceso secuencial de desarrollo en el que cada paso es visto hacia abajo
(en cascada) a través de las fases de análisis de las necesidades, el diseño,
implementación, pruebas, integración, y mantenimiento. Los principios básicos del
modelo de cascada son los siguientes:
1. El proyecto está dividido en fases secuenciales, con cierta
superposición y sobrelape aceptable entre fases.
2. Es indispensable que se realice la planificación, horarios, fechas,
presupuestos y ejecución de todo un sistema de una sola vez.
3. Para iniciar una nueva fase, durante el ciclo de vida del proyecto, se
mantiene un estricto control a través de la utilización de una amplia
documentación escrita, así como a través de comentarios y
aprobación provistos por el usuario y la tecnología de la información
de gestión.
1.4.2 METODOLOGÍA DE PROTOTIPADO
El prototipado es el framework de actividades dedicado al desarrollo de software
prototipo, es decir, versiones incompletas de un software en particular. Sin
embargo, el hecho de que la versión de software sea incompleta, no implica que
la aplicación desarrollada se contraponga con la función principal para la que fue
diseñada.
1.4.3 METODOLOGÍA INCREMENTAL
Provee un modelo para controlar la complejidad y los riesgos, desarrollando una
parte del software, y reservando el resto de aspectos para el futuro. Sus principios
básicos son:
39
1. Se ejecutan una serie de mini-cascadas, donde todas las fases de la
cascada modelo de desarrollo se han completado para una pequeña
parte de los sistemas, antes de proceder a la posterior incremental.
2. Antes de proceder con lo progresivo, se definen los requisitos, es
decir, se realiza una mini-cascada (diferente de la anterior) de
desarrollo de cada uno de los incrementos del sistema.
3. El concepto inicial de software, análisis de las necesidades, y el
diseño de la arquitectura y colectiva básicas se definen utilizando el
enfoque de cascada, seguida por reiteraciones de prototipos, que
culmina en la instalación de un prototipo final.
1.4.4 METODOLOGÍA EN ESPIRAL
Esta metodología establece los siguientes principios básicos:
1. El enfoque principal se centra en la evaluación y reducción del
riesgo del proyecto dividiéndolo en segmentos más pequeños, y así
proporcionar más facilidad de cambio durante el proceso de
desarrollo. Los riesgos pueden ser evaluados con la finalidad de
validar la continuación del proyecto durante todo el ciclo de vida.
2. Los cuadrantes básicos de la espiral de desarrollo de software son:
-
Determinar objetivos, alternativas, y desencadenantes de la
iteración59.
-
Evaluar alternativas.
-
Identificar y solventar los riesgos.
-
Desarrollar y verificar los resultados de la iteración.
-
Planeamiento de la próxima iteración.
3. Cada ciclo comienza con la identificación de los interesados y sus
condiciones de ganancia, y termina con la revisión y examinación.
59
Iteración: Repetir un proceso con el objeto de alcanzar un resultado definido.
40
1.4.5 METODOLOGÍA RAD “RAPID APPLICATION DEVELOPMENT”
El desarrollo rápido de aplicaciones RAD, es una metodología de desarrollo de
software, que involucra tanto el desarrollo iterativo, como la construcción de
prototipos. Sus principios básicos son:
1. El objetivo clave es promover un rápido desarrollo y entrega de un
sistema de alta calidad, pero con un costo de inversión
relativamente bajo.
2. Se tiende a reducir los riesgos inherentes del proyecto, dividiéndolo
en segmentos más pequeños, proporcionando así, más facilidad de
cambio durante el proceso de desarrollo.
3. Orientación dedicada a producir sistemas de alta calidad con
rapidez, principalmente mediante el uso de iteración por prototipos
(en cualquier etapa de desarrollo). Asimismo, se promueve la
participación de los usuarios y el uso de herramientas de desarrollo
computarizadas. Estas herramientas pueden ser:
-
Interfaz Gráfica de Usuario (GUI).
-
Ingeniería de Software Asistida por Computador (CASE 60).
-
Sistemas de Gestión de Base de Datos (DBMS 61).
-
Lenguajes de programación de cuarta generación.
-
Generadores de código.
-
Técnicas orientadas a objetos.
4. Se hace especial énfasis en el cumplimiento de la necesidad
comercial, mientras que la ingeniería tecnológica pasa a segundo
plano.
5. El control del proyecto implica el desarrollo de prioridades y la
definición de los plazos de entrega. Aunque durante el proceso se
pueden realizar ajustes, jamás se puede extender (aplazar) la fecha
límite.
60
61
CASE: Computer Aided Software Engineering “Ingeniería de Software Asistida por Computador”.
DBMS: DataBase Management System “Sistemas de Gestión de Base de Datos”.
41
6. Generalmente se incluye el JAD62 (Joint Application Development
“Desarrollo
Conjunto
de
Aplicaciones”),
donde
los
usuarios
participan arduamente en el diseño del sistema, ya sea a través de
la creación de un consenso estructurado en talleres, o por vía
electrónica.
7. Es fundamental la participación activa de los usuarios.
8. Iterativamente se realiza la producción de software, sin enfocarse de
manera alguna en un prototipo.
9. Finalmente se realiza la documentación necesaria para facilitar el
futuro desarrollo y mantenimiento.
62
JAD: “Es un proceso usado en el área del ciclo de vida de prototipado del DSDM (Dynamic
Systems Development Method “Método de Desarrollo de Sistemas Dinámicos”) para reunir
requerimientos en el desarrollo de nuevos sistemas de información para una compañía.”
42
CAPÍTULO II
DISEÑO DE LA APLICACIÓN PARA UN WALL VIEW
2.1 CONSIDERACIONES PREVIAS
2.1.1 METODOLOGÍA DE DESARROLLO DE SOFTWARE SELECCIONADA
La metodología de desarrollo de software seleccionada para el diseño e
implementación de la aplicación fue la Metodología Incremental.
NOTA: Los detalles sobre del proceso de desarrollo de la aplicación con la
metodología incremental se describen en el Anexo B de este documento.
2.1.1.1 Justificación
Las aplicaciones multimedia63 en la actualidad experimentan cambios constantes,
cuya finalidad es mantenerse a la par con la vanguardia tecnológica tanto de
software, como de hardware, sin perder de vista el factor humano (los usuarios
finales). Esto sugiere que una aplicación, orientada en este sentido, deba ser
versátil y escalable. Por lo tanto la Metodología Incremental es la que más se
ajusta a dicho propósito. Con esta consideración, se justifica también que la
aplicación sea presentada como un prototipo final y no como una versión
definitiva, ya que posteriormente podrían ser necesarios cambios y/o ajustes (en
la aplicación) conforme a las nuevas demandas y tendencias64 que se presenten
más adelante.
2.1.2 ALTERNATIVAS DE SERVIDORES DE STREAMING DE AUDIO/VIDEO 65
En principio no es necesario contar con un servidor especial para realizar
streaming de audio/video. Cualquier servidor normal puede mandar la información
y es el cliente quien se encarga de procesarla y mostrarla conforme se vaya
63
El término multimedia se emplea para hacer referencia a cualquier sistema que utilice múltiples
medios de expresión para presentar determinada información. Estos medios pueden ser texto,
imágenes, animaciones, sonido y/o video.
64
Estas demandas y tendencias también deben incluir los requerimientos de los usuarios.
65
Las alternativas consideradas están orientadas netamente al entorno de software.
43
recibiendo. Sin embargo, el servidor debe cumplir algunas características
particulares que se detallan a continuación:
·
Soporte unicast y multicast.
·
Flexibilidad para posibles cambios.
·
Documentación suficiente de la herramienta (servidor).
·
Compatibilidad con FFmpeg (específicamente a nivel de comandos).
·
Licencia GNU/GPL (software libre).
Con los condicionantes mencionados, se destacan las siguientes alternativas:
FFserver [PW12] [PW13] [M3]
FFserver es un servidor de streaming de audio/video que está habilitado para
recoger varias fuentes de entrada (normalmente aplicaciones FFmpeg), para
luego transcodificar, remultiplexar, y/o difundir cada una de ellas utilizando
múltiples flujos de salida, distribuyéndolos a uno o varios clientes para su
visualización (ver Figura 2.1).
Figura 2.1 FFserver.
FFserver es una herramienta de software libre bajo licencia GPL o LGPL que
viene embebida dentro de FFmpeg. Es por esto que ambas herramientas
conforman un entorno sin conflictos de compatibilidad entre sí. Además, el
44
desempeño de FFserver se ajusta a las peticiones de los clientes de manera
predefinida66 o dinámica67 a través de un archivo de configuración simple
“/etc/ffserver.conf”.
FFserver presenta una ligera desventaja con respecto al menor número de
códecs que soporta, entre ellos AVI, FLV y MPEG. Sin embargo, esto no
representa una limitante crítica o de consideración que impida el correcto
funcionamiento de un streaming de audio/video.
VideoLAN “VLC” [PW39]
VideoLAN, también conocida como VLC68, es una solución de software para
audio/video streaming, desarrollada por estudiantes del Ecole Centrale Paris, bajo
licencia GPL. Esta herramienta está diseñada fundamentalmente para fuentes de
video mpeg en redes que soporten grandes anchos de banda (ver Figura 2.2).
Figura 2.2 VideoLAN “VLC” Streaming.
66
Modo Predefinido: Supone regirse a una configuración estricta de FFserver para el streaming de
audio/video.
67
Modo Dinámico: Permite configurar tan solo las listas de acceso y el modo de operación de
FFserver, dejando el resto de parámetros, como formato, tamaño y capacidad del búfer, para que
se adapten dinámicamente.
68
VLC es el nombre comercial de la herramienta. No confundir con VideoLAN Client.
45
VideoLAN incluye:
·
VideoLAN Server, que funciona únicamente como servidor de archivos
MPEG-1, MPEG-2 y MPEG-4, DVDs, canales satelitales, televisión digital y
videos en vivo sobre una red ya sea en modo unicast o modo multicast.
·
VideoLAN Client, que puede ser usado como servidor para archivos
MPEG-1, MPEG-2 y MPEG-4, DVDs y videos en vivo sobre redes en modo
unicast o modo multicast; y a su vez, ser usado como cliente para recibir,
decodificar y mostrar streams mpeg, en diversos sistemas operativos.
El VideoLAN Server se programa en C++, con un framework completamente
independiente. Esto significa que VLC no usa las Bibliotecas de Clases estándar
tales como iostreams o vectors. El framework interno de VLC es completamente
autosuficiente, y está orientado a que nada deba ser escrito fuera de él (excepto,
quizás, su portabilidad para otros sistemas operativos).
Helix Universal Media Server [PW40]
Helix Universal Media Server funciona bajo sistemas operativos 32-bit de UNIX o
de Windows. Tiene soporte multicast y/o unicast, utilizando los protocolos TCP o
UDP. La arquitectura abierta de Helix Universal Media Server proporciona algunas
características útiles que se detallan a continuación:
·
El archivo de configuración basado en XML 69 permite controlar las
características básicas del servidor y crear sus propias características
modificadas para requisitos particulares.
·
La autenticación permite modificar el comportamiento del servidor para
verificar alguna conexión o el archivo de peticiones cifrado en una lista de
passwords.
En la Figura 2.3 se ilustra el modo en que opera Helix Universal Media Server.
69
XML: eXtesible Markup Language “Lenguaje de Marcas eXtensible”.
46
Figura 2.3 Helix Universal Media Server.
Helix Universal Media Server al comunicarse con RealPlayer 70, por defecto utiliza
el protocolo RTSP para los esquemas de control y RealNetworks 71 RDP 72 como
su protocolo propietario de paquete. Helix Universal Media Server también
soporta el protocolo estándar RTP, para facilitar a los clientes la interacción con el
servidor.
Darwin Streaming Server [PW41] [PW42]
Darwin Streaming Server contempla, para su desempeño, un proceso padre que
se divide en varios procesos hijos, los cuales constituyen el núcleo del servidor.
De existir algún error en las salidas del proceso hijo, el proceso padre creará un
nuevo proceso hijo.
El núcleo del servidor actúa como una interfaz entre clientes de la red que usan
RTP y RTSP para enviar las peticiones y recibir las respuestas, y módulos del
servidor, los cuales procesan las peticiones y envían los paquetes al cliente. Este
núcleo maneja cuatro tipos de hilos:
1. Hilo Principal. Verifica si el servidor necesita reiniciarse, mostrando
información del estado de login o imprimiendo estadísticas.
70
RealPlayer: Software de gestión/reproducción multimedia.
RealNetworks: Es un proveedor de software para Internet.
72
RDP: Remote Desktop Protocol “Protocolo de Escritorio Remoto”. Protocolo de Microsoft.
71
47
2. Hilo de Tarea Idle73. Maneja una cola de tareas que ocurren
periódicamente. Allí los tipos de colas de tarea pueden ser de timeout o de
socket.
3. Hilo de Evento. Escucha por eventos de socket tales como una petición
RTSP recibida o un paquete RTP, y los envía a un hilo de tarea.
4. Hilos de Tarea Múltiples. Los hilos de tareas reciben peticiones RTSP y
RTP desde el hilo de evento. Los hilos de tarea envían peticiones al
módulo del servidor apropiado para procesar y enviar los paquetes al
cliente. Por defecto, el núcleo del servidor crea un hilo de tarea por cada
proceso.
Figura 2.4 Darwin Streaming Server.
Puesto que el servidor es principalmente asíncrono, se necesita un mecanismo de
comunicación para los eventos. Por ejemplo, cuando un socket es usado para una
conexión RTSP, algunos eventos han de ser notificados de manera que los datos
pueden ser procesados; por lo que, una tarea objeto se constituiría como un
mecanismo generalizado para realizar esta comunicación.
Finalmente cabe recalcar que Darwin Streaming Server está orientado
principalmente a sesiones Web (ver Figura 2.4) y su herramienta de reproducción
es QuickTime Player 74.
73
74
Idle: Refleja un estado de eventual inactividad.
QuickTime Player: Reproductor multimedia que forma parte del framework QuickTime de Apple.
48
2.1.2.1 Selección y Justificación
Vistas las alternativas para streaming de audio/video, se seleccionó FFserver
como la opción más apropiada por efectos de compatibilidad (con FFmpeg),
versatilidad y escalabilidad. Además, en FFserver destacan también las siguientes
características:
·
Facilidad en la configuración.
·
Soporte multiplataforma (Linux, Windows, MacOS).
·
Soporte multiprocolo para streaming de audio/video.
·
Transmisión de audio y video de forma simultánea y/o por separado.
·
Captura cualquier fuente de entrada que pueda ser manejada con FFmpeg.
·
Puede ejecutarse en segundo plano (configurando los parámetros
adecuados en el archivo “/etc/ffserver.conf”) como tarea predeterminada
desde el arranque del sistema.
2.1.3 REPRODUCTOR DE STREAMING DE AUDIO/VIDEO SELECCIONADO
El reproductor multimedia seleccionado para visualizar las transmisiones (video,
livestream, y/o screencast) fue FFplay.
2.1.3.1 Justificación
FFplay es un reproductor multimedia ligero que, al igual que FFserver, viene
embebido en FFmpeg. Por esta razón, no existen inconvenientes de
compatibilidad en el esquema global “streaming75 – procesamiento76 –
reproducción77” de la aplicación para conformar el Wall View. Además, FFplay es
capaz de reproducir casi cualquier formato de audio y video (combinados o por
separado), ya que cuenta con varias bibliotecas que manejan apropiadamente la
mayoría de códecs de este tipo de archivos multimedia.
75
Streaming con FFserver.
Procesamiento con FFmpeg.
77
Reproducción con FFplay.
76
49
2.2 CONFIGURACIONES INICIALES
2.2.1 ARCHIVO DE CONFIGURACIÓN XORG.CONF
Este archivo se localiza en “/etc/X11/xorg.conf”, y en él fundamentalmente se
configura la ubicación geométrica de las pantallas (monitores) que conformarán el
Wall View. Asimismo, en dicho archivo se registran otros dispositivos de
entrada/salida de un computador determinado. A continuación se muestra la
configuración sugerida para conformar un Wall View de cuatro monitores:
Section "ServerLayout"
...
Screen
0
"Screen0" 0 0
Screen
1
"Screen1" RightOf "Screen 0"
Screen
2
"Screen2" Below "Screen 0"
Screen
3
"Screen3" RightOf "Screen 2"
...
Option
"Xinerama" "false"
EndSection
...
78
Section "Monitor"
Identifier
"Monitor0"
VendorName
"Unknown"
ModelName
"LG Electronics W1943C"
HorizSync
30.0 - 61.0
VertRefresh
56.0 - 75.0
Option
"DPMS"
EndSection
...
Section "Device"
78
Identifier
"Device0"
Driver
"nvidia"
VendorName
"NVIDIA Corporation"
Los puntos suspensivos “…” representan configuraciones reiterativas y/o no relevantes para
este caso.
50
BoardName
"GeForce 210"
BusID
"PCI:1:0:0"
Screen
0
EndSection
...
Section "Screen"
Identifier
"Screen0"
Device
"Device0"
Monitor
"Monitor0"
DefaultDepth
24
Option
"Stereo" "0"
Option
"nvidiaXineramaInfoOrder" "CRT-0"
Option
"metamodes" "CRT-0: nvidia-auto-select +0+0"
SubSection
"Display"
Depth
24
EndSubSection
EndSection
...
NOTA:
Para
las secciones “Monitor” y “Device” se
deben
considerar
características e información técnicas, propias de la casa fabricante tanto de los
monitores, como de las tarjetas de video.
2.2.2 ARCHIVO DE CONFIGRUACIÓN FFSERVER.CONF
Este archivo se localiza en “/etc/ffserver.conf”, y en él se configuran los
parámetros relativos al streaming de audio/video ya sea en modo predefinido o en
modo dinámico.
Puesto que la aplicación maneja tres modos de operación (video, livestream, y/o
screencast), la configuración más conveniente para realizar el streaming de
audio/video es el modo dinámico. Por lo tanto, la configuración debería ser la
siguiente:
Port ">1023"
#Cualquier puerto(s) mayor(es) a 1023.
BindAddress 0.0.0.0
51
#MaxClients 100
#Se comenta esta línea para indicar que pueden
#existir un número indefinido de clientes.
#MaxBandwidth 100000
#Se comenta esta línea para administrar de forma
#dinámica el ancho de banda para el streaming.
CustomLog #NoDaemon
#Se comenta esta línea para que el servidor opere en
#segundo plano como tarea predeterminada al arrancar
#el sistema.
<Stream status>
Format status
</Stream>
<Feed feed.ffm>
File /tmp/feed.ffm
#FileMaxSize 50M
#Se comenta esta línea para que el tamaño del
#archivo se maneje dinámicamente.
ACL allow 192.168.0.0 192.168.255.255
#Identifica el rango de
#direcciones IP que
#tienen acceso.
</Feed>
2.2.3 ARCHIVOS DE CONFIGURACIÓN “*.DS” DE DEVIL’S PIE
En Devil’s Pie se debe crear un archivo de configuración por cada una de las
ventanas y/o aplicaciones que se desea administrar. Estos archivos de
configuración se localizan en el directorio $HOME/.devilspie/ (donde $HOME
representa el directorio o carpeta personal y el signo de punto “.” de /.devilspie/
indica que se trata de un directorio oculto). Tras dichas consideraciones, para el
correcto desempeño de la aplicación, tanto en cliente como en servidor, se
destinaron seis archivos de configuración para el manejo de las ventanas
pertinentes:
1. “minimizar.ds”: Para minimizar las ventanas correspondientes a la aplicación
Nautilus.
52
2. “audio.ds”: Para minimizar la ventana de reproducción de audio para un
screencast o livestream.
3. “leftup.ds”: Para ubicar la sección de video superior izquierda en el monitor
superior izquierdo.
4. “rightup.ds”: Para ubicar la sección de video superior derecha en el monitor
superior derecho.
5. “leftdown.ds”: Para ubicar la sección de video inferior izquierda en el monitor
inferior izquierdo.
6. “rightdown.ds”: Para ubicar la sección de video inferior derecha en el monitor
inferior derecho.
NOTA: Estos seis archivos de configuración se generan apropiada y
automáticamente tras la instalación de los pre-requisitos contenidos en el archivo
PreReq.sh.
53
2.3 DIAGRAMA DE FLUJO DE LA APLICACIÓN
2.3.1 SERVIDOR
En la Figura 2.5 se muestra un diagrama de flujo que representa las etapas por
las que pasa la aplicación, vistas desde el servidor.
Figura 2.5 Diagrama de flujo de la aplicación para el servidor.
54
2.3.2 CLIENTE 79
En la Figura 2.6 se muestra un diagrama de flujo que representa las etapas por
las que pasa la aplicación, vistas desde el cliente.
Figura 2.6 Diagrama de flujo de la aplicación para el cliente.
79
El tener dos clientes responde a parámetros de optimización y aprovechamiento de una
infraestructura de red ya existente. En el caso de no poseer dicha infraestructura, lo más
recomendable es contar con un solo cliente (mismo que debería soportar y manejar dos GPUs).
55
2.4 PROGRAMACIÓN Y COMANDOS
Vistos los diagramas de flujo de la aplicación, y una vez realizadas las
configuraciones iniciales, se desarrollaron los códigos80 (scripts) pertinentes, para
cliente y servidor, que permitan el correcto funcionamiento y desempeño del Wall
View. En este punto cabe mencionar que a dicha aplicación se le asignó el
nombre de FFWallView.
2.4.1 DESCRIPCIÓN DE COMANDOS EMPLEADOS EN FFWALLVIEW
La descripción que se presenta a continuación, solo considera los puntos
esenciales de los scripts desarrollados, es decir, se omiten segmentos de código
reiterativos y también aquellos que son de dominio general 81.
2.4.1.1 Script de instalación de pre-requisitos “PreReq.sh”
Este es el único script que deberá ser ejecutado 82 fuera de la aplicación, tanto en
el cliente, como en el servidor. Su finalidad es instanciar, de manera automática,
algunos archivos de configuración, e instalar determinados paquetes que son
necesarios para el correcto funcionamiento de FFWallView.
3 xrandr | grep -i "*" | awk '{print $1}' > /tmp/res.txt
...
6 cut -b 1,2,3,4 /tmp/res.txt > /tmp/width.txt 2>&1
7 cut -b 6,7,8,9 /tmp/res.txt > /tmp/height.txt 2>&1
...
9 x=`cat /tmp/width.txt`
...
11 y=`cat /tmp/height.txt`
...
14 mkdir $HOME/.devilspie
15 mkdir $HOME/FFVideos
...
Espacio de Código 2.1 Instalación de pre-requisitos (1).
80
El lenguaje de programación seleccionado, para desarrollar la aplicación para el Wall View, fue
bash scripting.
81
Los segmentos de código omitidos se representan con tres puntos suspensivos “…”.
82
La ejecución debe realizarse por consola.
56
EXPLICACIÓN
Líneas 3 – 12: La finalidad de estas líneas es leer la información de resolución de
los monitores
83
(comando xrandr), la cual es enviada a un archivo temporal
(res.txt), para luego ser filtrada (comandos grep y awk) y ordenada de manera que
se obtengan automáticamente las dimensiones, tanto el largo (height.txt), como el
ancho (width.txt), necesarias para manejar adecuadamente la geometría del Wall
View.
Líneas 14 – 15: Se realiza un procedimiento que asegure la creación de los
directorios .devilspie 84 y FFVideos 85 dentro de la carpeta personal del usuario. El
directorio FFVideos solo debe existir en el servidor, por lo que al ejecutarse el
script principal del cliente dicho directorio es automáticamente removido.
104 echo "¿Con qué distribución de Linux está trabajando?"
106 echo "Seleccione una opción:"
107 echo "1) Debian/Ubuntu/LinuxMint o similar"
108 echo "2) RedHat/Fedora/CentOS/ClearOS o similar"
109 echo "3) No estoy seguro... CONSULTAR"
110 echo "4) SALIR"
111 echo ""
112 read option
113 case $option in
114
1)
115
sudo apt-get install -y devilspie zenity
libnotify-bin notify-osd fping ; echo "" ;;
116
2)
117
su -c 'yum install -y devilspie zenity notify-osd
fping' ; echo "" ;;
118
3)
119
echo "" ; echo "Su distribución de Linux es: `cat
/etc/issue.net`" ; echo "" ; exit 0 ;;
...
Espacio de Código 2.2 Instalación de pre-requisitos (2).
83
Tomar en cuenta que todos los monitores destinados al funcionamiento de FFWallView deben
ser de similares características, para así tener la misma resolución en cada uno de ellos.
84
En este directorio se alojan todos los archivos de configuración “.ds”.
85
En este directorio se alojan los videos remasterizados que se utilizarán para el streaming.
57
EXPLICACIÓN
Líneas 104 – 119: Se muestra un menú que tiene como objeto instalar los
paquetes adicionales, Devil’s Pie, Zenity, Notify Send y Fping, necesarios para el
funcionamiento de FFWallView, en función de la distribución de Linux que se esté
utilizando. En caso de no conocer con certeza la distribución de Linux con la cual
está trabajando el usuario, la opción 3 (de la línea 119) permite realizar dicha
consulta mostrando el contenido del archivo issue.net, que es donde se recopila
esta información del sistema.
2.4.1.2 Script de selección del modo de ejecución “MODE.sh”
Este script es común para cliente y servidor; y muestra un diálogo de selección
para seleccionar el modo de ejecución de FFWallView (modo gráfico o modo
consola).
...
2 zenity --question --width=350 --height=120 --title "MODO DE \
EJECUCIÓN" --ok-label="GRÁFICO" --cancel-label="CONSOLA" \
--text "¿En qué modo desea ejecutar la aplicación?"
...
Espacio de Código 2.3 Selección del modo de ejecución.
EXPLICACIÓN
Línea 2: Se lanza un diálogo (comando zenity) que permite seleccionar el modo
de ejecución de la aplicación.
2.4.1.3 Script para remasterización de video.
Este procedimiento se realiza con la finalidad de ajustar las características del
video a los parámetros adecuados con los cuales funcionará el Wall View.
58
MODO CONSOLA 86 “RemasterC.sh”
26 if [ -e $HOME/Vídeos ]; then
27
ls $HOME/Vídeos/ > /tmp/ls.txt
28
echo ""
29
echo "Seleccione un video de la lista:"
30
sleep 1
31
cat -n /tmp/ls.txt
32
echo ""
33
echo "Escriba el número del video que desea
remasterizar:"
34
read line
...
Espacio de Código 2.4 Remasterización de video, modo consola (1).
EXPLICACIÓN
Líneas 26 – 31: Se comprueba la existencia del directorio “$HOME/Vídeos”, en
caso de no existir, realizará la comprobación del directorio “$HOME/Videos”, para
luego con el comando ls listar los videos existentes en dicho directorio. Esta
información es enviada a un archivo temporal (ls.txt), para luego ser numerada
(comando cat) y mostrada al usuario.
Líneas 32 – 34: Se selecciona un video según su numeración; dicho número es
almacenado en la variable line, para luego de realizar un filtrado del archivo
temporal ls.txt, y almacenar el nombre del video seleccionado en función del
número correspondiente.
64 ffmpeg -i $HOME/Vídeos/$FILE -s $scale -aspect $aspect
$HOME/FFVideos/$NEWFILE"_R".$format
...
Espacio de Código 2.5 Remasterización de video, modo consola (2).
EXPLICACIÓN
Línea 64:
o -i $HOME/Vídeos/$FILE Se define como entrada al video original.
86
La consola (terminal) en que se despliega la aplicación es gnome–terminal.
59
o -s $scale Establece la resolución de salida del video.
o -aspect $aspect Señala la relación de aspecto del video.
o $HOME/FFVideos/$NEWFILE“_R” En el nuevo directorio por
defecto asignado por FFWallView ($HOME/FFVideos) se alojarán
todos los videos ya remasterizados.
o $format De acuerdo a la opción seleccionada, FFmpeg realizará la
codificación al formato indicado.
MODO GRÁFICO “RemasterG.sh”
14 FILE=`zenity --file-selection --title="ELIJA EL VIDEO A
REMASTERIZAR" --filename="$HOME/Vídeos/*.*"`
...
33 ffmpeg -i $FILE -s $scale -aspect $aspect
$HOME/FFVideos/$NEWFILE"_R".$format
...
Espacio de Código 2.6 Remasterización de video, modo gráfico.
EXPLICACIÓN
Línea 14: Con la ayuda del comando zenity se despliega una interfaz que permite
seleccionar un video del directorio de por defecto de la carpeta personal.
Línea 33:
o -i $HOME/Vídeos/$FILE Se define como entrada al video original.
o -s $scale Establece la resolución de salida del video.
o -aspect $aspect Señala la relación de aspecto del video.
o $HOME/FFVideos/$NEWFILE“_R” En el nuevo directorio por
defecto asignado por FFWallView ($HOME/FFVideos) se alojarán
todos los videos ya remasterizados.
o $format De acuerdo a la opción seleccionada, FFmpeg realizará la
codificación al formato indicado.
60
2.4.1.4 Script principal para el servidor FFWallView
MODO CONSOLA “SMainC.sh”
24 echo " Opción: "
25 read option
26 case $option in
27
1)
28
clear ; sh SendVidC.sh ;;
29
2)
30
clear ; sh SendLiveC.sh ;;
31
3)
32
clear ; sh SendScrC.sh ;;
33
4)
34
clear ; exit 0 ;;
Espacio de Código 2.7 Servidor FFWallView, modo consola.
EXPLICACIÓN
Líneas 24 – 34: La opción seleccionada se almacena en la variable read, a la cual
se le da el tratamiento pertinente mediante una estructura case, misma que
ejecutará el script correspondiente a la tarea seleccionada.
MODO GRÁFICO “SMainG.sh”
5 if [ "$action" = "Transmitir Video" ]; then
6
sh SendVidG.sh
7
elif [ "$action" = "Transmitir LiveStream" ]; then
8
echo "$action"
9
sh SendLiveG.sh
10
elif [ "$action" = "Transmitir ScreenCast" ]; then
11
sh SendScrG.sh
12
elif [ "$action" = "Salir" ]; then
13
exit 0
14 else
15
exit 0
16 fi
Espacio de Código 2.8 Servidor FFWallView, modo gráfico.
61
EXPLICACIÓN
Líneas 5 – 16: Se despliega un diálogo en modo gráfico (empleando zenity) que
muestra las opciones relativas al modo de operación de FFWallView; siendo la
variable action donde se almacena la opción seleccionada. Adicionalmente se
observa una estructura condicional (if), en función de la variable action, para
realizar la llamada al script pertinente.
2.4.1.5 Script de streaming de video para el servidor FFWallView
Una vez que se ha cumplido con el proceso de remasterización, se debe
seleccionar un video del directorio por defecto asignado por FFWallView
($HOME/FFVideos).
MODO CONSOLA “SendVidC.sh”
...
69 ls $HOME/FFVideos > /tmp/lsvid.txt
70 echo ""
71 echo "Seleccione un video de la lista:"
72 sleep 2
73 cat -n /tmp/lsvid.txt
74 echo ""
75 echo "Escriba el número del Video:"
76 read line
77 FILE=`head -n $line /tmp/lsvid.txt | tail -1`
...
90 ffmpeg -i $HOME/FFVideos/$FILE -f mpegts udp://$IP1:1500 -f
mpegts udp://$IP1:1502 -f mpegts udp://$IP1:1504 -f mpegts
udp://$IP1:1506
Espacio de Código 2.9 Streaming de video, modo consola.
EXPLICACIÓN
Líneas 69 – 73: El comando ls lista los archivos existentes en el directorio
“$HOME/FFVideos”, cuyo contenido es enviado a un archivo temporal (lsvid.txt),
luego, dicha lista es numerada (comando cat) y mostrada al usuario.
62
Líneas 75 – 77: Se selecciona un video según su numeración; esta selección se
almacena en la variable line, con la cual, luego de realizar un filtrado del archivo
temporal lsvid.txt (comandos head y tail), se almacena la información requerida
(nombre del archivo) en la variable FILE.
Línea 90:
o -i Indica el archivo de entrada.
o $HOME/FFVideos/$FILE Variable donde se almacena el nombre del
video seleccionado.
o -f Para forzar el formato del archivo de salida.
o mpegts Formato de video para realizar el streaming.
o udp Indica el protocolo utilizado para el streaming.
$IP1, $IP2 Dirección IP del o los clientes.
o
o 1500-1506 Números de puerto que el cliente deberá estar
“escuchando” 87 para recibir el streaming.
MODO GRÁFICO “SendVidG.sh”
24 FILE=`zenity --file-selection --title="ELIJA EL VIDEO A
TRANSMITIR" --filename="$HOME/FFVideos/*.*"`
...
28 ffmpeg -i $FILE -f mpegts udp://$IP1:1500 -f mpegts
udp://$IP1:1502 -f mpegts udp://$IP2:1504 -f mpegts udp://$IP2:1506
Espacio de Código 2.10 Streaming de video, modo gráfico.
EXPLICACIÓN
Línea 24: Con el comando zenity se lanza una ventana en la que se observa el
contenido del directorio “$HOME/FFVideos”. En la variable FILE se guarda la ruta
completa del video seleccionado.
Línea 28:
o -i Indica el archivo de entrada.
o $FILE
Variable
donde
se
almacena
el
nombre
del
video
seleccionado.
87
El término “escuchando” se utiliza para hacer referencia a la espera de una señal de streaming.
63
o -f Para forzar el formato del archivo de salida.
o mpegts Formato de video para realizar el streaming.
o udp Indica el protocolo utilizado para el streaming.
o
$IP1, $IP2 Dirección IP del o los clientes.
o 1500-1506 Números de puerto que el cliente deberá estar
“escuchando” para recibir el streaming.
2.4.1.6 Script de streaming de un evento en vivo para el servidor FFWallView
“SendLiveC.sh” y “SendLiveG.sh”
A continuación se muestran los parámetros del comando ffmpeg que permiten
realizar el streaming en modo de operación livestream.
ffmpeg -f x11grab -r 12 -s $scale -i :0.0+0"+"0 -f mpegts
udp://$IP:1508
...
ffmpeg -f alsa -ac 2 -i pulse -f mpegts udp://$IP:1516
Espacio de Código 2.11 Streaming en modo livestream.
EXPLICACIÓN
o -f x11grab Como auxiliar para realizar el livestream que captura la
webcam88.
o -s $scale Establece la resolución de salida del livestream.
o -f alsa Para forzar el formato del archivo de salida, utilizando el dispositivo
alsa (Advanced Linux Sound Architecture).
o -ac 2 Establece el número de canales de audio; 2 para la aplicación.
o -i pulse Entrada de audio gestionada por PulseAudio 89.
o -f Para forzar el formato del archivo de salida.
o mpegts Formato de video para realizar el streaming.
o udp Indica el protocolo utilizado para el streaming.
o
88
$IP Dirección IP del o los clientes.
Para la captura de la webcam se utiliza el comando ffplay correlacionándolo con el dispositivo
correspondiente (“/dev/video0” en este caso).
89
PulseAudio: Servidor de sonido que permite redirigir todos los flujos de audio a través de sí
mismo.
64
o 1508-1516 Números de puerto que el cliente deberá estar “escuchando”
para recibir el streaming.
2.4.1.7 Script de streaming de un screencast para el servidor FFWallView
“SendScrC.sh” y “SendScrG.sh”
A continuación se muestran los parámetros del comando ffmpeg que permiten
realizar el streaming en modo de operación screencast. Para evitar los desfases
inherentes a la sincronización de audio y video, se realiza por separado el
streaming de estos dos elementos multimedia.
ffmpeg -f x11grab -r 25 -s $scale -i :0.0+0"+"0 -f mpegts
udp://$IP:1508
...
ffmpeg -f alsa -ac 2 -i pulse -f mpegts udp://$IP:1516
Espacio de Código 2.12 Streaming en modo screencast.
EXPLICACIÓN
o -f x11grab Para capturar todas las acciones del entorno de escritorio
(X1190) del servidor.
o -r 25 Indica el frame rate, en cuadros por segundo (fps).
o -i :0.0+0“+”0 Indica la pantalla de la cual se realiza la captura (la pantalla 0
en el monitor 0) y sus coordenadas de referencia (punto 0,0).
o -s $scale Establece la resolución de salida del screencast.
o -f alsa Para forzar el formato del archivo de salida, utilizando el dispositivo
alsa.
o -ac 2 Establece el número de canales de audio; 2 para la aplicación.
o -i pulse Entrada de audio gestionada por PulseAudio.
o -f Para forzar el formato del archivo de salida.
o mpegts Formato de video para realizar el streaming.
o udp Indica el protocolo utilizado para el streaming.
o
90
$IP Dirección IP del o los clientes.
X11: Versión 11 del protocolo X Windows System, que provee una interfaz gráfica a los
sistemas operativos basados en Unix.
65
o 1508-1516 Números de puerto que el cliente deberá estar “escuchando”
para recibir el streaming.
2.4.1.8 Script principal para el cliente FFWallView
MODO CONSOLA “MainC.sh”
24 read option
25 case $option in
26
1)
27
clear ; sh DivTxVidC.sh ;;
28
2)
29
clear ; sh DivTxLiveC.sh ;;
30
3)
31
clear ; sh DivTxScrC.sh ;;
32
4)
33
clear ; exit 0 ;;
Espacio de Código 2.13 Cliente FFWallView, modo consola.
EXPLICACIÓN
Líneas 24 – 33: Se lee la opción seleccionada para, en función de aquello,
realizar la llamada al script correspondiente.
Modo Gráfico “MainG.sh”
5 if [ "$action" = "Transmitir Video" ]; then
7
elif [ "$action" = "Transmitir LiveStream" ]; then
8
echo "$action"
9
sh DivTxLiveG.sh
10
elif [ "$action" = "Transmitir ScreenCast" ]; then
11
sh DivTxScrG.sh
12
elif [ "$action" = "Salir" ]; then
13
exit 0
14 else
15
exit 0
16 fi
Espacio de Código 2.14 Cliente FFWallView, modo gráfico.
66
EXPLICACIÓN
Líneas 5 – 16: Se despliega un diálogo en modo gráfico (empleando zenity) que
muestra las opciones relativas al modo de operación de FFWallView; siendo la
variable action donde se almacena la opción seleccionada. Adicionalmente se
observa una estructura condicional (if), en función de la variable action, para
realizar la llamada al script pertinente.
2.4.1.9 Script de transmisión de video para el cliente FFWallView “DivTxVidC.sh” y
“DivTxVidG.sh”
Este script, indistintamente del modo de ejecución, se ocupa de la segmentación
(en 4 partes) y transmisión de un video almacenado en el servidor. La descripción
que se muestra a continuación no distingue el modo de ejecución ya que se
enfoca estrictamente en los comandos necesarios para cumplir la tarea requerida.
Los segmentos de código que se omiten corresponden a mensajes, diálogos y
comandos que manejan los esquemas de presentación para modo gráfico o modo
consola.
...
30 fping $IP
...
52
w=`expr $x / 2`
...
54
h=`expr $y / 2`
Espacio de Código 2.15 Pruebas de conectividad.
EXPLICACIÓN
Línea 30: Se realiza una prueba básica de conectividad (comando fping) con el
servidor, ingresando por teclado su dirección IP. En caso de existir alguna falla en
la conexión, se repetirá la prueba, con la posibilidad de corregir la IP del servidor.
Contrariamente, si la conexión es exitosa se continúa con la ejecución de las
líneas subsiguientes del script.
67
Línea 52: Se obtiene el valor del ancho de cada segmento y se lo almacena en la
variable w.
Línea 54: Se obtiene el valor de la altura de cada segmento y se lo almacena en
la variable h.
...
69
echo "1) Transmitir ahora"
70
echo "2) Transmitir duplicados"
...
73
read tx
Espacio de Código 2.16 Modo de transmisión (presentación).
EXPLICACIÓN
Líneas 69 – 73: Se muestra un menú que permite seleccionar el modo de
transmisión de video (Transmitir ahora91 o Transmitir duplicados92). La opción
seleccionada se almacena en la variable tx, misma que será procesada a través
de una estructura condicional (if).
74
if [ $tx = 1 ] ; then
...
76
ffplay -vf crop=w:h:x:y -window_title
MonitorLftUp -loop 0 udp://$IP:1500
...
81
elif [ $tx = 2 ] ; then
...
83
ffplay -window_title MonitorLftUp -loop 0
udp://$IP:1500 &
...
95
fi
Espacio de Código 2.17 Segmentación y transmisión.
91
Transmitir ahora: Esta opción permite transmitir el streaming repartiendo cada uno de los 4
segmentos al monitor correspondiente que conforma el Wall View.
92
Transmitir duplicados: Esta opción permite transmitir exactamente el mismo streaming en cada
monitor que conforma el Wall View.
68
EXPLICACIÓN
Líneas 74 – 80: Se realiza el proceso de segmentación y transmisión del video en
función de la geometría que maneja el Wall View.
o
-vf crop=w:h:x:y Para indicar las dimensiones del segmento
(ancho por altura, wxh) y su posición geométrica (abscisas y
ordenadas, x e y).
o
udp Indica el protocolo utilizado para el streaming.
o
$IP Dirección IP del servidor.
o
1500–1506 Números de puerto por los cuales el cliente espera una
señal de streaming.
Líneas 81 – 87: Se realiza un proceso similar al anterior con la diferencia de que
se omite la tarea referente a la segmentación.
NOTA: Los scripts para los modos de operación livestream y screencast difieren
del script de transmisión de video en determinadas opciones 93 94 para el comando
ffplay y en la asignación de números de puerto para esperar la señal de
streaming. Es decir, el esquema general (de forma y de contenido) se mantiene,
razón por la cual no se precisa describir los segmentos de código de los modos
de
operación
restantes
(DivTxLiveC.sh,
DivTxLiveG.sh,
DivTxScrC.sh
y
DivTxScrG.sh).
2.4.1.10 Script para terminar la ejecución de FFWallView “OFFWV.sh”
Este script se encarga de terminar la ejecución de FFWallView en cualquier
instante.
2 killall ffplay
3 killall devilspie
4 killall ffmpeg
5 killall -STOP ffmpeg
6 killall gnome-terminal
Espacio de Código 2.18 Terminación de FFWallView.
93
94
Opción -vn: Para omitir la señal de video del streaming.
Opción -an: Para omitir la señal de audio del streaming.
69
EXPLICACIÓN
Línea 2: Se envía una señal de terminación (comando killall) para todas las
reproducciones FFplay que estén ejecutándose.
Línea 3: Se envía una señal de terminación a la aplicación Devil’s Pie que corre
en segundo plano.
Líneas 4 – 5: Se envía una señal de parada (comando killall -STOP) y
terminación a todos los procesos FFmpeg.
Línea 6: Se envía una señal de terminación a todas las consolas (gnometerminal) abiertas.
2.5 HARDWARE RECOMENDADO PARA EL FUNCIONAMIENTO
DE LA APLICACIÓN FFWALLVIEW
2.5.1 SERVIDOR
Para un correcto funcionamiento de la aplicación FFWallView no se puede asignar
como servidor a un computador de características básicas. Considerando las
tareas que debe cumplir de acuerdo al diseño, se tienen las siguientes
particularidades:
·
Interfaz gráfica.
Acorde a las soluciones presentadas, el computador que realiza las
funciones de servidor debe ser capaz de mostrar los resultados del proceso
de remasterización de los videos, por lo cual un servidor con tan solo
interfaz de línea de comandos no sería de utilidad.
·
Procesador.
Estableciendo como parámetro la capacidad para manejar tareas
simultáneas tanto de procesamiento de audio/video, como de reproducción;
sin
guiarse
únicamente por los
requerimientos mínimos para
funcionamiento de las distribuciones de Linux.
el
70
·
Memoria RAM.
Al igual que en las consideraciones para el procesador, los requerimientos
mínimos para el funcionamiento de las distribuciones de Linux no serán
suficientes para el correcto desempeño de la aplicación FFWallView.
·
Disco duro.
El dispositivo de almacenamiento debe tener capacidad para alojar la
distribución de Linux, la aplicación, y los videos a transmitir.
En la Tabla 2.1 se resumen los requerimientos generales para Ubuntu y Fedora.
APLICACIÓN
Ubuntu 12.10
(Quantal Quetzal) 95
CARACTERÍSTICAS
·
Procesador x86 a 700 MHz.
·
Memoria RAM de 512 MB.
·
Disco Duro de 5 GB (swap incluida).
·
Tarjeta gráfica y monitor capaz de soportar una
resolución de 1024x768.
Fedora release 17
(Beefy Miracle) 96
·
Lector de DVD o puerto USB.
·
Un procesador de 400MHz o más rápido
·
Como mínimo 768 MB de memoria RAM, aunque
para un mejor desempeño se recomienda 1 GB.
·
Como mínimo 10 GB de espacio en el disco duro
(necesario sólo para la instalación).
Tabla 2.1 Requerimientos generales de las distribuciones Ubuntu y Fedora.
Tamaño de un Video. [PW43]
Para calcular el tamaño de un video y estimar el espacio que ocupara en el
disco duro de almacenamiento, se utiliza la fórmula:
95
96
Fuente: https://help.ubuntu.com/12.10/installation-guide/amd64/minimum-hardware-reqts.html
Fuente: http://fedoraproject.org/es/
71
ܶܽ݉ܽÓ‫ ݋‬ൌ ‫݊×݅ܿܽݎݑܦ‬ሾ‫ݏ݋݀݊ݑ݃݁ݏ‬ሿ‫݁ݐܽݎݐܾ݅ݔ‬ሾ‫ݏ݌ܾܭ‬ሿ
Ecuación 2.1 Cálculo de espacio en disco de un video.
Cálculo del bit rate.
‫݁ݐܽݎݐ݅ܤ‬ሺ‫ݏ݌ܾܭ‬ሻ ൌ ሺܰï݉݁‫ݏ݈݁݁ݔ݅݌݁݀݋ݎ‬ሻ‫ݔ‬
ሺ݂ܽܿ‫݋ݐ݊݁݅݉݅ݒ݋݉݁݀ݎ݋ݐ‬ሻ‫Ͳݔ‬ǤͲ͹
ͳͲͲͲ
Ecuación 2.2 Cálculo del bit rate.
Dónde:
o Número de pixeles = resolución del video (ancho x alto) por fps.
o Factor de movimiento 97 = 1, 2 ó 4.
Características de video:
o Resolución = 1360 x 768
o Frames por segundo = 24
o Factor de movimiento = 2
Reemplazando en la Ecuación 2.2:
‫ ݁ݐܽݎݐ݅ܤ‬ൌ ͳ͵͸Ͳ‫ݔ‬͹͸ͺ‫ʹݔ‬Ͷ‫Ͳݔʹݔ‬ǤͲ͹
ൌ ͵ͷͲͻǤͶ‫ ݏ݌ܾܭ‬ൌ ͵Ǥͷ‫ݏ݌ܾܯ‬
ͳͲͲͲ
Considerando:
o Duración del video 5 minutos.
o La tasa de bits es de 3.5 Mbps.
Con la Ecuación 2.1 se obtiene:
ܶܽ݉ܽÓ‫ ݋‬ൌ ͷ݉݅݊‫ݔݏ݋ݐݑ‬
͸Ͳ‫ݏ݋݀݊ݑ݃݁ݏ‬
ͳ‫݁ݐݕܤ‬
‫͵ݔ‬Ǥͷ‫ݔݏ݌ܾܯ‬
ൌ ͳ͵ͳǤʹͷ‫ܤܯ‬
ͳ݉݅݊‫݋ݐݑ‬
ͺܾ݅‫ݏݐ‬
Tras estos cálculos, en la Tabla 2.2 se muestra un aproximado de la capacidad de
almacenamiento que se necesitaría en disco duro, tanto para la distribución de
Linux, como para la aplicación FFWallView y sus utilitarios adicionales.
97
Factor de movimiento: Depende de la cantidad de movimiento en el video. Por ejemplo, con 24
fps, no se puede tener un factor de movimiento mayor a 2.
72
APLICACIÓN
CAPACIDAD DE ALMACENAMIENTO
Ubuntu ó Fedora
10 GB
Videos (considerando 1000)
131,25 GB
Aplicación FFWallView y
< 50 MB
utilitarios de software
Total
141,3 GB
Tabla 2.2 Resultados de cálculo para capacidad de almacenamiento.
·
Tarjeta de red.
La cantidad de tráfico estimado a procesar por la aplicación es la siguiente:
o Transmisión de Video: Generalmente un video ya remasterizado
tiene las siguientes características: formato mp4, 5 minutos de
duración (promedio), y un espacio en disco de aproximadamente
131 MB (promedio).
‫ ܽ݀݊ܽܤ݁݀݋݄ܿ݊ܣ‬ൌ
ܶܽ݉ܽÓ‫݋ܸ݈݁݀݅݁݀݋‬
ܶ݅݁݉‫݊×݅ܿܽݎݑܦ݁݀݋݌‬
Ecuación 2.3 Cálculo de ancho de banda para streaming.
Con la Ecuación 2.3 se obtiene:
‫ ܽ݀݊ܽܤ݁݀݋݄ܿ݊ܣ‬ൌ
ͳ݉݅݊‫݋ݐݑ‬
ͺܾ݅‫ݏݐ‬
ͳ͵ͳ‫ܤܯ‬
‫ݔ‬
‫ݔ‬
ൌ ͵Ǥͷ‫ݏ݌ܾܯ‬
ͷ݉݅݊‫ ݏ݋ݐݑ‬͸Ͳ‫݁ݐݕܤͳ ݏ݋݀݊ݑ݃݁ݏ‬
o LiveStream: Con los parámetros establecidos en el diseño de la
aplicación, para un correcto funcionamiento al momento de transmitir
un evento en vivo, se considera que en promedio 1 minuto de
transmisión tiene un tamaño de aproximadamente 5 MB.
73
Con la Ecuación 2.3 se obtiene:
‫ ܽ݀݊ܽܤ݁݀݋݄ܿ݊ܣ‬ൌ
o ScreenCast:
ͷ‫ܤܯ‬
ͳ݉݅݊‫݋ݐݑ‬
ͺܾ݅‫ݏݐ‬
‫ݔ‬
‫ݔ‬
ൌ ͲǤ͸͸͸‫ݏ݌ܾܯ‬
ͳ݉݅݊‫ ݏ݋ݐݑ‬͸Ͳ‫݁ݐݕܤͳ ݏ݋݀݊ݑ݃݁ݏ‬
Considerando
los
parámetros
generales
de
configuración se tiene que, en una transmisión de este estilo, 1
minuto necesita aproximadamente de un espacio en disco de 20 MB.
Con la Ecuación 2.3 se obtiene:
‫ ܽ݀݊ܽܤ݁݀݋݄ܿ݊ܣ‬ൌ
ͳ݉݅݊‫݋ݐݑ‬
ͺܾ݅‫ݏݐ‬
ʹͲ‫ܤܯ‬
‫ݔ‬
‫ݔ‬
ൌ ʹǤ͸͸͸‫ݏ݌ܾܯ‬
ͳ݉݅݊‫ ݏ݋ݐݑ‬͸Ͳ‫݁ݐݕܤͳ ݏ݋݀݊ݑ݃݁ݏ‬
Con dichas estimaciones de tráfico que maneja la aplicación y
considerando las tarjetas de red existentes en el mercado actual, que
ofrecen tasas de transmisión de 10/100/1000 Mbps, no se prevé
inconvenientes en este sentido.
·
Monitores.
Necesarios para las tareas de remasterización, y administración de la
aplicación.
·
Fuente de poder.
Debe proveer la energía suficiente para el correcto funcionamiento del CPU
y de sus dispositivos adicionales como las tarjetas de video, sin que sufra
daños y/o averías por recalentamiento.
·
Unidad de disco óptico.
Necesaria para copiar información al disco duro desde dispositivos
externos CD/DVD.
·
Sistema operativo.
Si bien FFmpeg es una plataforma cruzada, la aplicación está diseñada
para sistemas operativos basados en Linux.
74
Con lo expuesto anteriormente y considerando las tendencias actuales (a nivel
tecnológico – informático) en el mercado ecuatoriano, en la Tabla 2.3 se resumen
los requerimientos para el servidor FFWallView.
DESCRIPCIÓN
CANTIDAD
Computador de Escritorio: Procesador Intel® Core i7,
1
Disco Duro de 1 TB, Memoria RAM de 4 GB, Tarjeta
de red 100/1000 MB, y Periféricos de E/S
Tarjeta de Video DualHead (opcional)
1
Monitor 98 (opcional)
1
Tabla 2.3 Hardware recomendado para el servidor FFWallView.
2.5.2 CLIENTE
El (los) cliente(s) de la aplicación FFWallView, deben tener la infraestructura física
adecuada para manejar los cuatro monitores que conforman el Wall View. Para
este efecto se tienen que considerar parámetros similares a los establecidos en el
servidor, como son los requerimientos de procesador, memoria RAM, y tarjeta de
red; que en prestaciones, deben ser tal como las planteadas anteriormente. La
razón fundamental para lo expuesto responde a las tareas de procesamiento y
reproducción multimedia que se requieren cumplir.
Los factores adicionales a tomar en cuenta son:
98
Para este caso pueden darse dos escenarios. El primero donde se debería ajustar,
manualmente, en el servidor la resolución del streaming, manipulando el script correspondiente.
En contraparte la segunda opción sería adquirir un monitor que posea las mismas características
de los monitores que conformarán el Wall View.
75
·
Tarjeta de video.
Se requieren dos tarjetas de video (GPUs) de similares características, que
particularmente sean, al menos, de la misma marca o casa fabricante.
Cada GPU debe proveer salidas para dos monitores.
·
Monitores.
La resolución global del Wall View se acopla automáticamente a la
resolución de los monitores. El único requerimiento es que los cuatro
monitores sean de iguales características.
En la Tabla 2.4 se exponen los requerimientos para el cliente FFWallView.
DESCRIPCION
CANTIDAD
Computador de Escritorio: Procesador Intel® Core i7,
1
Disco Duro de 1 TB, Memoria RAM de 4 GB, Tarjeta de
red 100/1000 MB, y Periféricos de E/S
Tarjetas de Video DualHead
2
Monitores con iguales características
4
Tabla 2.4 Hardware recomendado para el cliente FFWallView.
76
CAPÍTULO III
PRUEBAS, RESULTADOS Y COSTOS
3.1 PRUEBAS Y RESULTADOS EN EL SERVIDOR
3.1.1 REMASTERIZACIÓN DE VIDEO
La remasterización es un procedimiento previo al cual deben someterse todos los
videos que se almacenarán en el servidor para posteriormente ser transmitidos
hacia el cliente. La finalidad de este proceso es evitar fallas por compatibilidad de
resolución entre los videos y los monitores (ver Figura 3.1 y la Figura 3.2).
Figura 3.1 Video original sin remasterizar.
77
Recorte en tiempo de
presentación de las
secciones laterales
derechas y de las
secciones inferiores.
Figura 3.2 Transmisión de video sin remasterizar.
Contrariamente, al realizar el proceso de remasterización, no se presentan este
tipo de fallas al momento de transmitir y presentar un video (ver Figura 3.3 y
Figura 3.4).
Figura 3.3 Video original remasterizado.
78
Figura 3.4 Transmisión de video remasterizado.
En la Figura 3.5 se muestra las propiedades del video (antes y después de
remasterizar) y en la Figura 3.6 la resolución del monitor a la cual debe ajustarse.
Figura 3.5 Propiedades del video antes y después de remasterizar.
79
Figura 3.6 Resolución del monitor.
3.1.2 MODO DE OPERACIÓN “TRANSMITIR VIDEO”
En este modo de operación se realiza el streaming de un archivo de video
almacenado en el servidor, utilizando para dicho efecto el protocolo UDP, a través
de los puertos 1500, 1502, 1504, 1506 (ver Figura 3.9).
Figura 3.7 Lista de videos almacenados en el servidor.
80
La aplicación FFWallView despliega una lista con los videos almacenados en el
directorio $HOME/FFVideos (ver Figura 3.7). En la Figura 3.8 se observan las
características del video para realizar el streaming.
En este ejemplo el directorio
home es /home/tesis/
Parámetros del archivo (video).
Parámetros del archivo (audio).
Figura 3.8 Parámetros del archivo de video para realizar el streaming.
81
Streaming para el monitor
superior izquierdo enviado
por el puerto 1500.
Streaming para el monitor
superior izquierdo enviado
por el puerto 1502.
Streaming para el monitor
superior izquierdo enviado
por el puerto 1504.
Streaming para el monitor
superior izquierdo enviado
por el puerto 1506.
En cada flujo de salida enviado
FFmpeg identifica los contenidos de
audio y video con sus respectivas
características.
Figura 3.9 Salidas de streaming.
82
Figura 3.10 Streaming en curso.
El streaming se realiza de forma ininterrumpida (ver Figura 3.9 y Figura 3.10), es
decir, el video seleccionado se envía repetidamente utilizando el esquema de un
bucle infinito. Para detener dicho streaming se utiliza la aplicación OFFWallView
(ver Figura 3.11 y Figura 3.12).
Figura 3.11 Aplicación OFFWallView 99.
Figura 3.12 Notificación de terminación de FFWallView.
Las pruebas de funcionamiento de FFWallView se realizaron en un computador
con las características que se muestran en la Figura 3.13.
99
OFFWallView detiene las funciones de streaming (en el servidor) o de reproducción (en el
cliente), independientemente del modo de operación.
83
Figura 3.13 Características generales del sistema (servidor).
A continuación se presentan los parámetros de consumo de recursos del sistema
al inicio (ver Figura 3.14), durante (ver Figura 3.15) y después de terminar el
streaming (ver Figura 3.16).
En promedio se consume un
45,03% de CPU.
Figura 3.14 Consumo de recursos al inicio del streaming.
84
En promedio se consume un
45,16% de CPU.
Figura 3.15 Consumo de recursos durante el streaming.
En promedio se consume un
4.8% de CPU.
Figura 3.16 Consumo de recursos al terminar el streaming.
85
Adicionalmente se probó el funcionamiento de FFWallView en computadores con
distintos componentes de hardware, con el objetivo de estimar las características
que permitan un correcto funcionamiento de la aplicación.
De la Figura 3.17 a la Figura 3.22 se muestra un resumen de las características y
el consumo de recursos del sistema conforme a las pruebas adicionales
realizadas.
Intel Core 2 Duo:
Figura 3.17 Características generales del sistema (servidor, prueba 1).
En promedio se consume un
66.2% de CPU.
Figura 3.18 Consumo de recursos durante el streaming (prueba 1).
86
AMD Turion II Dual – Core:
Figura 3.19 Características generales del sistema (servidor, prueba 2).
En promedio se consume un
73.3% de CPU.
Figura 3.20 Performance durante el streaming (prueba 2).
Intel Core i3:
Figura 3.21 Características generales del sistema (servidor, prueba 3).
87
En promedio se consume un
56.4% de CPU.
Figura 3.22 Consumo de recursos durante el streaming (prueba 3).
3.1.3 MODO DE OPERACIÓN “LIVESTREAM”
La captura de video de un evento en vivo se realiza a través de una sola
webcam100 (incorporada o externa), mientras que la captura de audio puede ser
realizada desde dos fuentes: un micrófono (incorporado o externo), y/o audio
interno del sistema101.
El efecto visual es evidente, desfase y
congelamiento de algunas secciones durante
la presentación. Esto debido al desajuste y
posterior pérdida de paquetes como
consecuencia de forzar el envío de la fuente
de captura (webcam) hacia 4 flujos de
salida.
Figura 3.23 Efecto por envío de 4 flujos directamente desde la webcam.
100
Este es el motivo fundamental para utilizar como auxiliar la captura X11, puesto que esta
última, puede repartirse en varios flujos de salida.
101
Audio interno del sistema: Supone tomar como fuente de audio, cualquier sonido que esté
siendo reproducido de manera local en un host.
88
En la Figura 3.25 y Figura 3.26 se presenta el funcionamiento del modo de
operación “LiveStream”, el cual inicia luego de una comprobación de conexión
exitosa (ver Figura 3.24).
Figura 3.24 Inicio de streaming en modo de operación livestream.
Captura de sonido del dispositivo “alsa”.
Streaming exclusivo para audio enviado
por el puerto 1516.
Origen del streaming “x11grab” con la
resolución del monitor utilizado en el
servidor.
Figura 3.25 Parámetros de FFmpeg para realizar un livestream.
89
Streaming de video enviado por los
puertos 1508 – 1510 – 1512 – 1514 hacia las
salidas 0 – 1 – 2 – 3.
Dispositivo de captura de video
(webcam).
Figura 3.26 Parámetros de FFmpeg para realizar un livestream (continuación).
Finalmente en la Figura 3.27 se resalta el consumo de recursos del presente
modo de operación.
En promedio se consume un
22,16% de CPU.
Figura 3.27 Consumo de recursos durante el streaming de un evento en vivo.
90
3.1.4 MODO DE OPERACIÓN “SCREENCAST”
La razón para enviar las señales de audio y video por separado (ver Figura 3.28)
es superar los desfases inherentes a la sincronización. La captura de sonido
puede ser realizada desde el audio interno del sistema, y/o desde un micrófono.
Captura de sonido del dispositivo “alsa”.
Streaming exclusivo para audio enviado por
el puerto 1516.
Origen del streaming
“x11grab”
con
la
resolución del monitor
utilizado en el servidor.
Streaming de video enviado por los
puertos 1508 – 1510 – 1512 – 1514 hacia las
salidas 0 – 1 – 2 – 3.
Figura 3.28 Parámetros de FFmpeg para realizar un screencast.
91
Finalmente en la Figura 3.29 se resalta el consumo de recursos del presente
modo de operación.
En promedio se consume un
33,04% de CPU.
Figura 3.29 Consumo de recursos durante el streaming de un screencast.
3.2 PRUEBAS Y RESULTADOS EN EL CLIENTE
Previo a la descripción de las pruebas y resultados en el lado del cliente, es
importante señalar que las características del equipo donde se probó FFWallView
(cliente), son similares a las del servidor; esto conforme a lo notado en las
evaluaciones adicionales realizadas previamente 102.
3.2.1 MODO DE OPERACIÓN “TRANSMITIR VIDEO”
En este modo de operación el cliente se encuentra a la espera del streaming de
audio/video generado desde el servidor (ver Figura 3.30). El flujo de datos que se
recibe y se despliega en el cliente es en tiempo real, utilizando para dicho efecto
102
Los resultados de dichas evaluaciones son similares a los obtenidos en el servidor tras probar
la aplicación en computadores con los componentes de hardware citados anteriormente (Intel Core
2 Duo, AMD Turion II Dual – Core, e Intel Core i3).
92
el protocolo UDP a través de los puertos 1500, 1502, 1504 y 1506 (ver Figura
3.32).
Figura 3.30 Espera de señal de transmisión.
Figura 3.31 Inicio de transmisión.
El mensaje “Unable to seek back to the start” (ver Figura 3.31) que aparece en
cada flujo indica que no se puede retroceder la reproducción al principio. Esto se
debe a que tanto el streaming, como la reproducción son continuos; es decir, el
streaming se reenvía cada vez que llega al final del video, y homólogamente en el
cliente, la reproducción es indefinida (siempre a la espera de una señal de
streaming).
93
Streaming para el monitor
superior izquierdo recibido
por el puerto 1500.
Streaming para el monitor
superior derecho recibido por
el puerto 1502.
Streaming para el monitor
inferior izquierdo recibido por
el puerto 1504.
Streaming para el monitor
inferior derecho recibido por el
puerto 1506.
Recepción y presentación del streaming
en la misma resolución. En este caso
1360 x 768.
Figura 3.32 Entradas de streaming para transmitir video.
94
En la Figura 3.33 y Figura 3.34 se muestran los resultados de presentación del
modo de operación “Transmitir Video”.
Figura 3.33 Presentación del Wall View con créditos iniciales.
Figura 3.34 Instante aleatorio durante la presentación del Wall View.
Puesto que la ejecución de FFWallView puede interrumpirse en cualquier instante
(ya sea en el cliente y/o en el servidor), en la Figura 3.35 se muestra el efecto que
causaría terminar el streaming desde el servidor durante una presentación en
curso 103.
103
El efecto visual de terminar el streaming desde el servidor es un congelamiento de la imagen
en la reproducción que se realiza en el cliente. Asimismo se debe tomar en cuenta que, al mismo
tiempo, la señal de audio se corta al ocurrir este evento.
95
En primer lugar se recibe una
notificación de desajuste en la
recepción de paquetes, y
finalmente se muestra una
advertencia que indica la ausencia
de Vectores de Movimiento (MVs).
Figura 3.35 Efecto por terminación del streaming desde el servidor 104.
En el caso eventual de querer presentar exactamente lo mismo en los cuatro
monitores que conforman el Wall View, el streaming no sufre segmentación
alguna, y en cambio, cada flujo pasa directamente a mostrarse en cada monitor
(ver Figura 3.36).
Figura 3.36 Presentación de duplicados en el Wall View.
104
Este efecto se reproduce en los modos de operación restantes (“LiveStream” y “ScreenCast”).
96
Finalmente de la Figura 3.37 a la Figura 3.40 se muestran los parámetros de
consumo de recursos que representa el uso de FFWallView en el cliente.
Figura 3.37 Características generales del sistema (cliente).
En promedio se consume un
9,35% de CPU.
Figura 3.38 Consumo de recursos al inicio de la presentación.
97
En promedio se consume un
11,43% de CPU.
Figura 3.39 Consumo de recursos durante la presentación.
En promedio se consume un
12.05% de CPU.
Figura 3.40 Consumo de recursos al cancelar la presentación.
98
3.2.2 MODO DE OPERACIÓN “LIVESTREAM”
En este modo de operación el cliente se encuentra a la espera del streaming de
un evento en vivo (livestream) emitido desde el servidor (ver Figura 3.41). En la
Figura 3.42 se muestra el flujo de datos que se recibe y se despliega en el cliente
es en tiempo real, utilizando para dicho efecto el protocolo UDP a través de los
puertos 1508, 1510, 1512, 1514 y 1516 (exclusivo para audio).
En la presentación del modo livestream se percibe un ligero desfase de 4
segundos entre audio y video (retraso del audio). Se podría sugerir el uso de la
opción “itsoffset 105” de FFmpeg; sin embargo, el único efecto que produce es un
retardo en la llegada del streaming hacia el cliente, y no una compensación para
provocar un ajuste entre audio y video.
A diferencia del modo de operación anterior,
en este caso, se reciben 5 flujos de entrada. El
flujo adicional corresponde al canal exclusivo
que se ha dispuesto para el streaming audio.
Figura 3.41 Espera de señal de livestream.
En la Figura 3.43 y la Figura 3.44 se muestran los resultados de recepción de
entradas y presentación del modo de operación “LiveStream”.
105
itsoffset: Opción del comando ffmpeg que permite establecer un tiempo de desfase en
segundos.
99
Streaming exclusivo de audio recibido
por el puerto 1516.
Streaming para el monitor superior
izquierdo recibido por el puerto 1508.
Streaming para el monitor superior
derecho recibido por el puerto 1510.
Streaming para el monitor inferior
izquierdo recibido por el puerto 1512.
Streaming para el monitor inferior
derecho recibido por el puerto 1514.
Figura 3.42 Entradas de streaming para livestream.
100
Espacios sin información debido a las características
de captura propias de la webcam.
Figura 3.43 Presentación de un evento en vivo en el Wall View.
En la Figura 3.44 se muestra el resultado de la presentación de duplicados para
este modo de operación.
Figura 3.44 Presentación de duplicados de un evento en vivo en el Wall View.
Para concluir, en la Figura 3.45 se distinguen los parámetros de consumo de
recursos de FFWallView para este modo de operación.
101
En promedio se consume un
17,38% de CPU.
Figura 3.45 Consumo de recursos durante la presentación de un evento en vivo.
3.2.3 MODO DE OPERACIÓN “SCREENCAST”
En este modo de operación el cliente se encuentra a la espera del streaming de
un screencast emitido desde el servidor (ver Figura 3.46). En la Figura 3.47 se
muestra el flujo de datos que se recibe y se despliega en el cliente es en tiempo
real, utilizando para dicho efecto el protocolo UDP a través de los puertos 1508,
1510, 1512, 1514 y 1516 (exclusivo para audio). Además, para el modo
screencast no se aprecian desajustes entre audio y video puesto que previamente
se tomaron los correctivos pertinentes para evitar los inconvenientes de
sincronización inherentes a este esquema de operación.
Figura 3.46 Recepción de señal de screencast.
102
Figura 3.47 Entradas de streaming para screencast.
103
La única particularidad del modo screencast, es que tiene un desfase de 1
segundo entre la señal original enviada desde el servidor y la señal presentada en
el cliente (ver Figura 3.48).
Figura 3.48 Desfase señal recibida vs. señal original.
104
A continuación se muestran los resultados de presentación del modo de
operación “ScreenCast”, en transmisión normal (ver Figura 3.49) y transmisión de
duplicados (ver Figura 3.50).
Figura 3.49 Presentación de un screencast en el Wall View.
Figura 3.50 Presentación de duplicados de un screencast en el Wall View.
105
Por último, en la Figura 3.51 se recalcan los parámetros de consumo de recursos
de FFWallView para este modo de operación.
En promedio se consume un
11,98% de CPU.
Figura 3.51 Consumo de recursos durante la presentación de un screencast.
NOTA: Para una ilustración a profundidad sobre el uso e instalación de
FFWallView, referirse a la Guía de Usuario detallada en el Anexo A de este
documento.
3.3 COSTOS
Los costos que se detallan a continuación contemplan los elementos necesarios
para el funcionamiento e implementación del Wall View, distinguiendo dos
alternativas, la que se basa en productos del mercado ecuatoriano, y la solución
dedicada que se ofrece en el mercado extranjero.
106
3.3.1 PRECIO DE LA APLICACIÓN FFWALLVIEW
DETALLE DE LOS COSTOS Y PORCENTAJE DE
UTILIDAD
RMU/hora
U.S.$5,11
Horas empleadas
300
Gastos varios al mes
U.S.$40,00
Meses empleados
8
Margen de retribución
10%
DETERMINACIÓN DEL COSTO DE VENTAS106
Costo de FFWallView
U.S.$1.853
DETERMINACIÓN DEL PRECIO DE VENTA107
Precio final de FFWallView
U.S.$2.038,30
Tabla 3.1 Precio de la aplicación FFWallView.
NOTAS: La moneda empleada es el dólar americano (U.S.D. o U.S.$).
La jornada laboral considerada para el cálculo de la Remuneración
Mensual Unificada “RMU” de U.S.$817,00
[PW46]
contempla el salario
asignado a un servidor público principiante (con estudios superiores pero
sin experiencia laboral) en el horario de lunes a viernes, 8 horas diarias;
es decir, 40 horas semanales. De aquí se desprende que la RMU por
hora sea de U.S.$5,11.
106
Este resultado se obtiene de sumar la RMU/hora por las horas empleadas, y los gastos varios
al mes por los meses empleados.
107
Este resultado se obtiene de multiplicar el costo de FFWallView por el margen de retribución.
107
3.3.2 COTIZACIÓN DE LA ALTERNATIVA DEL MERCADO ECUATORIANO
Proveedor Principal: XPC
No.
1
2
3
4
5
6
7
8
9
10
11
PRODUCTO
CANTIDAD
SONY TV 46" KDL-46EX655 LED FHD-TV *
Computador ARI AMD X4640, 500GB en disco, 4GB en RAM, DVDRW **
XTRATECH INTEL CI7 3.4GHz/8GB/2TB/DVDWR/TMP/WIN 8 ***
Teclado Genius KB-110X, color Negro, conexión USB
Mouse Nobutech Ergonomic Optical USB
Parlantes Genius SP-S110 (OPCIONAL)
Switch HP J9794A 8 port 10/100/1000 Base-T 110-220V (OPCIONAL)
Patch Cord newlink cat 6a de 7ft 50um azul ***
Adaptadores DVI-I Dual Link (macho) a VGA (hembra) ****
Accesorio Argom tv wallmount 32-63 pulgadas fixed for lcd/led br-0461
Software aplicación FFWallView
TOTALES
4
1
1
1
1
1
1
2
2
4
1
VALOR
SUBTOTAL
UNITARIO
1.126,00
4.504,00
855,02
855,02
891,96
891,96
5,70
5,70
4,23
4,23
5,34
5,34
59,94
59,94
5,36
10,72
6,43
12,86
17,24
68,96
2.038,30
2.038,30
5.015,52
8.457,03
IVA (12%)
540,48
102,60
107,04
0,68
0,51
0,64
7,19
1,29
1,54
8,28
244,60
1.014,84
TOTAL
5.044,48
957,62
999,00
6,38
4,74
5,98
67,13
12,01
14,40
77,24
2.282,90
9.471,87
Tabla 3.2 Cotización mercado ecuatoriano.
* El proveedor de este producto es TecnoMega ® C.A.
** Este producto incluye tarjeta de video AMD Radeon™ HD6700 con 6 salidas 108.
*** El proveedor de estos productos es COMPUTRON S.A. En el caso del
computador, se incluye monitor, mouse, teclado y parlantes.
**** El proveedor de este producto es TECNOSERSIETE CIA. LTDA.
3.3.3 COTIZACIÓN DE LA ALTERNATIVA DEL MERCADO EXTRANJERO
La cotización mostrada en la Tabla 3.3 tiene como referencia valores estimados
de distintos proveedores en el mercado internacional (considerando los de menor
precio). Estos costos se ajustan a la conformación de un Wall View de 4
monitores de 46”.
No.
1
2
3
PRODUCTO
CANTIDAD
World-Leading Multi-Screen Technology, Ergonomic Design, 9X
Media GPU PC-1604
NEC Display MultiSync X462UN 46" LCD Monitor with VUKUNET free
CMS (X462UN)
Soporte Ergotech Quad (2 Over 2) Lcd Desk Stand - Up To 25.00 Lb
- Up To 21" Monitor - Black - Desk Mountable
TOTALES
Tabla 3.3 Cotización mercado extranjero.
108
Las 6 salidas que permite esta GPU pueden utilizarse simultáneamente.
VALOR
UNITARIO
TOTAL
1
4.800,00
4.800,00
4
3.636,18
14.544,72
1
390,00
8.826,18
390,00
19.734,72
108
NOTA: Para verificar pormenores de los proveedores (ver Tabla 3.2) y los costos
resumidos en la Tabla 3.1 y la Tabla 3.3, referirse al apartado de Cotizaciones,
detallado en el Anexo C de este documento.
3.3.4 COMPARATIVA DE PRECIOS
Una vez descritos los costos asociados a la implementación de un Wall View de 4
monitores desde dos ópticas (nacional y extranjera), a continuación se expone la
diferencia de precios entre ambas alternativas:
o: U.S.$9.471,87
Ø Alternativa del Mercado Ecuatoriano:
Ø Alternativa del Mercado Extranjero:
ro: U.S.$19.734,72
s: U.S.$10.262,85
Ø Diferencia entre alternativas:
109
CAPÍTULO IV
CONCLUSIONES Y RECOMENDACIONES
4.1 CONCLUSIONES
C1. FFmpeg utiliza varias bibliotecas de códecs de audio y video, permitiendo de
esta forma tener soporte para una amplia variedad de formatos comerciales,
por ejemplo los manejados por Apple QuickTime (.MOV), por RealNetwok
(.RV, .RAM, .RM, .ODER .RMVB), o por Microsoft Windows Media Player
(.WMV); por tal motivo, FFmpeg inicialmente podría ser considerada como
una herramienta netamente orientada a edición multimedia. Sin embargo, se
debe recordar que FFmpeg va más allá, siendo una completa plataforma que
abarca tareas tan sencillas como transformar el formato de un archivo de
audio/video,
hasta
tareas
complejas
como
realizar
un
streaming
administrando flujos y puertos de salida, en base a protocolos de
comunicación en tiempo real.
C2. Dado que FFmpeg provee herramientas integrales para la gestión de
archivos multimedia (FFmpeg y FFprobe), para su transmisión en la red
(FFserver) y para su reproducción (FFplay), no es necesario el uso de
aplicaciones adicionales para dichos efectos.
C3. FFWallView en base al uso adecuado de herramientas como FFmpeg, hace
posible brindar una solución para la implementación, incluso doméstica, de
un Wall View capaz de mostrar una gran cantidad de información con un alto
impacto visual; escenario que antes era manejado como tecnología
exclusiva para operaciones de monitoreo de tráfico aéreo, estaciones de
televisión, y sistemas de seguridad y vigilancia; es decir que dicha tecnología
tenía como destinatarios principales a empresas con capacidad de realizar
inversiones significativas, debido a los costos y complejidad de toda la
infraestructura física que esto implica. Es por esto que FFWallView surge
con el propósito de tener una alternativa basada en software que no se vea
limitada por las características del hardware, lo cual significa que se puede
110
trabajar con cualquier tipo de pantalla (LCD, LED, CRT, plasma) de
diferentes tamaños y resoluciones, con cualquier tipo de PC, y con interfaces
de red Ethernet convencionales. Además, con la ayuda de aplicaciones
sencillas de software libre como Zenity, se brinda la posibilidad de contar con
una interfaz gráfica simple y amigable con el usuario final.
C4. En las configuraciones iniciales, fundamentalmente en la concerniente al
archivo xorg.conf se debe citar que, aunque se recomienda habilitar la
opción Xinerama para los esquemas multi-monitor, esto puede causar
errores en el gestor de ventanas del entorno de escritorio; fallas como el
ocultamiento
de
la
barra
que
contiene
los
botones
minimizar,
maximizar/restaurar y salir, lo cual impide la manipulación de ventanas. Esta
es la razón principal para que FFWallView no considere habilitar dicha
opción en la configuración de xorg.conf.
C5. Para verificar el desempeño de la aplicación se estableció el uso de 4
monitores que conformen el Wall View, sin embargo es posible realizar un
escalamiento con el objetivo de utilizar más monitores, teniendo como único
condicionante la utilización de tarjetas gráficas (comunes) pertinentes para
dicho efecto.
C6. El proceso de remasterización de videos (FFRemaster), para el modo de
operación “Transmitir Video” de FFWallView, es fundamental en la intención
de presentar un video correctamente ajustado a las características de los
monitores que conforman el Wall View, esencialmente en lo que se refiere a
resolución y aspecto.
C7. A través de los cálculos y pruebas de funcionamiento realizadas para
determinar el consumo de ancho de banda, se observa un rango que oscila
entre los 500 Kbps y 4 Mbps (en función de los 3 modos de operación de
FFWallView), por lo que, en un ambiente de red local, no se prevé una
eventual saturación del canal. En este punto se debe hacer hincapié en que
FFWallView no está enfocada a un uso a través de Internet.
111
C8. El intervalo típico de 1 a 5 segundos de desfase entre el envío y recepción
de un streaming de audio/video, se debe al tiempo que demora FFmpeg en
estabilizar la tasa de frames por segundo “fps” con la cual se está enviando
un archivo multimedia por la red. La tasa por defecto considerada por
FFmpeg es 25 fps, y toma alrededor de 4 segundos en estabilizarse.
C9. Para los modos de operación “LiveStream” y “ScreenCast” de FFWallView,
donde el streaming de audio y video se realiza por separado, FFmpeg
siempre da prioridad al tratamiento del audio, independientemente del
número de flujos de video que se estén enviando al mismo tiempo por la red
local.
C10. FFWallView está diseñada de tal forma que quienes operen los equipos
cliente y servidor, no deban configurar parámetros adicionales dentro de la
aplicación, es decir, desde la óptica del (los) usuario(s) final(es), FFWallView
cumple de manera fácil y sencilla las tareas para las cuales fue programada.
C11. En FFWallView es importante verificar el estado de conexión entre cliente y
servidor, es por esto que siempre, al inicio de la aplicación y para cada modo
de operación, se comprueba que exista conectividad en ambos sentidos
(servidor/cliente y cliente/servidor). Asimismo, se debe resaltar que, para
brindar flexibilidad, las direcciones IP de cliente y servidor se ingresan por
teclado, es decir, en el caso de eventual de que se cambien las direcciones
IP de los equipos terminales, FFWallView no tendrá limitación por dicha
causa para su correcto funcionamiento.
C12. Por su versatilidad y gracias al impacto visual que generan los muros de
pantallas en el público, FFWallView está orientada a varios ámbitos de
aplicación, como educación, publicidad, información, entretenimiento, entre
otras.
C13. En este proyecto (FFWallView) no se han considerado posibilidades
complementarias como acceso remoto al programa, esquemas de
autenticación (adicionales) embebidos en la aplicación, redundancia y/o
virtualización del servidor.
112
C14. Las características relativas a autenticación y seguridad, son manejadas por
otras capas del sistema, y no a nivel de capa aplicación.
4.2 RECOMENDACIONES
R1. Para el adecuado funcionamiento y utilización de la aplicación FFWallView,
es fundamental realizar una correcta compilación de FFmpeg en el proceso
de instalación, ya que si existen defectos en dicho procedimiento, esto
podría causar fallas y/o errores de desempeño al momento de invocar
bibliotecas que permiten dar tratamiento a los archivos multimedia. Con la
finalidad de evitar posibles inconvenientes al instalar FFmpeg, es
recomendable seguir a detalle cada uno de los pasos descritos en la Guía de
Compilación de FFmpeg, misma que se expone en la página oficial de la
herramienta. Para dicho efecto se deben conocer con certeza parámetros
como sistema operativo (Linux en este caso), arquitectura del sistema, y la
distribución de Linux (incluyendo su versión o release) con la que se esté
trabajando.
R2. FFWallView fue diseñada bajo la versión 1.0 (estable) de FFmpeg, por lo
que se recomienda, en lo posible, instalar esta versión de la herramienta, lo
cual garantiza plena compatibilidad entre FFWallView y FFmpeg a nivel de
comandos y bibliotecas para el tratamiento multimedia.
R3. Respecto de los paquetes (utilitarios) adicionales que utiliza la aplicación, se
debe mencionar que la instalación de los mismos, aunque sencilla, no debe
realizarse manualmente por el usuario, basta con ejecutar el script que, tras
la instalación de FFWallView, se localizará en la ruta “/usr/share/PreReq.sh”.
R4. El proceso de remasterización de videos (FFRemaster), para el modo de
operación “Transmitir Video” de FFWallView, es fundamental en la intención
de presentar un video correctamente ajustado a las características de los
monitores que conforman el Wall View, esencialmente en lo que se refiere a
resolución y aspecto.
113
R5. Para mejorar el impacto visual del Wall View, es posible utilizar pantallas
específicas para dicho propósito, las cuales cuentan con bordes ultra
delgados con el objeto de destinar mayor superficie geométrica al video. Sin
embargo, su costo es relativamente alto respecto a los monitores
convencionales que existen en el mercado.
REFERENCIAS BIBLIOGRÁFICAS
LIBROS
[L1]
SMITH, Roderick W., “LPIC-1 Linux Professional Institute Certification
STUDY GUIDE”, “GNU’s Not Unix (GNU)”, Pág. 525, Editorial SYBEX, 2nd
Edition, febrero 2009.
[L2]
MACKIE, David, “Streaming Video & MPEG4IP”, Cisco Technology Center,
2002.
MANUALES DE COMANDOS DE LINUX
[M1]
Linux Man Page, FFmpeg developers, “ffmpeg”, versión 1.0.
[M2]
Linux Man Page, FFmpeg developers, “ffplay”, versión 1.0.
[M3]
Linux Man Page, FFmpeg developers, “ffserver”, versión 1.0.
[M4]
Linux Man Page, FFmpeg developers, “ffprobe”, versión 1.0.
[M5]
Linux Man Page, BURTON, Ross, “zenity”, versión 3.4.0.
[M6]
Linux Man Page, BURTON, Ross, “devilspie”, versión 0.22.
[M7]
Linux Man Page, DE ASUNCAO E BRITO, Andre Filipe, SETTI, Ricardo,
VAN TILBURG, Paul, “notify-send”, versión 0.2.2.
PUBLICACIONES (PAPERS, REVISTAS, NOTICIAS)
[P1]
UNGEMACH, Mario A., DUQUE, Sebastián U., “Transmisión de multimedia
en internet usando proyecto FFmpeg.”, Universidad Técnica Federico
Santa María, 2008.
[P2]
Cisco Networking Academy CCNA Exploration 4.0, “Conmutación y
conexión inalámbrica de LAN”, 2008.
[P3]
Cisco Networking Academy CCNA Exploration 4.0, “Acceso a la WAN”,
2008.
FOLLETOS
[F1]
HIDALGO, Pablo, “Redes de Área Extendida”, 2011.
[F2]
VINUEZA, Mónica, “Redes de Área Local”, 2009.
INTERNET
[PW1]
Wikipedia, “GNU”, [12 de enero de 2013]
http://es.wikipedia.org/wiki/GNU
[PW2]
Free Software Foundation Inc., Traducción: SILVA, Emilio, 2004, “¿Qué
es GNU?”, “¿Qué es el software libre?”, [12 de enero de 2013]
http://www.gnu.org/home.es.html
[PW3]
Wikipedia, “GNOME”, [12 de enero de 2013]
http://es.wikipedia.org/wiki/GNOME
[PW4]
Wikipedia, “KDE”, [12 de enero de 2013] http://es.wikipedia.org/wiki/KDE
[PW5]
Wikipedia, “LXDE”, [12 de enero de 2013]
http://es.wikipedia.org/wiki/LXDE
[PW6]
Wikipedia, “Xfce”, [12 de enero de 2013] http://es.wikipedia.org/wiki/Xfce
[PW7]
Wikipedia, “Slackware”, [12 de enero de 2013]
http://es.wikipedia.org/wiki/Slackware
[PW8]
FFmpeg, “FFmpeg”, [16 de junio de 2012] http://ffmpeg.org/ffmpeg.html
[PW9]
Graphcomp, “Grafman's FFMPEG Developer Info”, [16 de junio de 2012]
http://graphcomp.com/ffmpeg/
[PW10] FFmpeg, “ffmpeg-poster-final2-downscaled.jpg”, [19 de enero de 2013]
http://ffmpeg.org/trac/ffmpeg/attachment/ticket/994/ffmpeg-poster-final2downscaled.jpg
[PW11] FFmpeg, “FFplay”, [12 de enero de 2013] http://ffmpeg.org/ffplay.html
[PW12] FFmpeg, “FFserver”, [12 de enero de 2013]
http://ffmpeg.org/ffserver.html
[PW13] FFmpeg, “Streaming media with ffserver”, [12 de enero de 2013]
https://ffmpeg.org/trac/ffmpeg/wiki/Streaming media with ffserver
[PW14] FFmpeg, “ffprobe”, [12 de enero de 2013] http://ffmpeg.org/ffprobe.html
[PW15] Definición, “Definición de multimedia”, [12 enero de 2013]
http://definicion.de/multimedia/
[PW16] Definición, “Definición de sonido”, [12 de enero de 2013]
http://definicion.de/sonido/
[PW17] Desarrollo Multimedia, “Tipos de formatos o archivos de audio”, [21 de
enero de 2013] http://www.desarrollomultimedia.es/articulos/tipos-deformatos-o-archivos-de-audio-y-codecs.html
[PW18] Desarrollo Web, “Los formatos de audio”, [21 de enero de 2013]
http://www.desarrolloweb.com/articulos/formatos-audio.html
[PW19] Wikipedia, “Compresión de audio”, [12 de enero de 2013]
http://es.wikipedia.org/wiki/Compresión_de_audio
[PW20] Wikipedia, “Algoritmo de compresión sin pérdida”, [14 de enero de 2013]
http://es.wikipedia.org/wiki/Algoritmo_de_compresión_sin_pérdida
[PW21] Wikipedia, “Algoritmo de compresión con pérdida”, [14 de enero de 2013]
http://es.wikipedia.org/wiki/Algoritmo_de_compresión_con_pérdida
[PW22] Kioskea, “Video”, [14 de enero de 2013]
http://es.kioskea.net/contents/video/video.php3
[PW23] Instituto Nacional de Tecnologías Educativas y de Formación del
Profesorado, “Formatos de archivos de vídeo”, España, [14 de enero de
2013]
http://www.ite.educacion.es/formacion/materiales/107/cd/video/video010
2.html
[PW24] H264 info, “h264”, [14 de enero de 2013]
http://www.h264info.com/h264.html
[PW25] Bioelectrinik Blogspot, LÓPEZ JILLO, Camilo, 22 de febrero de 2012,
“Definición de LAN, MAN Y WAN”, [22 de enero de 2013]
http://bioelectrinik.blogspot.com/2012/02/definicion-de-lan.html
[PW26] Universidad de Antioquia, PASTOR, Patricio, “Intranet: un sistema para
la gestión de información”, [23 de enero de 2013]
http://caribe.udea.edu.co/~hlopera/intranet.html#Def
[PW27] Wikipedia, “Streaming”, [12 de enero de 2013]
http://es.wikipedia.org/wiki/Streaming
[PW28] Oposicionestic, “Arquitectura Cliente - Servidor”, [15 de enero de 2013]
http://oposicionestic.blogspot.com/2011/06/arquitectura-clienteservidor.html
[PW29] Wikipedia, “Multi-monitor”, [8 de Julio de 2012]
http://en.wikipedia.org/wiki/Multi-monitor
[PW30] Intel, “Múltiples monitores: Descripción de las opciones de múltiples
pantallas”, [8 de julio 2012]
http://www.intel.com/support/sp/graphics/intel945gm/sb/cs-022119.htm
[PW31] Tech-faq, “How to set up dual monitores”, [8 de Julio 2012]
http://www.tech-faq.com/how-to-set-up-dual-monitors.html
[PW32] Informática Moderna, “Tarjetas de video”, [6 de Octubre de 2012]
http://www.informaticamoderna.com/Tarjetas_de_video.htm
[PW33] Gnome, “Zenity”, [15 de noviembre de 2012]
http://library.gnome.org/users/zenity/stable/index.html.es
[PW34] Ubuntu help, “Devilspie”, [1 de noviembre de 2012]
https://help.ubuntu.com/community/Devilspie
[PW35] Burtonini, “Devil's Pie”, [1 de noviembre de 2012]
http://burtonini.com/blog/computers/devilspie
[PW36] FFmpeg, “Compile FFmpeg on Ubuntu”, [28 de Noviembre 2012]
http://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide
[PW37] FFmpeg, “Compile FFmpeg on CentOS 6.0”, [30 de Noviembre]
http://ffmpeg.org/trac/ffmpeg/wiki/CentosCompilationGuide
[PW38] Wikipedia, “Enfoques de desarrollo de software”, [26 de noviembre de
2012]
http://es.wikipedia.org/wiki/Metodología_de_desarrollo_de_software
[PW39] VideoLAN Organization, “VideoLAN Streaming Solution”, [19 de octubre
de 2012] http://www.videolan.org/vlc/streaming.html
[PW40] Real Networks, “Helix Universal Media Server”, [20 de octubre de 2012]
http://www.realnetworks.com/helix/streaming-media-server/
[PW41] MacOS Forge, “Darwin Streaming Server”, [20 de octubre de 2012]
http://dss.macosforge.org/
[PW42] Superhua, 21 de marzo de 2006, “How to set up web streaming for free”,
[21 de octubre de 2012] http://superhua.wordpress.com/2006/03/21/howto-set-up-web-streaming-for-free/
[PW43] Ezs3, “What bitrate should I use when encoding my video?, how do I
optimize my video for the web?”, [18 de febrero de 2013]
http://www.ezs3.com/public/What_bitrate_should_I_use_when_encoding
_my_video_How_do_I_optimize_my_video_for_the_web.cfm
[PW44] Ubuntu Official Documentation, “Meeting Minimum Hardware
Requirements”, [18 de febrero de 2013]
https://help.ubuntu.com/12.10/installation-guide/amd64/minimumhardware-reqts.html
[PW45] Fedora, “Requerimientos de Instalación Recomendados”, [18 de febrero
de 2013] http://fedoraproject.org/es/
[PW46] Finanzas Populares Y Solidarias, enero 2013, “Remuneración Mensual
por Puestos”, [9 de abril de 2013]
http://www.finanzaspopulares.gob.ec/images/stories/PDF/LEY DE
TRANSPARENCIA/Remuneración mensual.pdf
Anexo A Guía de Usuario FFWallView
Esta guía le orientará sobre el uso, instalación y funcionamiento de FFWallView de forma
práctica y sencilla.
FFWallView tiene dependencia directa de la plataforma cruzada FFmpeg, por tanto el
primer paso es instalar correctamente dicha herramienta. Este procedimiento debe realizar
manualmente en función de la distribución de Linux que usted utiliza. Para tal efecto se
recomienda seguir los pasos descritos en la Guía de Instalación de FFmpeg descrita en su
sitio oficial:
https://ffmpeg.org/trac/ffmpeg/wiki/CompilationGuide
FFWallView cuenta con cuatro paquetes para su instalación:
ü FFWallViewC
CLIENTE
ü FFWallViewS
SERVIDOR
ü OFFWallView
CLIENTE y SERVIDOR
ü FFRemaster
SERVIDOR (Recomendado)
Figura 1 Paquetes .DEB.
Figura 2 Paquetes .RPM.
Dependiendo de su distribución, debe seleccionar el paquete .DEB (para distribuciones
basadas en DEBIAN) o .RPM (para distribuciones basadas en REDHAT) correspondiente.
Basta con dar doble click en el paquete, ingresar su password para tareas de instalación
(generalmente es la contraseña de usuario) y comenzará el proceso.
Las figuras que se muestran en adelante responden a un proceso de instalación de
FFWallView realizado bajo la distribución de Linux -Ubuntu 12.10 “Quantal Quetzal”-.
Anexo A Guía de Usuario FFWallView
Figura 3 Instalación de FFWallViewC.
Anexo A Guía de Usuario FFWallView
Figura 4 Instalación de FFWallViewS.
Figura 5 Instalación de FFRemaster.
Anexo A Guía de Usuario FFWallView
Figura 6 Instalación de OFFWallView.
En caso de aparecer alguna advertencia sobre el paquete, ignórela y continúe con la
instalación.
Figura 7 Posible advertencia.
Tras completar el proceso de instalación los iconos correspondientes se ubicarán
automáticamente en el “Lanzador de Aplicaciones”. En caso de mostrar inadecuadamente
el ícono, o si simplemente este no aparece, diríjase a la “Zona de Aplicaciones”, identifique
el ícono pertinente y ubíquelo en cualquier posición del lanzador.
Anexo A Guía de Usuario FFWallView
Figura 8 Error al mostrar el ícono de la aplicación.
Figura 9 Ubicación del ícono en el “Lanzador de Aplicaciones”.
Figura 10 Presentación adecuada de los íconos tras una instalación exitosa.
Luego de haber instalado exitosamente FFWallView, es necesario instanciar algunos
paquetes adicionales. Para esto basta con ejecutar el script “PreReq.sh”, seleccionar la
distribución de Linux con la que está trabajando, escribir su password para tareas de
instalación y listo, los paquetes se instalarán automáticamente.
Instalación de Pre-Requisitos
Desde una terminal ejecute el siguiente comando:
sh /usr/share/PreReq.sh
Anexo A Guía de Usuario FFWallView
Figura 11 Instalación de pre-requisitos (1).
A continuación se muestra un menú donde para seleccionar la distribución de Linux que
usted está usando, y así instalar las dependencias adecuadas, en caso de no conocer el
tipo de distribución, podrá realizar una consulta (opción 3) para averiguarlo.
Figura 12 Instalación de pre-requisitos (2).
Anexo A Guía de Usuario FFWallView
Figura 13 Consulta de la distribución de Linux.
Figura 14 Petición de password para tareas de instalación.
Anexo A Guía de Usuario FFWallView
Figura 15 Instalación de pre-requisitos en proceso.
FFRemaster (en el servidor)
La aplicación inicia con la opción de continuar o cancelar.
Figura 16 FFRemaster inicio.
Figura 17 Selección del modo de ejecución.
Anexo A Guía de Usuario FFWallView
Posteriormente se muestra la lista de videos almacenados en su directorio o carpeta
personal, donde podrá seleccionar uno de los archivos para remasterizarlo.
Figura 18 Lista de videos.
La remasterización del video seleccionado se realizará de acuerdo al tipo de formato que
se seleccione. Para una mejor percepción en la calidad de imagen, se recomienda utilizar
el formato “mp4”.
Anexo A Guía de Usuario FFWallView
Figura 19 Tipos de formato.
Durante el proceso de remasterización se mostrará un video introductorio de FFWallView.
Figura 20 Video introductorio de FFWallView.
Al finalizar correctamente el proceso de remasterización, terminará la reproducción del
video introductorio y se verá una notificación indicando el directorio donde se almacenan
los videos remasterizados.
Anexo A Guía de Usuario FFWallView
Figura 21 Directorios Videos & FFVideos.
FFWallView (en el servidor)
Al igual que en FFRemaster, FFWallView arranca con la opción de continuar o cancelar.
Figura 22 Inicio de FFWallView (servidor).
Seleccione modo de operación:
Figura 23 Modo de ejecución para el servidor FFWallView.
Anexo A Guía de Usuario FFWallView
Menú principal que muestra los 3 modos de operación disponibles.
Figura 24 Menú principal servidor FFWallView, modo consola.
Figura 25 Menú principal servidor FFWallView, modo gráfico.
Independientemente del modo de operación seleccionado (Transmitir Video, Transmitir
LiveStream o Transmitir ScreenCast) y del lado donde se ejecute FFWallView (ya sea en el
cliente o en el servidor), la aplicación realizará una prueba de conectividad bidireccional
entre los hosts, en modo consola o en modo gráfico.
Anexo A Guía de Usuario FFWallView
Seleccione el número de clientes:
Figura 26 Número de clientes, modo consola.
Figura 27 Número de clientes, modo gráfico.
Ingreso de direcciones IP de los clientes a contactar para realizar el streaming.
Figura 28 Ingreso direcciones IP, modo consola.
Anexo A Guía de Usuario FFWallView
Figura 29 Ingreso direcciones IP, modo gráfico.
En caso de existir algún problema con la conexión, sea físico, por direcciones incorrectas
y/o no disponibles, se mostrará el siguiente mensaje, para luego reiniciar las pruebas de
conectividad.
Figura 30 Error de conexión, modo consola.
Figura 31 Error de conexión, modo gráfico.
Anexo A Guía de Usuario FFWallView
Si la conexión es exitosa, usted podrá continuar con el modo de operación seleccionado.
MODO DE OPERACIÓN “TRANSMITIR VIDEO”
En este modo de operación usted podrá ver la lista de videos remasterizados disponibles
para realizar el streaming de video, mismo que se ejecutará de manera ininterrumpida.
Figura 32 Lista de videos remasterizados, modo consola.
Figura 33 Lista de videos remasterizados, modo gráfico.
Anexo A Guía de Usuario FFWallView
En modo consola se muestra cuál es el video seleccionado antes de realizar el streaming.
Figura 34 Video seleccionado.
En modo gráfico una vez iniciada la transmisión se lanzará una notificación indicando el
correcto arranque de la misma.
Figura 35 Notificación de envío del streaming.
En el modo consola durante el streaming identificará algo como esto:
Figura 36 Streaming, modo consola.
Anexo A Guía de Usuario FFWallView
MODO DE OPERACIÓN “LIVESTREAM”
En modo consola, para el inicio del LiveStream usted deberá dar confirmación presionando
la tecla ENTER.
Figura 37 Inicio del LiveStream.
En modo gráfico, el LiveStream iniciará automáticamente luego de finalizar la prueba de
conectividad.
MODO DE OPERACIÓN “SCREENCAST”
En modo consola, el ScreenCast iniciará al confirmar pulsando ENTER.
Figura 38 Inicio del ScreenCast.
En el modo gráfico, el ScreenCast comenzará automáticamente al finalizar la prueba de
conectividad.
Anexo A Guía de Usuario FFWallView
FFWallView (en el cliente)
Aplicación FFWallView en el cliente:
Figura 39 Aplicación FFWallView Cliente.
Tal como en el servidor, FFWallView arranca con la opción de continuar o cancelar.
Figura 40 Inicio de FFWallView (cliente).
Usted puede escoger entre 2 modos de ejecución.
Figura 41 Modo de ejecución para el cliente FFWallView.
Según el modo de ejecución que seleccione, se desplegará un menú que muestra los 3
modos de operación disponibles.
Anexo A Guía de Usuario FFWallView
Figura 42 Menú principal cliente FFWallView, modo consola.
Figura 43 Menú principal cliente FFWallView, modo gráfico.
NOTA: Como se mencionó anteriormente, en el cliente FFWallView también se realizan
pruebas de conectividad, como las indicadas en el servidor.
Anexo A Guía de Usuario FFWallView
MODO DE OPERACIÓN “TRANSMITIR VIDEO”
Se tienen 2 opciones:
TRANSMITIR AHORA.- El streaming recibido es segmentado y presentado en 4 monitores,
conformando así el Wall View.
TRANSMITIR DUPLICADOS.- El streaming recibido se reproduce en cada uno de los 4
monitores (misma imagen en los 4).
Figura 44 Modo de transmisión, modo consola.
Figura 45 Modo de transmisión, modo gráfico.
Anexo A Guía de Usuario FFWallView
Luego que usted haya seleccionado un modo de transmisión (presentación del Wall View),
indistintamente del modo de operación (“Transmitir Video”, “LiveStream” o “ScreenCast”),
siempre estará en espera de recibir una señal de streaming desde el servidor, y así
presentarlo en el Wall View.
Figura 46 Esperando señal.
Figura 47 Presentación de “Video” remasterizado en el Wall View.
Anexo A Guía de Usuario FFWallView
Figura 48 Presentación de duplicados de “Video” en el Wall View.
Figura 49 Presentación de “LiveStream” en el Wall View.
Anexo A Guía de Usuario FFWallView
Figura 50 Presentación de duplicados de “LiveStream” en el Wall View.
Figura 51 Presentación de “ScreenCast” en el Wall View.
Anexo A Guía de Usuario FFWallView
Figura 52 Presentación de duplicados de “ScreenCast” en el Wall View.
OFFWallView (en cliente y en servidor)
Para finalizar la actividad de FFWallView en cualquier instante, y en cualquiera de sus
modos de operación, es suficiente con que dé un click en OFFWallView y terminará con la
ejecución. Esto ocurre por igual tanto en el cliente, como en el servidor.
Figura 53 Terminación de FFWallView.
Anexo A Guía de Usuario FFWallView
Para desinstalar la aplicación FFWallView en una terminal digite los siguientes comandos y
escriba su password para tareas de instalación:
Para distribuciones basadas en DEBIAN
sudo
sudo
sudo
sudo
dpkg
dpkg
dpkg
dpkg
--purge
--purge
--purge
--purge
ffwallviewc
ffwallviews
ffremaster
offwallview
Para distribuciones basadas en REDHAT
su
su
su
su
–c
–c
–c
–c
‘rmp
‘rmp
‘rmp
‘rmp
-e
-e
-e
-e
FFWallViewC’
FFWallViewS’
FFRemaster’
OFFWallView’
Finalmente para garantizar la desinstalación, reinicie su sistema.
Anexo B Ciclo de la Metodología Incremental para FFWallView
1) Para el análisis de requisitos se consideró fundamentalmente las tareas
principales que debe cumplir la aplicación:
Ø Capturar la información multimedia (básicamente audio y video).
Ø Segmentar el video en función del número de monitores (empleando las
opciones propias de la herramienta FFmpeg).
Ø Hacer uso del sistema operativo para controlar las tarjetas de video
pertinentes, lo cual corresponde a un procesamiento y ajuste en la imagen.
Ø Codificar los esquemas pertinentes de audio y video.
Ø Insertar la información dentro del servidor.
Ø Realizar la transmisión al cliente (con previa verificación de conectividad),
respondiendo al tipo de petición del mismo.
2) En la etapa de diseño se consideró el esquema general que debía manejarse
tanto en cliente como en servidor.
Figura 1 Esquema general de diseño para FFWallView.
Anexo B Ciclo de la Metodología Incremental para FFWallView
3) En la programación el conflicto central respondía a la problemática sobre qué
lenguaje de programación utilizar. En consecuencia, desde la primera
iteración, se optó por el lenguaje bash script en conjunto con el utilitario Zenity
para proveer una interfaz gráfica sencilla.
4) Finalmente, en función del avance del proyecto, se realizaron pruebas para
evaluar el desempeño de la aplicación en cada iteración.
EN
TOTAL
SE
REALIZARON
5
ITERACIONES,
HASTA
DEFINIR
EL
PROTOTIPO FINAL.
Figura 2 Ciclo empleado para la aplicación FFWallView (Metodología Incremental).
Criterio Insatisfactorio: Etapa de diseño. En este punto inicialmente se pretendió
iniciar de forma remota al cliente, desde el servidor, conforme al flujograma de la
Anexo B Ciclo de la Metodología Incremental para FFWallView
Figura 3. Por añadidura el resto de etapas no cumplieron las expectativas
planteadas; siendo necesaria una segunda iteración.
Figura 3 Diagrama de flujo de la iteración 1.
Criterio Insatisfactorio: Etapa de diseño. En este punto se buscaba la manera
más apropiada para realizar la prueba de conectividad bidireccional entre cliente y
servidor. La prueba se realizaba antes de seleccionar el modo de operación, lo
Anexo B Ciclo de la Metodología Incremental para FFWallView
cual no garantizaba que durante todo el proceso se constate un estado exitoso de
conexión. Por tal motivo, se planteó una tercera iteración. En la Figura 4 y en la
Figura 5 se describe el proceso pretendido bajo este esquema.
Figura 4 Diagrama de flujo para el servidor (iteración 2).
Anexo B Ciclo de la Metodología Incremental para FFWallView
Figura 5 Diagrama de flujo para el cliente (iteración 2).
Criterio
Insatisfactorio:
Etapa
de
programación.
Tras
superar
las
inconformidades en la etapa de diseño109, en este punto el declive se traducía en
el hecho de enviar los cuatro flujos ya divididos desde el servidor. Lo que se pudo
percibir fueron ciertos desajustes en aspecto y resolución de la imagen en el
instante de reproducción en el cliente. Este hecho motivó una cuarta iteración en
el proceso.
109
En la Figura 6 y en la Figura 7 se muestran los flujogramas definitivos tanto para servidor, como
para cliente de la aplicación FFWallView.
Anexo B Ciclo de la Metodología Incremental para FFWallView
Figura 6 Diagrama de flujo de FFWallView para el servidor.
Anexo B Ciclo de la Metodología Incremental para FFWallView
Figura 7 Diagrama de flujo de FFWallView para el cliente.
Criterio Insatisfactorio: Etapa de programación. Pese a llegar a la acertada
conclusión de que los flujos debían segmentarse en el lado del cliente (en el
instante de reproducción), al mismo tiempo se buscaba mejorar el tiempo de
respuesta para iniciar la presentación del streaming en los monitores; para lo cual
se consideró el uso del protocolo experimental de streaming SAP (Session
Announcement Protocol “Protocolo de Aviso de Sesión”), mismo que presentó
errores en el envío de flujos simultáneos a través de varios puertos. Este
particular abrió paso a una quinta iteración.
Anexo B Ciclo de la Metodología Incremental para FFWallView
Criterio Insatisfactorio: Ninguno. El inconveniente presentado con el protocolo
SAP, fue solventado con el empleo del protocolo UDP en su lugar. Luego de las
pruebas realizadas, finalmente se concluyó que el esquema general era el
esperado, conforme a los requerimientos planteados en la etapa de análisis. Esta
iteración se traduce en el prototipo final presentado en este proyecto.
Anexo C Cotizaciones
Sitio web: www.xpc.com.ec
Anexo C Cotizaciones
Anexo C Cotizaciones
Anexo C Cotizaciones
Anexo C Cotizaciones
Anexo C Cotizaciones
Anexo C Cotizaciones
Anexo C Cotizaciones
A D A T A 1T B N H13 2 .5" U SB 3 .0 SILV ER - B LA C K
A D A T A 50 0 GB HD 6 10 2 .5" U SB 3 .0 B K- B L
C A SE QU A SA D SX C - 3 0 72 C C OM B O T E, M O, PA ,C R E4 5,0 0
C A SE QU A SA D SX C - 9 8 0 2 A C OM B O T E, M O, PA ,C R E4 2 ,0 0
C A SE SEN T EY C S1- 13 9 9 W IT H PS B C PC - 4 50 - OC
A D A T A SD D 12 0 GB SA T A III N OT . PA C K
155,50
14 7,0 0
C A SE SEN T EY SPID ER GS- 6 70 0 B LA C K N O PS
9 3 ,0 0
6 4 ,0 0
C A M A R A GEN IU S D IGIT A L G- SHOT 14 0 0
77,78
GEN IU S SP- U 150 X U SB B LA C K- GR EEN
C A M A R A SON Y D SC - H9 0 X X + EST U C HE+M EM . 4 GB
114 ,0 0
110 ,0 0
12 2 ,0 0
IN T EL D H77EB LGA 1155,D D R 3 ,V ID ,SON ,LA N B U LK
IN T EL D H77KC LGA 1155,D D R 3 ,V ID ,SON ,LA N B U LK
ND
ND
R OU T ER D LIN K D IR - 9 0 5L N 3 0 0 C lo ud
R OU T ER D LIN K D IR - 9 0 0 L N 150 C lo ud
R OU T ER D LIN K D IR - 6 57A
R OU T ER D LIN K D IR - 6 15A
R OU T ER D LIN K D IR - 6 10 A
R OU T ER D LIN K D IR - 6 0 0 A
R OU T ER D LIN K D IR - 50 5 POC KET
R OU T ER D LIN K D IR - 3 2 0 A
ROUTER, ACCESS POINT
V ID EO Z OGIS GT X - 550 T I 2 GB PC I- EX P.
V ID EO Z OGIS GT - 6 4 0 2 GB PC I- EX P.
V ID EO Z OGIS GT - 6 4 0 1GB PC I- EX P.
V ID EO Z OGIS GT - 6 3 0 2 GB PC I- EX P.
V ID EO Z OGIS GT - 6 3 0 1GB PC I- EX P.
13 ,6 0
13 ,6 0
6 ,8 0
6 ,3 0
4 ,9 0
9 ,8 0
6 ,70
6 ,4 0
58 6 ,0 0
6 3 5,0 0
SA M SU N G I5- 3 2 10 ,4 GB ,50 0 GB ,14 " ,W C ,D W ,W 7HB
HP Laser Jet Pr o 2 0 0 C o lo r M 2 76 nw PN :C F 14 5A
SW IT C H D LIN K D GS- 10 16 D 16 P R J4 5
SW IT C H D LIN K KV M - 12 1 W IT H C A B LES
2 7,0 0
14 9 ,0 0
2 58 ,0 0
Sucursal Mayor Guayaquil
PBX: 229 3755
FA X: 229 3666 / Ext.: 222
SA M SU N G LA SER M L- 2 16 5 * N EW
HP Of f iceJet Pr o K8 6 0 0 PN :C B 0 15A
HP Of f iceJet Pr o 8 6 0 0 PN :C M 74 9 A
HP Of f iceJet 750 0 A PN :C 9 3 0 9 A
HP Laser Jet Pr o P110 2 w PN :C E6 58 A
Centro de Servicios Técnicos
PBX: 255 4210 / 290 8202
FA X: 290 2981
SW IT C H D LIN K KV M - 4 4 0 8 POR T PS2 / U SB
6 2 ,0 0
3 5,0 0
HP Laser Jet Pr o C o lo r C P10 2 5nw PN :C E9 18 A
4 6 1,0 0
2 2 6 ,0 0
3 6 9 ,0 0
4 3 9 ,0 0
2 4 9 ,0 0
8 6 6 ,0 0
9 2 ,0 0
114 ,0 0
SA M SU N G T V 55" 3 D LED 55ES70 0 0 GX 2F.9HD
6 7,0 0
SA M SU N G T V 55" 3 D LED 55ES6 50 0 GX 2F.19
HD2 ,0 0
SA M SU N G T V 51" 3 D PLA SM A 51E4 9 0 B 4 9G4HD
6 ,0- 0T V
SA M SU N G T V 4 6 " 3 D LED 4 6 ES70 0 0 GX2 .16
F HD
8 ,0
- T0V
SA M SU N G T V 4 3 " 3 D PLA SM A 4 3 E4 9 0 B 84 0G6HD
,0 0- T V
SA M SU N G T V 4 0 " LED 4 0 EH50 0 0 GX F HD76
- T 8V,0 0
SA M SU N G 2 0 " LS0 B 3 0 0 N S LED
SA M SU N G 18 .5" LS19 A 10 N S LC D
LG T V 55" 55LM 6 2 0 0 3 D LED F U LL- HD T V2 .13 1,0 0
LG T V 50 " 50 PA 4 50 0 PLA SM A F U LL- HD T V
8 4 9 ,0 0
LG T V 4 7" 4 7LM 6 2 0 0 3 D LED F U LL- HD T V
1.6 15,0 0
LG T V 4 2 " 4 2 LS4 6 0 0 LED F U LL- HD T V
SON Y T V 3 2 " KD L- 3 2 EX 4 55 LED F HD - T V 4 8 5,0 0
SON Y T V 3 2 " KD L- 3 2 B X 3 9 5 LC D HD - T V 4 0 5,0 0
4 1,0 0
3 4 1,0 0
18 7,0 0
4 .0 75,0 0
2 4 1,0 0
2 2 5,0 0
2 17,0 0
18 5,0 0
14 9 ,0 0
3 14 ,0 0
175,0 0
2 0 2 ,0 0
59 ,0 0
2 .8 72 ,0 0
12 4 ,0 0
6 4 6 ,0 0
HP Laser Jet EN T ER PR IC E C P552 D N PN :C
# E70
# # #8 #A #
HP Laser Jet EN T ER PR IC E 6 0 0 M 6 0 2 n PN :C
9 9E9
9 ,09 01A
HP D eskJet A IO 2 0 50 J510 a PN :C H3 50 C
HP D esing jet 510 10 6 7mm PN :C H3 3 7A
EPSON W OR K- PLA C E T 4 2 W D
EPSON T M U - 9 50 P- 2 52
EPSON T M U 2 2 0 D - 6 53 PA R . W IT H A D A P. 18
B K2 ,0 0
EPSON ST Y LU S T 50
EPSON ST Y LU S PR O 9 70 0 GF
EPSON ST Y LU S M U LT . T X - 73 0 W
EPSON ST Y LU S M U LT . L3 55 * N EW
EPSON ST Y LU S M U LT . L3 50 * N EW
EPSON ST Y LU S M U LT . L2 10 * N EW
EPSON PIC T U R E M A T E PM - 2 2 5
EPSON PHOT O L8 0 0
EPSON LX - 50 M A T R IC IA L
EPSON LX - 3 0 0 M A T R IC IA L
EPSON LA B EL W OR KS LW - 4 0 0
EPSON F X - 8 9 0 M A T R IC IA L
IMPRESORAS EPSON,HP,LEX MARK,SAMSUNG
SON Y T V 55" KD L- 55HX 755 3 D LED F HD -1.8
T V10 ,0 0
SON Y T V 4 6 " KD L- 4 6 HX 755 3 D LED F HD1.179
- T V ,0 0
SON Y T V 4 6 " KD L- 4 6 EX 6 55 LED F HD - T V1.12 6 ,0 0
SON Y T V 4 0 " KD L- 4 0 HX 755 3 D LED F HD1.0
-TV
12 ,0 0
SON Y T V 4 0 " KD L- 4 0 EX 6 55 LED F HD - T V 8 9 0 ,0 0
SON Y T V 4 0 " KD L- 4 0 EX 4 55 LED F HD - T V 79 4 ,0 0
SON Y T V 4 0 " KD L- 4 0 B X 4 55 LC D F HD - T V 6 71,0 0
Sucursal Sur Guayaquil
PBX: 234 0479 / 233-1137
233-8475 / 233 2924 / 234-9043
6 3 ,0 0
2 2 0 ,0 0
18 2 ,0 0
2 3 6 ,0 0
10 4 ,0 0
HP Laser Jet Pr o M ult . C o lo r 4 0 0 M 4 75d n PN :C E8 6 3 A 756 ,0 0
HP Laser Jet Pr o 4 0 0 M 4 0 1d w PN :C F 2 8 5A
HP Laser Jet Pr o 4 0 0 C o lo r M 4 0 1n PN :C Z 19 5A
T V B OX Z OGIS R A 4 0 0 U U SB 2 .0 A N A LOG T U N ER
2 6R,0 0
SW IT C H D LIN K D ES- 10 2 4 D 2 4 P R J4 5
18 9 ,0 0
114 ,0 0
19 2 ,0 0
118 ,0 0
73 8 ,0 0
554 ,0 0
8 4 9 ,0 0
53 4 ,0 0
1.0 50 ,0 0
1.19 5,0 0
1.79 8 ,0 0
2 .2 54 ,0 0
HP Laser Jet Pr o 10 0 C o lo r M ult . M 175nw PN :C E8 6 6 A 3 55,0 0
HP Laser Jet M ult . M 12 12 nf P110 2 w PN :C E8 4 1A
IMPRESORA SAMSUNG, HP
SC A N N ER M ET R OLOGIC S V OY A GER 12 0 0 g
SC A N N ER EPSON PHOT O V 50 0
SC A N N ER EPSON PHOT O V 3 3 0
SCANNER HP, EPSON
PR OY EC T OR EPSON PR ESEN T ER L R EPR . D V D
PR OY EC T OR EPSON POW ER LIT E X 12
PR OY EC T OR EPSON POW ER LIT E W 12 +
PR OY EC T OR EPSON POW ER LIT E S12 +
PR OY EC T OR EPSON POW ER LIT E 9 10 W
PR OY EC T OR EPSON POW ER LIT E 9 0 5
PR OY EC T OR EPSON POW ER LIT E 4 75I+
PR OY EC T OR EPSON EB - G59 0 0 52 0 0 LU M .
PROY ECTORES EPSON, SONY ,SAMSUNG
T A R JET A T V Z OGIS R A 2 2 0 PC I T U N ER F M R / C 2 1,0 0
SW IT C H D LIN K D ES- 10 16 D 16 P R J4 5
4 0 9 ,0 0
2 59 ,0 0
2 53 ,0 0
2 0 9 ,0 0
79 ,0 0
159 ,0 0
14 2 ,0 0
LG T V 4 2 " 4 2 LM 6 2 0 0 3 D LED F U LL- HD T1.3
V 0 2 ,0 0
LG T V 3 2 " 3 2 C S4 6 0 LC D HD - T V
LG 2 3 " IPS2 3 V - PN LED
LG 2 3 " E2 3 4 1V - B N LED
LG 2 1.5" E2 2 4 2 C - B N LED
LG 15.6 " E16 4 2 C - B N LED
HP 2 0 " LE2 2 0 2 X M LED PN :A 2 U 6 3 A A
HP 18 .5" LV 19 11 LED PN :A V 5V 72 A A
A OC 19 " E9 4 3 F W S LED W IT H W A LL M OU N9T3 ,8 0
T OSHIB A X 8 75- SP72 0 1SL I7- 3 6 10 QM ,6 GB ,1T B ,17.3 " ,B
1.72
R ,W
9 ,0
7HPR
0
SON Y T V 3 2 " KD L- 3 2 EX 555 LED F HD - T V 557,0 0
SON Y SV S15115F LB I5- 3 2 10 ,6 GB ,6 4 0 GB ,15.5" ,W C ,B R1.179
,W 7HP
,0 0
HP Laser Jet Pr o 4 0 0 C o lo r M 4 51d n PN :C E9 57A
SW ITCH DLINK
10 / 0 4 / 2 0 13
MONITORES (TVs) LG,SAMSUNG,SONY ,HP,AOC
SON Y SV E14 A 16 F LP- S- W I5- 2 4 50 ,4 GB ,6 4 0 GB ,14 " ,W C8,D79W,0,W
0 7HPSA M SU N G T V 55" 3 D LED 55ES8 0 0 0 GX3F.3HD
0 5,0 0
SON Y SV E14 A 15F LB I5- 2 4 50 ,4 GB ,6 4 0 GB ,14 " ,W C ,D W ,W
787HP
9 ,0 0
SON Y SV E14 117F LB I5- 2 4 50 ,4 GB ,6 4 0 GB ,14 " ,W C ,D W ,W
787HP
9 ,0 0
4 4 8 ,0 0
3 8 4 ,0 0
6 0 2 ,0 0
716 ,0 0
6 8 9 ,0 0
SA M SU N G I3 - 2 3 70 ,4 GB ,50 0 GB ,14 " ,W C ,D W ,D OS
SA M SU N G B 8 15,2 GB ,50 0 GB ,14 " ,W C ,D W ,W 7HB
HP g 4 - 2 2 10 A 6 - 4 4 0 0 ,6 GB ,750 GB ,14 " ,D W ,W C ,W 8
HP g 4 - 2 0 8 2 I5- 2 4 50 ,4 GB ,6 4 0 GB ,14 " ,D W ,W C ,W 7HP
HP g 4 - 2 0 55 I5- 2 4 50 ,8 GB ,750 GB ,14 " ,D W ,W C ,LN X
HP g 4 - 2 0 50 I3 - 2 3 50 ,6 GB ,6 4 0 GB ,14 " ,D W ,W C ,LN X
HP g 4 - 13 57 A M D E2 - 18 0 0 ,2 GB ,50 0 GB ,14 " ,W C ,W 7HB 4 8 5,0 0
HP EB 8 570 w I7- 3 6 10 ,8 GB ,50 0 GB ,15.6 " ,D W ,W C ,W 7PR
1.8 3 0 ,0 0
HP d v6 - 72 8 0 I7- 3 6 3 0 ,8 GB ,1T B ,15.6 " ,V D 2 GB ,D W ,W 81.3 2 9 ,0 0
T V B OX Z OGIS R A HD 19 2 0 ST A N D A LON E W / R C 4 5,0 0
TARJETA DE TV PCI , TV BOX
T A R JET A D E R ED D LIN K D W A - 56 6 W IR . PC I- EX P4 1,0 0
T A R JET A D E R ED D LIN K D W A - 12 5 U SB W IR
T A R JET A D E R ED D LIN K D W A - 52 5 PC I W IR
TARJETA DE RED CNET,ADV,DLINK
F LA SH M EM OR Y KIN GST ON D T 10 1G2 8 GB U SB
F LA SH M EM OR Y HP v16 5W 8 GB U SB
F LA SH M EM OR Y HP v16 5W 4 GB U SB
F LA SH M EM OR Y HP v16 5W 16 GB U SB
F LA SH M EM OR Y A D A T A U V 10 0 8 GB PIN K- PU R
F LA SH M EM OR Y A D A T A U V 10 0 8 GB B LA C K
Sucursal Sur Quito
PBX: 265 1977 / 261 5364
265 3056 / 261 3063
4 4 ,0 0
3 1,0 0
9 8 ,0 0
3 8 ,0 0
2 2 ,0 0
19 ,9 0
3 8 ,0 0
55,0 0
2 4 5,0 0
110 ,0 0
10 1,0 0
76 ,0 0
6 9 ,0 0
55,0 0
8 2 ,0 0
V ID EO Z OGIS GT - 4 4 0 1GB PC I- EX P.
V ID EO Z OGIS GT - 6 10 2 GB PC I- EX P.
3 4 ,0 0
58 ,0 0
3 6 ,0 0
V ID EO Z OGIS GT - 2 10 1GB PC I- EX P.
V ID EO Z OGIS A X - 6 4 50 2 GB PC I- EX P.
V ID EO Z OGIS 6 2 0 0 A 2 56 KB A GP.
TARJETA DE VIDEO ZOGIS
D V D - R W R IT ER SA M SU N G SH- 2 2 4 B B 2 2 X SA T A IN T .16 ,50
8 ,8 0
F LA SH M EM OR Y A D A T A S10 2 8 GB GR A Y
F LA SH M EM OR Y A D A T A U V 10 0 4 GB B LA C K - PIN K4 ,6 0
D V D - R W R IT ER SA M SU N G SE- 2 0 8 A B SLIM 8 X U SB 2 9 ,0 0
8 ,8 0
F LA SH M EM OR Y A D A T A 8 GB S8 0 5 GR A Y
3 8 ,0 0
Sucursal Colón Quito
PBX: 256 3036 / 056 / 058 / 074
222 3036 FA X: 256 2488
SO- D IM M KIN GST ON 8 GB PC - 13 3 3
Principal Quito
PBX: 222 8218 / 250 2209
FA X: 2540 746
11,9 0
2 1,0 0
4 0 ,3 0
SO- D IM M KIN GST ON 2 GB PC - 13 3 3
SO- D IM M KIN GST ON 4 GB PC - 13 3 3
3 ,70
6 ,2 0
M IC R O- SD A D A T A 3 2 GB W HIT H A D A PT .
M IC R O- SD A D A T A 8 GB W HIT H A D A PT .
M IC R O- SD A D A T A 16 GB W HIT H A D A PT .
M IC R O- SD A D A T A 4 GB W HIT H A D A PT .
13 ,8 0
12 ,9 0
2 3 ,2 0
M IC R O- SD A D A T A 16 GB S10 W HIT H A D A PT .
11,9 0
2 1,3 0
4 0 ,0 0
D IM M KIN GST ON 8 GB PC - 13 3 3
3 4 ,0 0
D IM M A D A T A 8 GB PC - 13 3 3
D IM M KIN GST ON 2 GB PC - 13 3 3
18 ,0 0
D IM M A D A T A 4 GB PC - 13 3 3
D IM M KIN GST ON 4 GB PC - 13 3 3
2 4 ,0 0
2 6 ,0 0
D IM M A D A T A 1GB PC - 4 0 0
D IM M A D A T A 2 GB PC - 8 0 0
MEMORIA ADATA, KINGSTON, ADATA
75,0 0
3 4 5,0 0
IN T EL C OR E I5- 3 770 3 .4 GHZ 6 M B
6 6 ,0 0
2 2 1,0 0
IN T EL C OR E I5- 3 4 70 3 .2 GHZ 6 M B
IN T EL G8 50 2 .9 GHZ 2 M B
2 12 ,0 0
IN T EL C OR E I5- 3 4 50 3 .1GHZ 6 M B
IN T EL G6 4 5 2 .9 GHZ 3 M B
2 0 0 ,0 0
IN T EL C OR E I5- 3 3 3 0 3 .2 GHZ 6 M B
HP, KINGSTON, ADATA
C A M A R A SON Y HA N D Y C A M HD R - C X 19 0 B C +H50 0 GB
4 8+EST
1,0 0 .+MFLASH
EM 4 GB
MEMORY
13 4 ,0 0
4 8 ,0 0
12 9 ,0 0
4 4 8 ,0 0
T A B LET C OB Y M ID - 9 74 0 - 8 W IF I,9 .7" ,8 GB ,A N D 2- 40.0
4 ,0 0
T A B LET A OC M W 0 711- E W IF I,7" ,4 GB ,A N D - 4 .0
IPA D 3 A PPLE M D 3 6 9 EA 16 GB W i- F i +4 G W hit e 72 1,0 0
IN T EL C OR E I3 - 3 2 2 0 3 .3 GHZ LGA 1155
IN T EL G550 2 .6 GHZ 2 M B
19 ,4 0
19 ,3 0
7,3 0
5,10
5,3 0
14 ,50
53 ,0 0
6 ,0 0
IPA D 3 A PPLE M C 70 7EA 6 4 GB W i- F i W hit e o B lack
78 4 ,0 0
C A M A R A SON Y HA N D Y C A M D C R - - C X 19 0 B C PJ5B C50
+H50
8 ,0 0 GBT+M
A BEM
LET4 GB
T OSHIB A A T 3 0 5- SP0 2 0 1L 2 GB ,6 4 GB
D V D PLA Y ER SA M SU N G D 3 6 0 K KA R A OKE
5,10
8 ,10
9 2 6 ,0 0
HP d m1- 4 19 0 A M D E3 0 0 ,4 GB ,50 0 GB ,11.6 " ,W C ,W 7HB 3 4 6 ,0 0
HP 6 4 70 b I5- 3 2 10 ,4 GB ,50 0 GB ,14 " ,D W ,W C ,W 7PR
3 59 ,0 0
8 3 9 ,0 0
HP 4 4 4 0 s I5- 3 2 10 ,4 GB ,50 0 GB ,14 " ,D W ,W C ,W 7PR
HP 4 55 A M D E1- 12 0 0 ,2 GB ,50 0 GB ,15.6 " ,W C ,D W ,LN X
8 14 ,0 0
76 4 ,0 0
4 71,0 0
HP 4 4 4 0 s I3 - 3 110 ,4 GB ,50 0 GB ,14 " ,D W ,W C ,W 7PR
HP 14 - B 0 6 4 I5- 3 2 17,4 GB ,750 GB ,14 " ,W C ,W 8
HP 10 0 0 - 12 10 B 8 2 0 ,2 GB ,50 0 B ,14 " ,D W ,W C ,W 8
A C ER M IN I- N OT E A SPIR E ON E N 2 6 0 0 ,2 GB ,50 0 GB ,10 2.1"
6 4,B,0L0
A C ER M IN I- N OT E A SPIR E ON E N 2 6 0 0 ,2 GB ,50 0 GB ,10 2.1"
6 4,B,0K0
NOTEBOOK HP, SONY , TOSHIBA, SAMSUNG
IPA D 2 A PPLE M D 773 EA 16 GB W i- F i +3 G W hit e o
6 r14B,0lack
0
SON Y SV S13 115F LB I5- 3 2 10 ,4 GB ,6 4 0 GB ,13 .3 " ,W C ,D W9,W
4 97HP
,0 0
PROCESADORES AMD, INTEL
C A M A R A SON Y D SC - W X 1 SC - B C + EST U C HE+M EM3. 14
4 GB
,0 0
C A M A R A SON Y D SC - W 10 0 SC - B C + EST U C HE+M EM
3 14
. 4,0GB
0
C A M A R A SON Y A LF A N EX 5K B Q- SQ
IN T EL D H6 7B L LGA 1155,C OR E- I7,D D R 3 ,V ,S,R B U LK 9 9 ,0 0
9 ,8 0
56 ,0 0
IN T EL D H6 1HO LGA 1155,C OR E- I7,D D R 3 ,V ,S,R B U LK
IN T EL D H77EB LGA 1155,D D R 3 ,V ID ,SON ,LA N
C A M A R A GEN IU S V ID . C ON F . I- LOOK 3 0 0
TABLET APPLE, AOC, SAMSUNG, HP
C A M A R A GEN IU S V ID . C ON F . F A C E C A M 3 2 0 X GS 10 ,6 0
GEN IU S SW - J2 .1 50 0 U S 12 0 V
6 0 ,0 0
154 ,11
GEN IU S SP- S110 B LA C K
GEN IU S SP- U 115 B LU E- W HIT E- R ED U SB
IN T EL D H6 1HO LGA 1155,C OR E- I7,D D R 3 ,V ,S,R
C A M A R A GEN IU S D IGIT A L G- SHOT HD - 58 5
GEN IU S SP- I6 0 0 ID F OR IPA D
GEN IU S SP- J3 3 0 ELEGA N T 2 .0 C H M U L.
GEN IU S SW - S 2 .1 3 55 3 PIEC E U S 12 0 V
71,0 0
8 8 ,0 0
3 8 4 ,0 0
157,0 0
PARLANTES GENIUS
T EC L. GEN IU S SLIM ST A R 110 U SB B LA C K SP
C A M A R A GEN IU S V ID . C ON F . F A C E C A M 3 11 B LIST ER
10 ,2 0
8 7,0 0
IN T EL D B 8 75EN B LGA 1155,D D R 3 ,V ID ,SON ,LA N
IN T EL D H6 1C R LGA 1155,C OR E- I7,D D R 3 ,V ,S,R
C A M A R A D LIN K D C S- 9 3 0 A
C A M A R A D LIN K D C S- 7110
C A M A R A D LIN K D C S- 2 13 0 A
T EC L. GEN IU S KB - 110 X PS2 B LA C K SP
5,50
5,0 0
3 ,50
3 ,10
3 ,9 0
5,3 0
5,3 0
T EC L. GEN IU S KM S- 110 U SB + M OU OPT +PA R U 110
15,3 0
T EC L. GEN IU S KB - 2 2 0 E M U LT . U SB B LA C K SP
IN T EL D H6 1C R LGA 1155,C OR E- I7,D D R 3 ,V ,S,R B U LK 6 7,0 0
6 0 ,50
6 9 ,6 0
GIGA B Y T E H6 1M - S2 PV C OR E I7,S1155,D D R 3 ,V ,S,R
4 8 ,50
GIGA B Y T E H6 1M - S1PV C OR E I7,S1155,D D R 3 ,V ,S,R
IN T EL D 2 50 0 HN + A T OM D 2 50 0 D D R 3 ,V ,S,R
72 ,0 0
GIGA B Y T E E3 50 N A M D - E3 50 ,D D R 3 .V ,S,R U SB 4
13 6 ,0 0
B LU E- R A Y R - W R IT ER LG B P4 0 N S2 0 9 X 3 D SU P. EX
12T4. ,0 0
72 ,2 0
GIGA B Y T E B 75M - D 3 H C OR E I7,S1155,D D R 3 ,V ,S,R
C A M A R A D LIN K D C S- 2 10 3 A
CAMARAS,DVDW s,CDRW s,PHOTO
GIGA B Y T E A 55M D S2 A M D A &E2 ,D D R 3 ,V ,S,R ,U SB 4 59 ,0 0
ND
8 8 ,0 0
SEA GA T E 50 0 GB SA T A 72 0 0 R PM
T OSHIB A 1T B SA T A 54 0 0 R PM N OT .
T OSHIB A 50 0 GB SA T A 54 0 0 R PM N OT .
78 ,0 0
B IOST A R G4 1D 3 G + C ELER ON .D 3 4 7
GIGA B Y T E 78 LM PHE- A T HL,A M D 3 +,D D R 3 ,S,R ,U SB 4 51,70
T EC L. GEN IU S KB - 0 6 PS2 B LA C K SP
158 ,0 0
B IOST A R N M 70 I- 8 4 7M ini A T X C el- 8 4 7,D D R 3 ,SON ,V ID
76,R
,0ED
0
M OU SE GEN IU S X SC R OLL U SB B LA C K
SEA GA T E 1T B SA T A 72 0 0 R PM M OD : ST 3 10 0 0 52 4 A 76 ,0 0
T EC L. GEN IU S KB - 0 6 U SB B LA C K SP
SEA GA T E 1T B SA T A 72 0 0 R PM M OD : ST 10 0 0 D M 0 0 38 2 ,0 0
SEA GA T E 3 T B SA T A 72 0 0 R PM
70 ,0 0
M OU SE GEN IU S X SC R OLL PS2 B LA C K
M OU SE GEN IU S N ET SC R OLL 3 10 X U SB B LA C K
M OU SE GEN IU S M IC R O T R A V . U SB SILV ER
M OU SE GEN IU S M IC R O T R A V . U SB R U B Y
5,10
M OU SE GEN IU S M IC R O T R A V . 9 0 0 U SB B LA C K 11,4 0
M OU SE GEN IU S M IC R O T R A V . U SB B LA C K
B IOST A R B 75M U 3 + LGA 1155,C OR E- I7,D D R 3 ,V ,S,R
115,0 0
6 9 ,0 0
6 4 ,0 0
9 9 ,0 0
10 1,0 0
TECLADOS, MOUSE
MOTHER BOARDS INTEL, BIOSTAR, ECS, MSI
C A SE SEN T EY W OLF GS- 6 6 0 0 B LA C K N O PS
A D A T A 50 0 GB HD 710 2 .5" U SB 3 .0 B LA C K - B LU E
C A SE SEN T EY OPT IM U S GS- 6 50 0 B B LA C K PS EPR 50
174
0W
,0 0
3 9 ,50
A D A T A 1T B HV 6 10 2 .5" U SB 3 .0 B K- B L, W H- B L
A D A T A 1T B HV 710 2 .5" U SB 3 .0 B K- B L
C A SE QU A SA D SX C - 3 0 56 A C OM B O T EC L, M OU , PA R4 1,0 0
DISCOS DUROS SEAGATE, W D, ADATA
CASE QUASAD, SENTEY , AGILER, ZOGIS
LISTA DISTRIBUIDOR
Anexo C Cotizaciones
Sitio web: www.tecnomega.com
Anexo C Cotizaciones
Sitio web: www.compu-tron.net
Anexo C Cotizaciones
Anexo C Cotizaciones
Anexo C Cotizaciones
Anexo C Cotizaciones
Sitio web: www.novicompu.com
Anexo C Cotizaciones
Anexo C Cotizaciones
Anexo C Cotizaciones
Sitios web:
pinsoft.ec
gruposie7e.com
www.compugamer.com.ec
www.mercadolibre.com.ec
www.tecnit.com.ec
Anexo C Cotizaciones
Anexo C Cotizaciones
Anexo C Cotizaciones
Anexo C Cotizaciones
Anexo C Cotizaciones
Anexo C Cotizaciones
Sitio web:
http://ec.traetelo.com/matrox-m9140-e512laf-the-matrox-m9140-lp-pcie-x16-quadhead-graphics-card-offers-512mb-of-memory-and-p-196436.html
Anexo C Cotizaciones
Sitio web:
www.videowallsolutions.net/video-wall-controller-hardware.html?limit=10
Anexo C Cotizaciones
110
Sitio web:
www.9xmedia.com/new/products/servers.php
110
El hardware adicional al que se hace referencia tan solo supone los extras necesarios para el
funcionamiento de la tarjeta gráfica (GPU), y no para el funcionamiento completo del Wall View.
Anexo C Cotizaciones
Anexo C Cotizaciones
Sitio web:
www.amazon.com/Display-MultiSync-X462UN-MonitorVUKUNET/dp/B00BMQ6KDM/ref=sr_1_1?ie=UTF8&qid=1362348311&sr=81&keywords=multisync+x…
Anexo C Cotizaciones
Sitio web:
www.compsource.com/ttechnote.asp?part_no=100D28B22&vid=2445&src=PG
Anexo C Cotizaciones
Sitio web:
latam.preciomania.com/search_getprod.php/masterid=41284237/search=ergotron+lx+w
all/no_sps=1#tab=details
Anexo C Cotizaciones
Sitio web:
www.ekrano.es/plasmawall.html
Anexo C Cotizaciones
Sitio web:
www.sonicolor.es/productos/videoproyectores/videowall/videowall.html
Anexo C Cotizaciones
Sitio web:
www.necdisplay.com/p/product-bundles/x462un-tmx4d
Sitio web:
www.bhphotovideo.com/c/product/820855-REG/NEC_X551UN_TMX4D_55_2_x_2.html
Instalación Manual de Controladores de Tarjetas Gráficas
Anexo D GeForce en Ubuntu
Fuente: www.ubuntu-guia.com/2010/04/instalar-driver-de-tarjetas-nvidia-en.html
Advertencia: Al instalar el controlador manualmente, cada vez que se actualice el
Kernel, se debe volver a instalar el controlador de nuevo, manualmente.
1º Descargar el driver propietario de la página oficial de NVIDIA:
Abrir el navegador e ingresar a la página oficial de descarga de controladores de
NVIDIA: http://www.nvidia.es/Download/index.aspx?lang=es
Aparecerá un cuadro de diálogo donde buscar la tarjeta específica. En este caso
sería una "GeForce 210". Se lo haría de la siguiente forma:
Tipo de producto -> GeForce
Serie del producto -> GeForce 2 Series
Sistema Operativo -> Linux 64-bit
Idioma -> Español (Latino América)
Antes de descargarlo dar click en la pestaña "PRODUCTOS SOPORTADOS" y
asegurarse que esté la tarjeta indicada (de cometer algún error con el driver
descargado, podrían darse muchos conflictos y problemas). Luego se debe dar
click en "Descargar ahora". Saldrá un diálogo de aceptación de la licencia, click en
"aceptar y descargar".
IMPORTANTE:
·
·
Guardar el paquete descargado en la carpeta personal para que su
instalación sea más fácil y con menos comandos.
El nombre del archivo en este caso es: "NVIDIA-Linux-x86_64-310.19.run" y
para facilitar su instalación a la hora de escribir los comandos, renombrarlo
como "NVIDIA.run".
2º Dar permisos de ejecución al paquete descargado:
Digitar en una terminal:
sudo chmod 777 -R NVIDIA.run
Instalación Manual de Controladores de Tarjetas Gráficas
Anexo D GeForce en Ubuntu
3º Instalar las herramientas y paquetes necesarios:
Será necesario instalar dos paquetes para que el script compile el módulo,
ejecutando en una terminal el siguiente comando:
sudo apt-get install build-essential linux-headers-$(uname -r)
4º Desinstalar cualquier versión previa del controlador:
Es necesario desinstalar todo el software previo relacionado con la tarjeta gráfica.
En una terminal ejecutar: sudo sh NVIDIA.run --uninstall
Desinstalar el driver privativo nvidia con:
sudo
apt-get
remove
--purge
sudo
apt-get
remove
--purge
nvidia*
Desinstalar el driver libre nouveau con:
xserver-xorg-video-nouveau
Añadir nouveau a la blacklist para que en el arranque del sistema no se monte y
permita arrancar luego sin él. Para ello se edita el archivo blacklist.conf con:
sudo gedit /etc/modprobe.d/blacklist.conf
Añadir al final del archivo las siguientes lineas:
blacklist
blacklist
blacklist
blacklist
blacklist
vga16fb
nouveau
rivafb
nvidiafb
rivatv
Guardar y cerrar el archivo.
5º Salir del entorno gráfico y reiniciar el sistema:
Para Ubuntu 11.10, que utiliza lightdm, ejecutar el siguiente comando:
sudo service lightdm stop
Para Ubuntu 11.04 y anteriores, que utiliza gdm, ejecutar el siguiente comando:
sudo service gdm stop
Instalación Manual de Controladores de Tarjetas Gráficas
Anexo D GeForce en Ubuntu
Quedará la pantalla en negro, por lo que se debe pulsar la combinación de teclas
CTRL+ALT+F1 para accedemos a la terminal.
Saldrá en la última fila: "usuario-desktop login" para ingresar el nombre de
usuario. Al pulsar ENTER pedirá la contraseña, escribirla y pulsar ENTER
nuevamente.
Reiniciar el sistema con: sudo reboot now
6º Instalación del controlador:
·
·
En Ubuntu 10.04 y anteriores: Arranca el sistema y parecerá el mensaje
"Ubuntu está funcionando en modo de resolución baja", pulsar "Aceptar".
Saldrán varias opciones de arranque, seleccionar: "Iniciar una sesión en modo
consola", esto hará que arranque en modo texto sin la gráfica (X11).
En Ubuntu 10.10 y posteriores: Arranca directamente en modo consola sin
gráfica (X11).
En ambos casos, realizar el login nuevamente, como antes.
Instalar el driver con: sudo sh NVIDIA.run
Aparecerá la pantalla de instalación de NVIDIA dando varias opciones a elegir.
Normalmente se da "SI, acepto" a todo. Para desplazarse por las opciones de
“aceptar” “si” o “no”, usar la tecla TAB.
Reiniciar el entorno gráfico con:
sudo service gdm start
sudo service lightdm start
Ubuntu 10.04 y anteriores
Ubuntu 10.10 y posteriores
IMPORTANTE:
·
Durante el proceso de instalación se crea el archivo “/etc/X11/xorg.conf”,
respaldando cualquier versión anterior del mismo.
Finalmente instalar el paquete Nvidia-Settings (herramienta para la configuración
de la tarjeta gráfica) con:
sudo apt-get install nvidia-settings
Descargar