Presentamos el soporte de MPEG-DASH para streaming adaptativo
¡Nos complace anunciar que se ha publicado la versión beta de nuestro nuevo Robot /video/adaptive, que incluye nuestro tan esperado soporte para el estándar de streaming MPEG-Dash!
Usar el Robot /video/adaptive es muy fácil.
Simplemente conectas los Steps /video/encode y
/audio/encode a este Robot y este generará
por ti segmentos MP4 fragmentados junto con el archivo de manifiesto MPD. Si luego envías la salida
del Robot a un Robot de almacenamiento de tu elección y usas la
Assembly Variable ${file.meta.relative_path} en el parámetro path
del Robot de almacenamiento, todos los archivos se guardarán en la ubicación
correcta unos respecto de otros, lo que garantiza que el archivo de manifiesto funcione.
Para la reproducción en el navegador desde otro origen, configura también tu proveedor de almacenamiento con los ajustes de CORS requeridos.
Vamos directo al grano y veamos un Template de ejemplo:
El ejemplo usa el stack de FFmpeg recomendado actualmente. Crea
credenciales de Template de S3 llamadas s3_cred para tu bucket de destino.
{
"steps": {
"1080p-video": {
"robot": "/video/encode",
"use": ":original",
"ffmpeg_stack": "v7",
"preset": "dash-1080p-video"
},
"720p-video": {
"robot": "/video/encode",
"use": ":original",
"ffmpeg_stack": "v7",
"preset": "dash-720p-video"
},
"32k_audio": {
"robot": "/video/encode",
"use": ":original",
"ffmpeg_stack": "v7",
"preset": "dash-32k_audio"
},
"64k_audio": {
"robot": "/video/encode",
"use": ":original",
"ffmpeg_stack": "v7",
"preset": "dash-64k_audio"
},
"adaptive": {
"robot": "/video/adaptive",
"use": {
"steps": [
"1080p-video",
"720p-video",
"32k_audio",
"64k_audio"
],
"bundle_steps": true
},
"technique": "dash",
"playlist_name": "my_playlist.mpd"
},
"store": {
"robot": "/s3/store",
"use": "adaptive",
"path": "dashtest/${file.meta.relative_path}/${file.name}",
"credentials": "s3_cred"
}
}
}
Como puedes ver en este Template, creamos dos versiones de video con un bitrate alto del video de entrada, además de dos versiones solo de audio. Para ayudarte con los ajustes de encoding, hemos añadido nuevos ajustes preestablecidos especiales a los Robots /video/encode y /audio/encode, específicos para MPEG-Dash. Aunque, como siempre, puedes sobrescribir esta configuración con tus propios ajustes personalizados de FFmpeg.
Estos son los formatos y códecs que actualmente puedes enviar al Robot /video/adaptive para usarlos con MPEG-Dash:
- Formatos:
mp4ywebm - Códecs de video:
h264,hevc,vp8,vp9 - Códecs de audio:
aac,ac3,vorbis - Actualmente no se admite DRM, pero es probable que lo añadamos más adelante
El Robot no solo te permite cambiar la duración de los segmentos (por defecto: 10 segundos), sino también el nombre de los archivos de manifiesto, porque tener un mejor control sobre el nombre de ese archivo podría ser relevante para tu sitio web debido a restricciones del reproductor o a la compatibilidad con soluciones existentes. Sin embargo, los nombres de los archivos de segmento los establece el propio Robot y por ahora no se pueden controlar directamente.
Puedes ver en acción el Template de ejemplo anterior en esta demo (English). Allí también encontrarás instrucciones sobre cómo reproducir el archivo de manifiesto.
Cuando quieras ir en serio, pásate por el Robot /video/adaptive y consulta su documentación para conocer todos los ajustes preestablecidos y parámetros.
¡Aunque todavía está en beta, estamos muy emocionados con el lanzamiento de este Robot! ¡Esperamos que le des una cálida bienvenida y que nos cuentes tus hallazgos a través del globo de chat de nuestro sitio! El Robot /video/adaptive es flexible y, además de DASH, incluso admite HTTP Live Streaming (HLS) de Apple. Más sobre eso en otra publicación del blog. 😄
