Ich habe eine .ts-Datei, aber ich habe keine Quelldatei (Videodatei). Ich muss eine m3u8-Datei aus der .ts-Datei selbst erstellen, ohne andere .ts-Dateien zu erstellen. Ich habe den folgenden Befehl verwendet.
ffmpeg -i mytsfile.ts -hls_list_size 0 mym3u8.m3u8 -hide_banner
Wenn ich den obigen Befehl verwendet habe, wurden fast 590 TS-Dateien mit dem Namen mym3u8N.ts erstellt (wobei N die Zahl 1 bis 590 ist). Ich möchte keine TS-Dateien. Ich brauche nur m3u8 datei.
Antworten:
Wenn Sie nur eine M3U8-Datei aus einem vorhandenen Segment generieren möchten:
Hier ist es wichtig, dass Sie ein angeben
-segment_time
gleich oder größer als die tatsächliche Eingabedauer, andernfalls teilt ffmpeg die Eingabedatei erneut auf.Die Ausgabe M3U8 enthält eine Referenz auf die neu ausgegebene TS-Datei:
Sie können das verwenden oder das löschen
out000.ts
Datei (da sie im Wesentlichen der Eingabedatei entspricht), und ändern Sie den Dateinamen in der M3U8-Datei, da der Inhalt der Mediendatei derselbe ist.Sie können einen solchen Ersatz durchführen, z. mit
perl
:Ich sollte hinzufügen, dass Sie für den einfachen Fall einer Segmentdatei, deren Dauer Sie kennen, die M3U8-Datei einfach manuell generieren können. Sie müssen dann das angeben
EXT-X-TARGETDURATION
undEXTINF:
Dauerwerte auch manuell.quelle
out000.ts
, aber Sie müssen es manuell änderninput.ts
. Andernfalls sucht der Player nach der gelöschten Datei. Wenn Sie die M3U8-Datei mit einem Texteditor öffnen, werden Sie feststellen, dass hier nicht viel los ist. Sie können sie einfach selbst erstellen.