Wie erstellen Sie die byte-range-m3u8-playlist für HLS?
Apple gibt ein Beispiel Unterstützung für byte-range-Segmente im m3u8-Dateien für die HLS -
#EXTM3U
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-VERSION:4
#EXTINF:10.0,
#EXT-X-BYTERANGE:75232@0
media.ts
#EXTINF:10.0,
#EXT-X-BYTERANGE:82112@752321
media.ts
#EXTINF:10.0,
#EXT-X-BYTERANGE:69864
media.ts
Aber ich kann nicht herausfinden, wie erstellen Sie eine solche Wiedergabeliste für gegeben .ts-Datei.
Gibt es irgendwelche tools dafür?
InformationsquelleAutor biomancer | 2014-05-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist
-hls_flags
als eine ffmpeg-option. (https://www.ffmpeg.org/ffmpeg-formats.html)Folgende Befehl generiert eine einzige ts-Datei, die die segmentierte von byte-range-Funktion(unterstützt von HLS-version 4) in der m3u8 Datei index.
InformationsquelleAutor sangwonl
Sieht aus wie
gibt genug Informationen über frames zu bauen ist eine solche Wiedergabeliste, obwohl einige scripting erforderlich, um es zu konstruieren.
Ich werde aktualisieren diese Antwort mit script, wenn ich erfolgreich mit diesem Ansatz.
Update:
Hier paar nützliche links, die ich gefunden habe:
Bash-Skripts für das erstellen der iframe-Playlisten - braucht ein bisschen Optimierung, wie Sie es nennt ffprobe mehrfach
iframe-playlist-generator - Projekt auf python verwendet werden kann, zu generieren iframe playlists von üblichen,
Ist es nicht genau das, was ich gesucht habe zunächst, aber I-Frame Wiedergabelisten ähnlich sind byte-Bereich und passen die für meine Aufgabe noch besser, also werde ich diese beiden Projekte als Referenz/Ausgangspunkt zu schaffen, etwas, das mehr geeignet für mich.
Die Projekte tatsächlich verschiedene Methoden zu finden, die Größe der I-Frame - das bash-script nur verwendet, was ffprobe zeigt in pkt_size, und die python-Projekt fügt ein bisschen voodoo von der Berechnung der Größe als Differenz der Positionen der Pakete und das hinzufügen von 188 entsprechen Beispiel playlists von apple. 188 bytes ist die Größe der mpeg-ts-Paket, das wird sich wahrscheinlich irgendwie verwandt, ich nicht geschafft habe zu verstehen, wie, jedoch. Dieser Unterschied in der Größe Berechnung bewirkt, dass verschiedene Playlisten generiert werden, wahrscheinlich einer von Ihnen ist falsch, in gewisser Weise, aber eigentlich VLC spielt beide ohne Probleme, so dass ich werde bleiben, um einfachere Methode, bis es nachgewiesen werden, als falsch.
Update 2:
Habe ich erstellt einen ruby-Modul , können Sie extrahieren die I-Frame-Daten gegeben .ts-Datei mit
ffprobe
und bauen beide I-Frame und die üblichen byterange m3u8 playlist (wie es angefordert wurde, in Frage zu stellen) auf der Grundlage dieser Informationen.Fand ich die einfache Methode zum erstellen von I-Frame-playlist, die ich vorher erwähnt falsch zu sein, also habe ich die Methode von iframe-playlist-generator. Die Ausgabe ist fast ähnlich wie die I-Frame-Playliste generiert werden durch
mediafilesegmenter -output-single-file -file-base output-dir/input.ts
erwähnt, durch Duvrai, aber manchmal gibt es einige 188-byte-Größe findet für zufällige Bilder, die ich nicht verstehen konnte, die Muster, so ist es derzeit ignoriert.Wie kann ich erstellen .m3u8 wenn ich TS Segmente durch einen Dritten-app vor, und alle von Ihnen sind in einem Ordner?
InformationsquelleAutor biomancer
Können Sie eine standard-segmenter wie apples
mediafilesegmenter
, überprüfen Sie die Längen der Dateien, und dann mit verketten (mit dercat
Programm) in einer einzigen Datei. Aus dem Datei-Größen, die Sie haben alle Informationen, die benötigt, um geben Sie die byte-Bereiche in eine playlist-Datei.Nicht so nett, wie nur Download ein tool aus dem Netz, aber es ist nicht ein sehr komplizierter Algorithmus.
mediafilesegmenter -output-single-file -file-base output-dir/ input.ts
. Es produziert one neue MPEG-TS-Datei, plus einiframe_index.m3u8
und einprog_index.m3u8
. Beachten Sie auch, dass apples HTTP-Live-Streaming-Tools sind Verfügbar unter developer.apple.com/downloads/..., aber nur für 99$/Jahr iOS Developer accounts.InformationsquelleAutor vipw
Unified Streaming bietet auch ein tool, das dies für Sie tun:
Dies ist Teil Ihrer kommerziellen streaming-Paket (Sie bieten eine Kostenlose Testversion, auf Anfrage). Sie bieten auch eine Amazon AWS-Instanz mit stündlichen Gebühren.
InformationsquelleAutor Duvrai