Wir stellen vor: MPEG-DASH-Unterstützung für adaptives Streaming
Wir freuen uns, bekannt geben zu können, dass eine Beta-Version für unseren neuen Robot /video/adaptive veröffentlicht wurde, die unsere lang ersehnte Unterstützung für den Streaming-Standard MPEG-Dash enthält!
Der Robot /video/adaptive lässt sich sehr einfach
verwenden. Sie leiten einfach Steps mit
/video/encode und
/audio/encode in diesen Robot, und er erzeugt
für Sie fragmentierte MP4-Segmente zusammen mit der MPD-Manifest-Datei. Wenn Sie die Ausgabe von
diesem Robot anschließend an einen Robot Ihrer Wahl zum
Speichern weitergeben – und dabei die Assembly Variable
${file.meta.relative_path} beim speichernden Robot im Parameter
path verwenden –, werden alle Dateien an der richtigen Position relativ
zueinander gespeichert, sodass die Manifest-Datei funktioniert.
Für die Wiedergabe im Browser von einem anderen Ursprung aus konfigurieren Sie Ihren Speicheranbieter zusätzlich mit den erforderlichen CORS-Einstellungen.
Legen wir gleich los und sehen uns ein beispielhaftes Template an:
Das Beispiel verwendet den aktuell empfohlenen FFmpeg-Stack. Erstellen Sie für Ihren Ziel-Bucket
S3-Template-Zugangsdaten mit dem Namen s3_cred.
{
"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"
}
}
}
Wie Sie in diesem Template sehen, erstellen wir zwei Videoversionen mit hoher Bitrate aus dem Eingabevideo sowie zwei reine Audioversionen. Um Sie bei den Encoding-Einstellungen zu unterstützen, haben wir den Robots /video/encode und /audio/encode neue, spezielle Voreinstellungen eigens für MPEG-Dash hinzugefügt. Wie gewohnt können Sie diese Einstellungen aber mit Ihren eigenen FFmpeg-Einstellungen überschreiben.
Hier sind die Formate und Codecs, die Sie derzeit für die Verwendung mit MPEG-Dash in den Robot /video/adaptive leiten können:
- Formate:
mp4undwebm - Video-Codecs:
h264,hevc,vp8,vp9 - Audio-Codecs:
aac,ac3,vorbis - DRM wird derzeit nicht unterstützt, wir werden es aber wahrscheinlich später ergänzen
Der Robot erlaubt Ihnen nicht nur, die Dauer der Segmente zu ändern (Standard: 10 Sekunden), sondern auch den Namen der Manifest-Dateien, denn eine bessere Kontrolle über den Namen dieser Datei kann aufgrund von Einschränkungen des Players oder der Kompatibilität mit bestehenden Lösungen für Ihre Website relevant sein. Die Namen der Segmentdateien werden jedoch vom Robot selbst festgelegt und lassen sich derzeit nicht direkt steuern.
Sie können das obige beispielhafte Template in dieser Demo (English) in Aktion sehen. Eine Anleitung zur Wiedergabe der Manifest-Datei finden Sie dort ebenfalls.
Wenn Sie richtig loslegen möchten, werfen Sie einen Blick auf den Robot /video/adaptive und seine Dokumentation, um alle Voreinstellungen und Parameter kennenzulernen.
Auch wenn er sich noch in der Beta-Phase befindet, freuen wir uns sehr, diesen Robot zu veröffentlichen! Wir hoffen, dass Sie ihn herzlich willkommen heißen, und freuen uns darauf, über die Sprechblase auf unserer Website von Ihren Erfahrungen zu hören! Der Robot /video/adaptive ist flexibel und unterstützt neben DASH sogar Apples HTTP Live Streaming (HLS). Mehr dazu in einem anderen Blogbeitrag. 😄
