Voici la prise en charge de MPEG-DASH pour le streaming adaptatif
Nous sommes heureux d’annoncer la sortie d’une version bêta de notre nouveau Robot /video/adaptive, qui apporte la prise en charge tant attendue du standard de streaming MPEG-Dash !
L’utilisation du Robot /video/adaptive est très simple.
Il vous suffit de rediriger les Steps /video/encode et
/audio/encode vers ce Robot, qui générera pour vous des
segments MP4 fragmentés ainsi que le fichier manifeste MPD. Si vous transmettez ensuite la sortie du
Robot à un Robot de stockage de votre choix – et utilisez
l’Assembly Variable ${file.meta.relative_path} dans le paramètre path du Robot de stockage –,
tous les fichiers seront stockés au bon emplacement les uns par rapport aux autres, afin que le
fichier manifeste fonctionne correctement.
Pour la lecture dans un navigateur depuis une autre origine, configurez également votre fournisseur de stockage avec les paramètres CORS requis.
Entrons dans le vif du sujet avec un exemple de Template :
L’exemple utilise la pile FFmpeg actuellement recommandée. Créez un
ensemble d’informations d’identification de Template S3 nommé s3_cred pour votre bucket
de destination.
{
"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"
}
}
}
Comme vous pouvez le voir dans ce Template, nous créons deux versions vidéo à débit élevé de la vidéo d’entrée, ainsi que deux versions audio uniquement. Pour vous aider avec les paramètres d’encodage, nous avons ajouté de nouveaux préréglages spéciaux, conçus spécifiquement pour MPEG-Dash, aux Robots /video/encode et /audio/encode. Comme d’habitude, vous pouvez toutefois remplacer ces paramètres par vos propres réglages FFmpeg personnalisés.
Voici les formats et codecs que vous pouvez actuellement transmettre au Robot /video/adaptive pour une utilisation avec MPEG-Dash :
- Formats :
mp4etwebm - Codecs vidéo :
h264,hevc,vp8,vp9 - Codecs audio :
aac,ac3,vorbis - Les DRM ne sont actuellement pas pris en charge, mais nous les ajouterons probablement plus tard
Le Robot vous permet non seulement de modifier la durée des segments (par défaut : 10 secondes), mais aussi le nom des fichiers manifestes, car un meilleur contrôle sur le nom de ce fichier pourrait être important pour votre site web en raison de contraintes liées au lecteur ou de la compatibilité avec des solutions existantes. Les noms des fichiers de segment, en revanche, sont définis par le Robot lui-même et ne peuvent pas être contrôlés directement pour le moment.
Vous pouvez voir l’exemple de Template ci-dessus en action dans cette démo (English). Vous y trouverez également des instructions pour lire le fichier manifeste.
Lorsque vous voudrez passer aux choses sérieuses, rendez-vous auprès du Robot /video/adaptive et consultez sa documentation pour découvrir tous les préréglages et paramètres.
Bien que ce Robot soit encore en version bêta, sa sortie nous enthousiasme beaucoup ! Nous espérons que vous lui réserverez un accueil chaleureux, et n’hésitez pas à nous faire part de vos observations via la bulle de discussion sur notre site ! Le Robot /video/adaptive est flexible et, en plus de DASH, prend même en charge le HTTP Live Streaming (HLS) d’Apple. Nous en reparlerons dans un autre article de blog. 😄
