Vous êtes sur la page 1sur 48

Unidad 2: STREAMING

 Introducción.
 Tipos de Streaming: Lineal (vivo) No Lineal (VoD).
 Arquitectura típica de Streaming y sus componentes.
 La metodología Pull y Push: protocolos relacionados.
 Familia de protocolos RTP (RTSP, RTCP, RTMP).
 Bit Rate Adaptativo
 Familia de protocolos adaptativos (DASH, HLS, HDS).
 Software de streaming.
 Multicast IGMP.
 Ley de Zipf
 Eficiencia P2P
 Servicios de streaming.
Introducción.
 Con el aumento en la demanda de contenidos en las redes de computadoras, se
desarrollaron formas para comprimir los mismos de manera tal que puedan ser
consumidos de forma eficiente (encoding).
 Para ver un video o un audio, se tenia que descargar el archivo comprimido y
hasta que el mismo no estaba totalmente almacenado, no se podía reproducir
(descarga tradicional).
 Luego se empezaron a utilizar técnicas para reproducir el contenido
progresivamente desde internet (descarga progresiva).
 Finalmente, se implemento la técnica de Streaming, que a grandes rasgos se trata
de que el flujo de datos consumido desde la red se reproduzca en tiempo real. Es
decir no se almacena el contenido para reproducirlo.
Descarga tradicional
 Al hacer click sobre un hipervínculo que apunta a un archivo, el HTTP del browser
establece primero una conexión TCP con el http del servidor que aparece en el
link.
 Se envía mediante un mensaje de petición GET para descargar el archivo. El
servidor responde enviando el contenido del archivo en un mensaje de respuesta
al GET solicitado.
Ejemplo descarga Winrar:
Descarga Progresiva

 Se hace la descarga hacia la memoria


de reproducción del reproductor (buffer)
y no desde el navegador web como una
descarga tradicional.
 Esta memoria del reproductor es
conocida como buffer y a medida que
se va llenando, el contenido se va
reproduciendo.
 Esta técnica utiliza todo el AB disponible
entre el cliente y el servidor. No se puede
controlar. Si el AB es pequeño, la
reproducción puede verse de a saltos.
Streaming Tradicional
 Es una tecnología que permite la reproducción del contenido en tiempo real sin
que se almacene el contenido.
 El audio y video se reciben en fragmentos que se almacenan en el buffer, se
reproducen y se descartan.
 Los protocolos de Streaming entienden como llegan los fragmentos y los
reproducen correctamente. El protocolo mas utilizado en este caso es RTSP.
La clave: Paquetización
 Es el concepto mas importante del streaming, ya que gracias a esta técnica, se
puede tener control del contenido (play, pausa, etc.) y no se consume todo el
AB para reproducirlo como en el caso de la descarga progresiva.
Unidad 2: STREAMING
 Introducción.
 Tipos de Streaming: Lineal (vivo) No Lineal (VoD).
 Arquitectura típica de Streaming y sus componentes.
 La metodología Pull y Push: protocolos relacionados.
 Familia de protocolos RTP (RTSP, RTCP, RTMP).
 Bit Rate Adaptativo
 Familia de protocolos adaptativos (DASH, HLS, HDS).
 Software de streaming.
 Multicast IGMP.
 Ley de Zipf
 Eficiencia P2P
 Servicios de streaming.
Servicios de Streaming Live
 En directo (live): Similar a un canal de televisión o
una estación de radio. Esta orientado a la
multidifusion (unicast o multicast):
 Unicast: se envía un flujo de información a cada
usuario.
 Multicast: se envía un flujo único de información.
 El servidor comienza a transmitir en un instante
dado y los usuarios ven la información que se
esta emitiendo.
 En este tipo de servicio no existe interacción.
Unicamente se le permite realizar
pausas(cuando el usuario recupere la
reproducción podrá ver la información que se
está transmitiendo en ese instante)
Streaming Live:
Clasificación Streaming Live

 Según el tipo de señal


 Con información en vivo
 Con información almacenada

 Según el tipo de transmisión:


 Unicast
 Multicast
Servicios de Streaming VoD
 Bajo demanda(On-Demand o VoD): Similar a un reproductor de video. Los usuarios
solicitan el envío del archivo en cualquier instante, no necesitan esperar a que el
servidor lo transmita.
 Es Punto a Punto(Unicast): El usuario puede interactuar (pausar, avanzar, retroceder,
etc.)
Unidad 2: STREAMING
 Introducción.
 Tipos de Streaming: Lineal (vivo) No Lineal (VoD).
 Arquitectura típica de Streaming y sus componentes.
 La metodología Pull y Push: protocolos relacionados.
 Familia de protocolos RTP (RTSP, RTCP, RTMP).
 Bit Rate Adaptativo
 Familia de protocolos adaptativos (DASH, HLS, HDS).
 Software de streaming.
 Multicast IGMP.
 Ley de Zipf
 Eficiencia P2P
 Servicios de streaming.
Arquitectura típica de Streaming
Modelo general de distribución multimedia
Arquitectura
Tipos de Arquitectura
 Arquitectura típica
 Con servidor y cliente
 Arquitectura sin servidor (server-less)
 No hay servidor de A/V
 Se sirve mediante un servidor web.
 Da lugar a servicios de pseudo-streaming o fast-start. (poner ejemplo)
 Arquitectura sin cliente (client-less)
 No se necesita un reproductor instalado, ya que el web server lo contiene.
 Se utiliza para visualizar un applet Java o un plugin (p.e. Flash).
Componentes
 Codecs: son archivos residentes en el Host cliente que interpretan el contenido
multimedia y hacen posible su reproducción.
 Protocolos: HTTP, RTSP, RTP, RTCP, TCP, UDP. Siendo los protocolos UDP, RTSP (Real
Time Transffer Protocol) los mas importantes.
 Precarga: el cliente precarga o almacena el archivo multimedia en un buffer de
datos antes de reproducirlo, con el fin de evitar interrupciones y mala calidad de
reproducción debido a la congestión de la red (Lag).
 Red de datos: A mayor usuarios que usuarios consumiendo del mismo servidor, se
producirá mucho Lag.
 Segmentación: la información multimedia es segmentada, para luego ser
enviada como paquetes a la red los cuales el cliente recibe y reproduce
inmediatamente.
Sistema de producción
 Genera los flujos de audio/vídeo que se van a transmitir
 Tipos de producción:
 Para almacenar
 Para emitir en directo
 Hardware
 Elementos de adquisición: cámaras, micrófonos, capturadoras
 Software
 Software de edición
 Software de producción para transmisión mediante streaming
Tipos de Producción
 Para almacenamiento:
 Genera los flujos de audio/vídeo en formato para streaming y los
almacena.
 Para emisión en directo:
 Transmite los flujos hacia el o los servidores.
 Se puede recibir la entrada de un sistema de captura convencional o
de un sistema de almacenamiento (ver que quiere decir esto)
 Se puede almacenar y emitir en directo simultáneamente (Flow)
Proceso de Producción
Componentes del Cliente
 Recepción
 Recibe la información solicitada por el usuario
 Presentación
 Reproduce la información recibida de forma temporizada
 Proporciona un interfaz para que el usuario interaccione
 Buffer
 Se utiliza para controlar la calidad del servicio
Buffer
 El buffer se carga antes de
comenzar la reproducción
 Cuando el buffer se vacía, se
detiene la reproducción para
recargarlo (fallo de reproducción)
 El buffer amortigua posibles retrasos
en la llegada de paquetes (por
problemas en la red o sobrecarga
en el servidor)
 Habitualmente existen buffers tanto
de audio como de vídeo
 El tamaño del buffer debe
balancear tiempo de arranque y
calidad de reproducción
Buffer
 El buffer se carga antes de comenzar la reproducción
 Cuando el buffer se vacía, se detiene la reproducción para recargarlo (fallo de reproducción)
VER
 El buffer amortigua posibles retrasos en la llegada de paquetes (por problemas en la red o
sobrecarga en el servidor) (como lo hace?)
 Habitualmente existen buffers tanto de audio como de vídeo

 Poner ejemplo de funcionamiento del buffer.


Unidad 2: STREAMING
 Introducción.
 Tipos de Streaming: Lineal (vivo) No Lineal (VoD).
 Arquitectura típica de Streaming y sus componentes.
 La metodología Pull y Push: protocolos relacionados.
 Familia de protocolos RTP (RTSP, RTCP, RTMP).
 Bit Rate Adaptativo
 Familia de protocolos adaptativos (DASH, HLS, HDS).
 Software de streaming.
 Multicast IGMP.
 Ley de Zipf
 Eficiencia P2P
 Servicios de streaming.
Push o Pull
Un punto importante en la gestión de video para hacer difusión, es la
elección del protocolo que mejor se adapte a lo que vamos a
implementar.
De esto dependerá el tipo de dispositivos que podrán reproducir el video
que transmitiremos, su calidad y si se podrá utilizar aplicaciones existentes
o será preciso crearlas.

Lo protocolos para transmisión de video multmedia se dividen en 2 clases:


 Protocolos tipo Push o Push-based
 Protocolos tipo Pull o Pull-based
Protocolos de Streaming tipo Push

En este caso, una vez iniciado el Streaming y se establece la


conexión entre cliente y servidor, el servidor envía paquetes al cliente
de modo constante hasta que éste lo detiene o interrumpe la sesión.
Así, la conexión de la sesión entre el servidor y el cliente se mantiene
mientras éste último envía comandos respecto a cambios del estado
de la sesión.
Los principales protocolos que usan esta tecnología son los de la
familia RTP sobre UDP, lo que simplifica el funcionamiento pero al no
ser orientado a conexión, no hay mecanismos de control.
Protocolos mas usados
Familia RTP (comúnmente para Push):
 RTP (Real Time Transport Protocol)
 RTCP (RTP Control Protocol)
 RTMP (Real Time Messaging Protocol)
 RTSP (Real Time Streaming Protocol)
Protocolos para Pull:
 MPEG-DASH (Dynamic Adaptive Streaming over HTTP)
 HLS (HTTP Live Stream)
 HDS (HTTP Dynamic Streaming)
Unidad 2: STREAMING
 Introducción.
 Tipos de Streaming: Lineal (vivo) No Lineal (VoD).
 Arquitectura típica de Streaming y sus componentes.
 La metodología Pull y Push: protocolos relacionados.
 Familia de protocolos RTP (RTSP, RTCP, RTMP).
 Bit Rate Adaptativo
 Familia de protocolos adaptativos (DASH, HLS, HDS).
 Software de streaming.
 Multicast IGMP.
 Ley de Zipf
 Eficiencia P2P
 Servicios de streaming.
Família de protocolos RTP

El protocolo RTP (Real-time Transport Protocol) es un protocolo


utilizado para el envío de audio y video sobre redes IP diseñado para
hacer streaming multimedia en tiempo real y de extremo a extremo.
Es muy utilizado en aplicaciones tanto de comunicación (telefonía,
video conferencia, etc) como de entretenimiento.
Puede utilizarse junto a RTCP (RTP Control Protocol) de la siguiente
manera:
RTP se encarga de los flujos multimedia (audio y video), y RTCP se
utiliza para sincronizar cuando tenemos flujos simultáneos, monitorear
las estadísticas de la transmisión y hacer calidad de servicio (QoS, por
sus siglas en inglés).
Família de protocolos RTP

Otro protocolo perteneciente a esta familia es RTSP (Real Time


Streaming Protocol) cuya principal función es controlar el flujo en los
servidores multimedia.
Se usa para el establecimiento y control de las sesiones multimedia
entre ambos extremos.
Estos tres protocolos: RTP, RTCP y RTSP están estandarizados y
funcionan en diferentes puertos.
Adicionalmente, ni Android ni iOS son compatibles con ellos por lo
que al día de hoy no tienen reproductores propietarios compatibles.
Protocolo RTP (RFC 1889)
 Objetivos
 Ligero: Implementación simple.
 Flexible: No indica algoritmos
 Neutral: respecto al transporte
 Escalable: Unicast, multicast, broadcast
 Características
 Datos:
 Temporización
 Detección de perdidas
 Etiquetado de contenidos

 Control
 Realimentación de QOS
 Estimación de miembros y detección de bucles.
Protocolo RTP (RFC 1889)
 Funcionalidad:
 Segmentación realizada
por UDP ó IP
 Re-secuenciación de
paquetes.
 Detección de perdidas
para estimación posterior.
 Sincronización entre
medios
 Sincronización labios y
control de retrasos
 Realimentación de QoS y
Velocidad
 Identificación de la fuente.
Flujos RTP en una videoconferencia
Protocolo RTSP (RFC 2326)
 El protocolo RealTime Streaming Protocol es el encargado de interactuar con el
usuario a la hora de controlar el contenido multimedia, ya que la comunicación
con el servidor de streaming es bidireccional.
 De esta forma los clientes pueden pedir al servidor hacer cosas como rebobinar
la película, saltar al siguiente capítulo, etc.
 Una fortaleza del streaming es que el medio no se descarga linealmente sino
que se reproduce conforme se obtiene, lo que permite saltos en la
reproducción, consiguiendo un acceso aleatorio al contenido, incluso en saltos
hacia delante.
 De esta forma quedan definidos dos canales de comunicación entre los clientes
y el servidor de streaming:
 Un canal para el control de sesión(RTSP)
 Un canal para la transmisión de la información.(RTP/UDP/TCP)
RTSP (Real Time Streaming Protocol)

Funciona como un control remoto para los servidores de streaming.


Establecimiento de las conexiones.
 Canal para el control de los flujos multimedia:
 Canal bidireccional
 Recibe las interacciones del cliente y transmite las respuestas.
 Canales para el envío de los datos multimedia:
 Unidireccional
 El servidor transmite la información multimedia cuando las interacciones del cliente lo
requieren
Propiedades
 Extensible: se pueden agregar nuevos parámetros fácilmente RSTP.
 Seguro: RTSP reutiliza mecanismos de seguridad web ya sea de los protocolos de
transporte (TLS) o dentro del mismo protocolo.
 Independiente del protocolo de transporte: RTSP puede usar indistintamente
protocolos de datagrama no fiables (UDP) o datagramas fiables (RUDP, no muy
extendido) o un protocolo fiable orientado a conexión como el TCP.
 Capacidad multi-servidor: Cada flujo multimedia dentro de una presentación
puede residir en servidores diferentes, el cliente automáticamente establece varías
sesiones concurrentes de control con los diferentes servidores, la sincronización la
lleva a término la capa de transporte.
 Control de dispositivos de grabación: El protocolo puede controlar dispositivos de
grabación y reproducción (p.ej cámaras IP RTSP).
Similitudes con HTTP
 Formato de las peticiones/respuestas:
 Línea de petición + cabeceras + cuerpo
 Códigos de estado
 Mecanismos de seguridad
 Formato de la URL
 Negociación de los contenidos
 Su sintaxis es muy similar
Funcionamiento.
 Al no ser orientado a
conexión, mantiene una
sesión asociada a un
identificador.
 En la mayoría de los casos
usa TCP para control y UDP
para envío de flujo de
información.
 Soporta mecanismos de
seguridad (TLS/SSL) y
autenticación HTTP 1.1.
 Es muy similar a HTTP, pero
RTSP necesita mantener el
estado de conexión.
Peticiones RTSP
 DESCRIBE: Obtiene una descripción del contenido multimedia que apunta a la URL RTSP
del servidor. El servidor responde una descripción del recurso solicitado, entre otros
datos la descripción contiene una lista de los flujos multimedia que serán necesarios
para la reproducción. Esta solicitud/respuesta constituye la fase de inicialización del
RTSP.
 SETUP: Especifica cómo será transportado el flujo de datos, la petición contiene la url del
flujo multimedia y una especificación de transporte, esta especificación típicamente
incluye un puerto para recibir los datos RTP (audio o vídeo), y otro para los datos
RTCP(meta-datos). El servidor responde confirmando los parámetros escogidos y llena
las partes restantes, como los puertos escogidos por el servidor. Cada flujo de datos
debe ser configurado con SETUP antes de enviar una petición de PLAY.
 PLAY: Una petición de PLAY provocará que el servidor comience a enviar datos de los
flujos especificados utilizando los puertos configurados con SETUP.
 PAUSE: Detiene temporalmente uno o todos los flujos, de manera que puedan ser
recuperados con un PLAY posteriormente.
 TEARDOWN: Detiene la entrega de datos para la URL indicada liberando los recursos
asociados.
Funcionamiento RTSP
 El cliente selecciona el puerto
UDP para el flujo datos y envía
un RTSP SETUP por el puerto 554
al servidor.
 El servidor le contesta RTSP OK
y elige el puerto UDP para la
trasmisión de datos.
 El cliente manda PLAY y el
servidor contesta con un OK.
 Por UDP se envía el contenido
multimedia en RTP con su
control.
 Cuando el cliente envía Los puertos de control (out-band) y
TEARDOWN se cierra la envío de datos (in-band) son diferentes.
conexión.
Ejemplo RTSP
 Ingresar la URL: rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov
en un reproductor de video como VLC y analizar con Wireshark.
Ejemplo RTSP: TCP Stream
Ejemplo RTSP: TCP Stream
Ejemplo RTSP: DESCRIBE
Ejemplo RTSP: Respuesta SDP
Ejemplo RTSP: TEARDOWN