9. Servicios de Streaming (Audio y Video)#

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

Le dedicaremos unas 12 sesiones de clase

9.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. 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.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.4. Edición de audio y video#

Video Clase

  1. La Utilidad ffmpeg es una colección de software:

    1. Como una navaja suiza multimedia (muy completa)

    2. Te permite editar Audio y Video de forma automatizada (programable)

  2. Y además sirve como infraestructura multimedia:

    1. Captura: Graba (de diferentes fuentes)

    2. Procesa: Codifica y Convierte (entre formatos)

    3. Publica: Sirve Streaming

  3. El comando ffmpeg se puede usar para muchas funciones:

    1. Obtener información de un video

    2. Convertir entre formatos diferentes

    3. Modificar la calidad del video

    4. Modificar el tamaño, la orientación, etc

    5. Extraer (o modificar) los flujos de audio

    6. Recortar los flujos de audio o video

    7. Extraer fotogramas (imágenes)

    8. y … mucho más (comando ffmpeg)

Uso de ffmpeg para editar audio

Sobre un archivo de audio disponible en internet y con licencia libre (por ejemplo este en mp3) :

  1. Guárdalo en formato FLAC y Vorbis

  2. Qué bitrate y tamaño tiene el formato FLAC

  3. Qué bitrate y tamaño tiene el formato Vorbis

  4. Quítale 10 segundos al final del archivo

  5. Auméntale el volumen un 150% al audio

  6. Aplícale el efecto de un filtro al audio

  7. Divídelo en clips de 3 sg, donde añades al nombre del archivo _NNNN, siendo NNNN desde 0 a 9999 (de forma secuencial).

Uso de ffmpeg para editar video (o el contenedor multimedia)

Sobre un archivo de video disponible en internet (puedes usar alguna de estas muestras ):

  1. Tranforma un video de un formato a otro (por ejemplo de .avi a .webm)

  2. Revisa la información del nuevo archivo (contenedor webm)

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

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

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

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

  7. Extrae un fotograma por cada segundo de video

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

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

9.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