TSI-090100-2011-19/ Ministerio de Industria, Turismo y Comercio / AVANZA I+D (2011) SISTEMA DE DISTRIBUCIÓN DE CONTENIDOS Y PUBLICIDAD PERSONALIZADA SOBRE IP Proyecto CONTENTIPLICER Prototipo del sistema integrado Código E3.2 Responsable Autores GTI-UPM PLANET MEDIA, UNIVERSIDAD POLITÉCNICA DE MADRID, ALCATEL-LUCENT, ADN STREAM Fecha 30/04/2014 Estado Final
Índice de Contenido Índice de Contenido 1 Índice de figuras 2 Resumen ejecutivo 3 Español 3 Inglés 3 Descripción del demostrador final 4 Objetivo principal del demostrador 4 Interconexión de los principales módulos desarrollados 4 Diagrama general de interconexión 4 Servidor RTP Streaming 4 Detección de instantes para espacios publicitarios 5 Splicer 6 Gestor de campañas publicitarias 8 Protección de flujos RTP 8 Reproductor de video 8 Prototipo 10 Conclusiones 10 Página 1 de 11
Índice de figuras Ilustración 1: Primera parte de interconexiones del sistema... 4 Ilustración 2: Pasos del proceso... 5 Ilustración 3: Inserción de marcas... 7 Ilustración 4: Máquina virtual... 7 Ilustración 5. Integración de módulos.... 9 Ilustración 6. Integración funcional de módulos.... 9 Página 2 de 11
Resumen ejecutivo Español El presente documento describe el proceso de integración de los diferentes módulos desarrollados a lo largo del proyecto, especificando de esta manera su interconexión, funcionamiento y equipamiento necesario para llevar a cabo la instalación y la prueba piloto de validación de los desarrollos realizados. Inglés This document describes the integration process of the different developed modules during the project, with a detailed description of the equipment needed and connection diagram in order to validate and test the final project demonstrator. Página 3 de 11
Descripción del demostrador final Objetivo principal del demostrador El demostrador está representado por un portal web que expone y concentra las funcionalidades particulares correspondientes a los desarrollos de los socios del proyecto. El demostrador relativo al reproductor de vídeo tiene como objetivo principal permitir a un usuario acceder a una plataforma web, bien desde un dispositivo móvil o PC, donde manualmente define su perfil asociado. En determinado momento, el usuario puede solicitar la visualización de un stream de vídeo en concreto dentro del cual la publicidad que recibida estará determinada en función del perfil definido anteriormente. Las funcionalidades específicas del demostrador del reproductor de vídeo y su utilización se encuentran descritas en el documento correspondiente a E.3.1. Componentes software de la Arquitectura. Interconexión de los principales módulos desarrollados Diagrama general de interconexión Servidor RTP Streaming El módulo de servidor así como el gestor de los procesos de codificación y carga de contenido se sitúan en la primera parte de interconexiones del sistema para comenzar la cadena de funciones que dan lugar al servicio. Ilustración 1: Primera parte de interconexiones del sistema Los pasos de este proceso se dividen en: Página 4 de 11
Codificación / Carga del contenido: a partir de un fichero digitalizado se procede a la carga del contenido al módulo de codificación en el servidor de almacenamiento. Encoder: un software de codificación en servidor procesa el video y da salida a un formato mp4 encapsulado en MPEG-TS. Los videos son transferidos desde los servidores de codificación al módulo de Segmentación Temporal para la detección y marcación de espacios publicitarios A partir de la información referida tras este proceso de selección de instantes de pausa, el video se transfiere a los servidores de streaming para su encapsulamiento en RTP conte nido proce sado SERVIDOR DE ALMACENAMIENTO Content Upload C O N TE NI D O C O DI FI C ENCODER MÓDULO A DE P SEGMENTACIÓN A D O IN F O R M A CI Ó N D E U S A S Contenido con oportunidades (avails) Ilustración 2: Pasos del proceso Detección de instantes para espacios publicitarios El módulo que ha sido desarrollado para detectar instantes de tiempo en los que insertar pausas publicitarias dentro de una secuencia de vídeo se utiliza en la etapa inicial des sistema, dedicada a la preparación de contenidos (ver figura 1 del entregable E.2.1). Este módulo puede ser ejecutado en cualquier ordenador con las características software descritas en el entregable E.3.1. Los datos de entrada al módulo son las secuencias de vídeo originales, en formato avi. Tras su ejecución, genera como salida dos ficheros, cuyos contenidos y usos se detalla a continuación: Fichero xml: Página 5 de 11
1. Contiene información de la secuencia analizada (duración, resolución, etc.) y, además, indica los instantes de tiempo en los que hay que insertar la publicidad dummy que es sustituida en etapas posteriores con los anuncios determinados por el gestor de publicidad. La estructura de estos ficheros es la siguiente: <SeqInfo> <Name>Nombre de la secuencia</name> <NumFrames>Número de imágenes de la secuencia</numframes> <fps>número de imágenes por segundo</fps> <Duration>Duración, en milisegundos, de la secuencia</duration> </SeqInfo> <CommertialMoments> <NumMoments>Número de pausas publicitarias</nummoments> <Moment1> <Frame>Imagen en la que insertar la de la pausa (considerando que se empieza a numerar por cero)</frame> <Time>Instante, en milisegundos, correspondiente a la imagen indicada en el campo previo</time> </Moment1> <Moment2> </Moment2> </CommertialMoments> Fichero txt: 1. Contiene una lista de cue messages según la norma SCTE-35 (la descripción detallada del contenido de estos mensajes aparece en el entregable E.2.3) que son utilizados en etapas posteriores para indicar la ubicación y duración de las pausas publicitarias dentro del flujo RTP de las secuencias. Splicer El Servidor se integra completo en una máquina virtual proporcionada por Alcatel-Lucent donde se realizan todas las transcodificaciones requeridas para proporcional el Splicing de video siguiendo el estándar SCTE-35. El contenido carece de identificación de las ventanas de oportunidad para insertar publicidad. Alcatel-Lucent ha desarrollado un componente que inserta en el contenido las marcas de oportunidad con la entrada facilitada por el modulo de detección de oportunidades, que identifica a nivel de frame los instantes mas adecuados para la inserción de la publicidad personalizada. El Componente que realiza la señalización de las oportunidades SCTE35 es el siguiente: # Usage: /opt/src/perforce/vxoa/eden/evepoc/bin/rewrap [opts] <input_url> <output_url> # -scte35cue <id> <preroll> <out> <dur> Inserts an SCTE35 Cue with given params # <id> is splice_id, preroll & dur in ms, <out> in 90kHz ticks Página 6 de 11
i.e.: /opt/src/perforce/vxoa/eden/evepoc/bin/rewrap -scte35cue 1 15000 16326000 60000 - scte35cue 1 15000 32526000 60000 -scte35cue 1 15000 48726000 60000 -scte35cue 1 15000 64926000 60000 /opt/store/movies/$filename/"$filename"_"$quality".ts /opt/store/movies/$filename/"$filename"_"$quality"_scte35.ts Ilustración 3: Inserción de marcas Una vez señalizadas las oportunidades de publicidad otro modulo desarrollado por Alcatel-Lucent lee el contenido Original del video bajo demanda en formato Transport Stream y también el contenido del anuncio que se desea insertar y realiza a nivel de Transport Stream la sustitución del video original en el contenido de Video Bajo demanda por el anuncio facilitado por el sitema de gestión de publicidad y lo sustituye en formato Transport Stream, antes de realizar su distribución en la red de distribución de contenidos. En la máquina virtual se integra una bomba de video, un Origin Server y el Segmentador/Splicer que realiza las tareas de personalización del canal primario. Ilustración 4: Máquina virtual Página 7 de 11
Gestor de campañas publicitarias El sistema de Alcatel-Lucent sustituirá en el contenido del video bajo demanda original el contenido original por el anuncio señalizado por el anuncio facilitado por el sistema de gestión de publicidad externo. Dependiendo del perfil del abonado que posteriormente solicite el contenido de Video Bajo Demanda, el sistema facilitado enviara el contenido ya personalizado para dicho perfil. El interfaz implementado con el usuario final para enviar el contenido es http://ip_origin:8100/vod_guilliverstravels/guilliverstravels/hls/playlist.m3u8?vxsid=2 Donde el perfil del abonado que solicita el contenido de video bajo demanda viene identificado por el ultimo parámetro de la URL. Por tanto la integración con el Gestor de campanas publicitarias require tan solo que la URL solicitada incluya un identificador con el perfil del cliente que esta realizando la petición. El sistema automáticamente le enviara ese contenido personalizado ya para ese perfil. Protección de flujos RTP El módulo de transmisión, que se ocupa además de la generación de la protección del contenido multimedia recibe como entrada del sistema la secuencia de vídeo encapsulada en MPEG2- Transport Stream (TS) con los anuncios correspondientes dadas las características del cliente concreto al que el contenido va dirigido ya integrados. La salida de este módulo se compone es un par de flujos de paquetes, el principal, formado por los datos de la secuencia de vídeo, y el secundario, compuesto por redundancia creada para la recuperación de información perteneciente al flujo principal. Ambos flujos van encapsulados en RTP. El módulo de recepción recoge ambos flujos y presenta a su salida un flujo de vídeo que suma los paquetes que fueron recibidos correctamente y los que ha sido posible recuperar gracias a la protección añadida. Este conjunto de datos es una secuencia de paquetes encapsulados en TS, que, en caso de ser capaz de recuperar todos los paquetes perdidos, será igual a la secuencia original que el módulo de transmisión tomó a su entrada. Este flujo es leído por el reproductor VLC para su presentación al usuario final. Reproductor de video De manera simplificada, el portal web correspondiente al reproductor web integra el módulo servidor de streams mediante invocaciones a la máquina virtual proporcionada por Alcatel (ver siguiente Figura). A partir de las interacciones de usuario relativas a la selección de vídeos, se solicita a la máquina virtual de Alcatel una secuencia u otra. El streaming recibido es entonces renderizado como fuente del reproductor web. Página 8 de 11
Ilustración 5. Integración de módulos. Respecto a la integración funcional, la siguiente Figura ilustra las etapas de utilización del demostrador con el fin de mostrar la integración con el módulo servidor de streams. Ilustración 6. Integración funcional de módulos. Página 9 de 11
Como puede apreciarse, el módulo reproductor web inicia realizando las funciones de autenticación y gestión de perfil de usuario (creación de ficheros JSON) y es precisamente en el momento en que el usuario solicita el visionado de un stream en particular que la integración toma lugar. El módulo reproductor web envía dentro de la petición de stream, el identificador del perfil de usuario, esto permite al servidor de stream servir el vídeo solicitado e insertar la publicidad correspondiente. Prototipo El prototipo del demostrador que se ha generado para ilustrar la integración de los distintos componentes puede encontrarse en: http://youtu.be/qs6lotece0y El vídeo muestra, sólo a efectos demostrativos, una posible integración de los componentes desarrollaos. El uso que se le puede dar a los distintos componentes puede variar según el contexto y motivaciones. Conclusiones A lo largo de este documento se ha detallado la integración de los módulos que forman parte del sistema del proyecto y se ha mostrado un demostrador final que ilustra una de las posibles integraciones de los distintos componentes del sistema. Otras integraciones y otros usos son posibles dependiendo del contexto, objetivo y motivaciones en el uso de los distintos componentes que se han desarrollado en el presente proyecto. Página 10 de 11