MPEG-DASH und mp4 zersplittert
Mein Verständnis von fragmentierten mp4 ist, dass es eine einzelne Datei, sondern es intern strukturiert ist, wie Fragmente. Kann mir jemand erklären, wie diese Fragmente können angegangen werden .mpd-Datei für DASH? Die .mpd-Dateien, die ich gesehen habe scheinen die Lösung verschiedener Segmente mit separaten urls, aber eine fragmentierte mp4, kann ich mir vorstellen, würde die gelöst werden müssen, durch die byte-offsets in die gleiche url. Wie funktioniert der browser dann wissen, was mal dem entsprechen was byte-ranges?
- Ich sehe niemand antwortete, Teil 2 deiner Frage "Wie funktioniert der browser dann wissen, was mal dem entsprechen was byte-ranges?" 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ein Beispiel mpd für MPEG-DASH-main-Profil. Die mp4-Datei beschrieben, die von diesem mpd ist eine fragmentierte mp4. Wie Sie sehen :
In
<SegmentURL>
element, die Fragmente angesprochen werden kann, in der url, und Sie können finden, byte-offsets an@mediaRange
Attribut.Den .mpd-Datei hat eine Liste der Segmente mit deren byte reicht, wie oben gezeigt. Um den Zugriff auf die Segmente, die Sie benötigen, um eine Analyse der mediarange-Attribut für jede Zeile, und fordern Sie mit so etwas wie XHR mit setRequestHeader zu geben Sie die byte-Bereich. Mit dieser Methode, es gibt keine server-Komponente benötigt. Hier ist etwas code, den ich benutzt habe:
Server hat ein manifest erstellt werden können durch das Scannen der Datei für Moov-Boxen. Eine für Moov+mdat = ein fragment. Wenn eine Anforderung für ein fragment hergestellt, das Datei-offset ist, schaute in die manifest-und die richtigen Boxen zurückgegeben werden.
Soweit ich es verstehen... Im Falle des DASH 'onDemand' - Profil, ist es die Aufgabe der DASH packager erstellen der *.mpd (das manifest), und geben Sie die byte-ranges Karte, um ein segment (mehrere Fragmente). Der client lädt dann die *.mpd-und http-byte-range-Anfragen für die Bereiche, die im manifest. Ich denke, die DASH "live" - Profil ist ähnlich smooth streaming, dass jedes segment hat eine url.
Wenn Sie brauchen, um herauszufinden, die position der Fragmente innerhalb der mp4-container, ich glaube, diese information wird in das segment "sidx" - box.
Scheint es, dass ffmpeg hat jetzt Unterstützung für HLS-direkt als gut.