Wie ist das Format des mpeg-dash-Segments (.m4s allgemein)?

830
Ishaan Shringi

Ich bin neu in der Multimedia-Programmierung. Ich versuche, live mpeg-dash-Inhalt aus einem Transportstrompuffer zu erzeugen, indem die Pakete einzeln analysiert werden.

Ich möchte .m4s-Segmente erstellen, bin aber hinsichtlich ihrer Struktur verwirrt.

Wenn wir also mehrere Segmente kombinieren, erzeugen wir einen mpeg-Transportstrom, einen mpeg-Programmstrom oder einzelne Elementarströme?

0

1 Antwort auf die Frage

0
slhck

MPEG-2-Transportströme und MPEG-DASH- Segmente unterscheiden sich. Ersteres ist eine Spezifikation für die paketierte Übertragung von audiovisuellem Inhalt über unzuverlässige Netzwerke, während letzteres für die Übertragung über zuverlässiges HTTP verwendet wird. Daher ist das Konzept etwas anders.

Im Gegensatz zu MPEG-TS gibt es verschiedene Möglichkeiten, Medien für die MPEG-DASH-Übertragung vorzubereiten. .m4sDateien sind eine Option - MPEG-TS ist eine andere.

.m4sDateien sind einzelne Mediensegmente einer vollständigen Datei. Sie haben das Format ISO Base Media File (ISOBMFF) . Die Idee ist, eine längere Datei (z. B. ein Film, der als .mp4Datei codiert ist ) in einzelne Dateien aufzuteilen, die unabhängig über HTTP heruntergeladen werden können.

Wenn Sie mehrere .m4sSegmente verketten, erhalten Sie wieder eine vollständige, abspielbare Datei. Die Mediensegmente selbst können nicht selbst abgespielt werden, da das erste Initialisierungssegment zuerst dekodiert werden muss. Bitte lesen Sie die verlinkte Spezifikation für weitere Informationen. Sie finden ältere Informationen zu diesem Thema auch in GPAC .

Sie können Video- und Audiospuren in einer Datei kombinieren. Normalerweise werden für HTTP Adaptive Streaming Audio und Video jedoch in separaten Streams übertragen.

Wenn in Ihrem speziellen Fall bereits MPEG-TS-Inhalte vorhanden sind und Sie sie in ISOBMFF-Segmente muxieren möchten, ist bento4 möglicherweise ein guter Rahmen für die Verwendung, wenn Sie dies programmgesteuert durchführen möchten. Das dashcastProgramm kann auch beliebige Eingaben entgegennehmen und Live-DASH-Ausgabeströme erstellen.

Kann bento4 Transport-Stream-Puffer als Eingabe verwenden (möglicherweise mittels Pipe) und Live-Dash-Inhalt erzeugen? oder gibt es noch ein anderes Werkzeug? Ishaan Shringi vor 5 Jahren 0
Hängt davon ab, wie Sie die Eingabe erhalten (ist dies eine Netzwerkressource?) Und ob Sie diese in eine größere Anwendung einbetten möchten. Grundsätzlich kann jedoch mit ffmpeg DASH-Streams aus verschiedenen Eingaben generiert werden. slhck vor 5 Jahren 0
Der Transportstream ist eine UDP-Eingabe. Ich muss Live-Dash-Inhalt damit generieren. Ich habe gesehen, dass mp4box in der Lage ist, -grab-ts von UDP-Quelle aus in eine Datei zu kopieren. Können wir es mit "-dash-live" verwenden, um Live-Inhalte zu generieren? Ishaan Shringi vor 5 Jahren 0
Ich würde empfehlen, das Dashcast-Programm zu verwenden: https://gpac.wp.imt.fr/dashcast/ slhck vor 5 Jahren 0