9. Servicios de Streaming (Audio y Video)#

9.1. ¿De qué va este tema?#

Se trata de estudiar y administrar un servicio de streaming de audio y video. El objetivo final es publicar audio y video en internet.

9.2. Clases#

Le dedicaremos unas 12 sesiones de clase

9.2.1. Streaming#

  1. Concepto:

    1. Descarga Directa (archivo)

    2. Streaming (continuo)

  2. Red de Difusión (TV) vs Red Internet

  3. Usos (distribuir contenidos)

    1. Música

    2. Radio

    3. TV

  4. Plataformas de Streaming ( Comparativa Plataformas Video )

    1. Resolución

    2. Dispositivos (concurrentes)

    3. Forma de Acceso (Web / App)

  5. Parámetros de la conexión (¿ Qué necesito ?)

    1. Ancho de Banda

    2. Latencia

    3. Muy exigente en recursos (lo que más)

  6. Los problemas DRM ( derechos digitales )

    1. Quién accede a la copia (autenticar)

    2. Autorizar el acceso (autorizar)

    3. En qué condiciones (auditar)

Actividad. Estudiar Documentación

Repasa la documentación de la clase

  1. ¿Sabes distinguir la diferencia entre descarga directa y streaming?

  2. ¿Me dices algún sistema de radio por Internet?

  3. ¿De tv o de video?

  4. ¿Qué plataforma de streaming escogerías y porqué?

  5. ¿Qué resolución es Full HD?

  6. ¿Qué ancho de banda necesitas para ver youtube HD?

  7. ¿Qué sistema DRM usa Netflix?

9.2.2. Arquitectura del Sistema#

  1. Fuentes de Audio y Video:

    1. Almacenado (streaming): sistema de archivos

    2. Directos (live streaming): micrófono, cámara, pantalla, etc

    3. Y más (efectos, escenas, etc)

  2. Elementos:

    1. Códecs Audio : P.ej. Opus

    2. Códecs Video : P.ej. VP8

    3. Contenedores (audio + video): P.ej. WebM o listas M3u

    4. Transporte

    5. Control

  3. Protocolos:

    1. RTMP . Propietario (Macromedia Flash). Era muy utilizado

    2. RTP (RFC 2326): Real Time Protocol (+ RTCP)

    3. RTSP (RFC 3550): Real Time Streaming Protocol. UDP para datos y TCP para control

    4. Basados en HTTP:

      1. DASH

      2. HLS (RFC 8216)

  4. Integración en la Web:

    1. HTML5

    2. WebRTC (VideoConferencia) / HLS (streaming)

  5. Uso de Redes CDN y direccionamiento Multicast

Actividad. Componentes servicio de streaming

Repasa la documentación (son varios enlaces).

  1. Dime un ejemplo de códec de audio

  2. Dime un ejemplo de códec de video

  3. Dime un ejemplo de formato contenedor (tipo de archivo y códecs)

  4. ¿En qué puerto sirve el protocolo RTP? ¿Y HLS?

  5. ¿Hay más protocolos de streaming?

  6. ¿Cuál usará Netflix?

  7. ¿Qué códec de audio usará Spotify?

9.2.3. Clientes Multimedia#

VLC Media Player

  1. Historia

  2. Componentes

  3. Códecs soportados

  4. Uso

Actividad. Instalar VLC

Instala VLC y me enseñas que puedes abrir (en local y en remoto):

En disco:

  1. Un video

  2. Un audio

En remoto:

  1. Ver listas m3u8 ( alguna de estas o estas )

  2. Ver videos de youtube con VLC

9.2.4. Utilidad ffmpeg#

  1. Es una colección de software

    1. Graba (de diferentes fuentes)

    2. Codifica y Convierte (entre formatos)

    3. Sirve Streaming

  2. Es como una navaja suiza multimedia (muy completa)

  3. Sirve de infraestructura para otros servicios (tanto clientes como servidores multimedia)

Actividad. Uso de ffmpeg

Uso del comando ffmpeg , por ejemplo:

  1. Obtener información de un video (puedes usar alguna de estas muestras )

    1. ¿Cuánto dura?

    2. ¿Qué tasa de transferencia es necesaria?

    3. ¿Qué tipo de codificación de video usa? ¿A qué resolución? ¿Cuántos fps? ¿Qué bitrate?

    4. ¿Qué tipo de codificación de audio usa? ¿A qué frecuencia de muestreo? ¿A qué bitrate?

    5. ¿Cuántas fuentes de entrada tiene? ¿Cuántos flujos cada fuente?

  2. Tranforma un video de un formato a otro (por ejemplo de .avi a .mp4)

  3. Revisa la información del nuevo archivo (contenedor mp4)

  4. Cambia la tasa de calidad del audio y/o del video (puedes transcodificar o no)

  5. Extrae sólo el audio de un video (o elimínalo). Revisa que hay un flujo (stream) menos.

  6. Redimensiona el tamaño (cambia la resolución) de un video, sin que se deforme el formato

  7. Haz un clip de un video (unos segundos). Es decir, recorta el video.

  8. Extrae un fotograma por cada segundo de video

  9. Inserta una imagen como marca de agua en un video

  10. Añade un efecto de video (fade in/out)

9.2.5. Servir Audio y Video usando Streaming#

A nivel usuario (streamer): Open Broadcaster Studio / OBS

  1. Multiplataforma y muy potente

  2. Captura fuentes de video y audio en tiempo real, compone escenas y añade filtros

  3. Codifica ( x264 ) , graba y retransmite (RTMP)

  4. Se conecta con plataformas de streaming (youtube, vimeo, twitch, etc)

A nivel de infraestructura:

  1. Uso de ffmpeg con protocolos de streaming

  2. Tu biblioteca de Audio y Video en Internet (Ampache )

  3. Uso de plataforma web para streaming:

    1. Uso de HLS (crear listas m3u8 ) y ver con cliente (p.ej. VLC)

    2. Uso de reproductor HLS (con javascript)

A nivel CDN (IaaS): por ejemplo con CloudFare / ¿ Qué es ?

  1. Almacena

  2. Codifica

  3. Reproduce

Actividad. Usar HLS con Apache

Instalar un servicio de streaming