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¶
Concepto:
Descarga Directa (archivo)
Streaming (continuo)
Red de Difusión (TV) vs Red Internet
Usos (distribuir contenidos)
Música
Radio
TV
Plataformas de Streaming ( Comparativa Plataformas Video )
Resolución
Dispositivos (concurrentes)
Forma de Acceso (Web / App)
Parámetros de la conexión (¿ Qué necesito ?)
Ancho de Banda
Latencia
Muy exigente en recursos (lo que más)
Los problemas DRM ( derechos digitales )
Quién accede a la copia (autenticar)
Autorizar el acceso (autorizar)
En qué condiciones (auditar)
Actividad. Estudiar Documentación
Repasa la documentación de la clase
¿Sabes distinguir la diferencia entre descarga directa y streaming?
¿Me dices algún sistema de radio por Internet?
¿De tv o de video?
¿Qué plataforma de streaming escogerías y porqué?
¿Qué resolución es Full HD?
¿Qué ancho de banda necesitas para ver youtube HD?
¿Qué sistema DRM usa Netflix?
9.2. Arquitectura del Sistema¶
Fuentes de Audio y Video:
Almacenado (streaming): sistema de archivos
Directos (live streaming): micrófono, cámara, pantalla, etc
Y más (efectos, escenas, etc)
Elementos:
Códecs Audio : P.ej. Opus
Códecs Video : P.ej. VP8
Contenedores (audio + video): P.ej. WebM o listas M3u
Transporte
Control
Protocolos:
Integración en la Web:
Uso de Redes CDN y direccionamiento Multicast
Actividad. Componentes servicio de streaming
Repasa la documentación (son varios enlaces).
Dime un ejemplo de códec de audio
Dime un ejemplo de códec de video
Dime un ejemplo de formato contenedor (tipo de archivo y códecs)
¿En qué puerto sirve el protocolo RTP? ¿Y HLS?
¿Hay más protocolos de streaming?
¿Cuál usará Netflix?
¿Qué códec de audio usará Spotify?
9.3. Clientes Multimedia¶
Historia
Componentes
Códecs soportados
Uso
Actividad. Instalar VLC
Instala VLC y me enseñas que puedes abrir (en local y en remoto):
En disco:
Un video
Un audio
En remoto:
Ver listas m3u8 ( alguna de estas o estas )
Ver videos de youtube con VLC
9.4. Edición de audio y video¶
Video Clase
La Utilidad ffmpeg es una colección de software:
Como una navaja suiza multimedia (muy completa)
Te permite editar Audio y Video de forma automatizada (programable)
Y además sirve como infraestructura multimedia:
Captura: Graba (de diferentes fuentes)
Procesa: Codifica y Convierte (entre formatos)
Publica: Sirve Streaming
El comando ffmpeg se puede usar para muchas funciones:
Obtener información de un video
Convertir entre formatos diferentes
Modificar la calidad del video
Modificar el tamaño, la orientación, etc
Extraer (o modificar) los flujos de audio
Recortar los flujos de audio o video
Extraer fotogramas (imágenes)
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) :
Guárdalo en formato FLAC y Vorbis
Qué bitrate y tamaño tiene el formato FLAC
Qué bitrate y tamaño tiene el formato Vorbis
Quítale 10 segundos al final del archivo
Auméntale el volumen un 150% al audio
Aplícale el efecto de un filtro al audio
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 ):
Tranforma un video de un formato a otro (por ejemplo de .avi a .webm)
Revisa la información del nuevo archivo (contenedor webm)
Cambia la tasa de calidad del audio y/o del video (puedes transcodificar o no)
Extrae sólo el audio de un video (o elimínalo). Revisa que hay un flujo (stream) menos.
Redimensiona el tamaño (cambia la resolución) de un video sin que se deforme el formato
Haz un clip de un video (unos segundos). Es decir, recorta el video.
Extrae un fotograma por cada segundo de video
Inserta una imagen como marca de agua en un video
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
Multiplataforma y muy potente
Captura fuentes de video y audio en tiempo real, compone escenas y añade filtros
Codifica ( x264 ) , graba y retransmite (RTMP)
Se conecta con plataformas de streaming (youtube, vimeo, twitch, etc)
A nivel de infraestructura:
Uso de ffmpeg con protocolos de streaming
Tu biblioteca de Audio y Video en Internet (Ampache )
Uso de plataforma web para streaming:
Uso de HLS (crear listas m3u8 ) y ver con cliente (p.ej. VLC)
Uso de reproductor HLS (con javascript)
A nivel CDN (IaaS): por ejemplo con CloudFare / ¿ Qué es ?
Almacena
Codifica
Reproduce
Actividad. Usar HLS con Apache