Die Suche in der M3U8-Datei führt zu einer Verzögerung von 20 Sekunden oder mehr

759
emb-pro

Ich habe eine Liste von TS-Dateien. Für jede TS-Datei habe ich eine M3U8-Datei. Für einige TS-Dateien habe ich jedoch keine M3U8-Dateien. Meine m3u8-Datei hat das folgende Format (zeigt die bereits vorhandene Datei an).

Diese Datei ist bereits in meinem System. Ich weiß nicht, wie sie erstellt wurde (möglicherweise mit einem Befehl oder manuell).

#EXTM3U #EXT-X-VERSION:4 #EXT-X-TARGETDURATION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:3.000000, #EXT-X-BYTERANGE:332196@0 video.ts #EXTINF:3.000000, #EXT-X-BYTERANGE:352124@332196 video.ts #EXTINF:3.000000, #EXT-X-BYTERANGE:92684@684320 video.ts #EXTINF:3.000000, #EXT-X-BYTERANGE:195708@777004 video.ts #EXTINF:3.000000, #EXT-X-BYTERANGE:178600@972712 video.ts #EXTINF:3.000000, #EXT-X-BYTERANGE:204356@1151312 video.ts ...... ...... ...... ...... #EXT-X-ENDLIST 

Ich habe die m3u8-Datei für die fehlenden Dateien gemäß der Antwort von slhck erstellt . Nach der Erstellung der Datei wurde die Datei gut abgespielt, aber wenn ich in den Videostopps für einige Zeit navigiere, dauert es 20 Sekunden. Schauen Sie sich die Datei an, die ich manuell erstellt habe.

#EXTM3U #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-ALLOW-CACHE:YES #EXT-X-TARGETDURATION:61 #EXTINF:3600.080000, mysecondvideo.ts #EXT-X-ENDLIST 

Aber wenn ich die obige Datei über den Browser abgespielt habe, wird sie überhaupt nicht abgespielt. Ich habe die Artikel über m3u8 gelesen . Aber es hat für mich nicht funktioniert.

Bitte helfen Sie mir beim Erstellen der m3u8-Datei, damit ich ohne Verzögerung im Browser spielen kann.

PS: Ich möchte mein Video nicht neu codieren. Ich streame das Video nicht live

Danke im Voraus.

0
Die Zieldauer muss größer sein als die größte Segmentgröße. Es ist in der Spezifikation dokumentiert. szatmary vor 5 Jahren 0
"unterhalb der von mir erstellten Datei" - ist dies die Datei, die Sie manuell erstellt haben, oder hat ffmpeg diese Datei für Sie erstellt? Zeigen Sie den genauen Befehl, den Sie zum Erstellen der Datei verwendet haben, und zeigen Sie auch die gesamte Befehlszeilenausgabe von ffmpeg. Und ich bin immer noch verwirrt: In Ihrem ersten Beispiel haben Sie eine funktionierende M3U8, die auf `video.ts` verweist, aber Sie sagen, dass die Datei fehlt? Oder ist "video.ts" nur ein Beispiel? Bitte verwenden Sie die tatsächlichen Dateinamen, damit klar ist, auf welchen Sie sich beziehen. slhck vor 5 Jahren 0
Der Titel wurde geändert, um eine völlig andere Frage zu stellen. szatmary vor 5 Jahren 0
@slhck Die erste m3u8-Datei wurde von ffmpeg erstellt. Die zweite Datei wurde von mir geschrieben, wie Sie es vorgeschlagen haben. emb-pro vor 5 Jahren 0
@slhck Ich habe keine Protokolle, Dateien, um zu zeigen, wie die m3u8-Datei erstellt wurde. Technisch kenne ich den genauen Befehl nicht, mit dem die m3u8-Datei implementiert wird. emb-pro vor 5 Jahren 0
@szatmary Ich habe den Titel geändert, weil dies das Problem ist, das das OP in einem anderen Kommentarthread erwähnt hat, weshalb ich ihnen gesagt habe, eine neue Frage zu erstellen. Auch das Problem wird in diesem Beitrag deutlich erwähnt. slhck vor 5 Jahren 0
@ emb-pro Wenn Sie "von mir geschrieben" sagen, haben Sie es manuell geschrieben, oder haben Sie ffmpeg verwendet, um es zu generieren? Wenn Sie es manuell geschrieben haben, müssen Sie natürlich die richtigen Werte für die Dauer verwenden. Wenn Sie ffmpeg verwendet haben, gibt es ein Protokoll, das ffmpeg in der Befehlszeile druckt. Aber noch einmal: Die Dateinamen in Ihrem Beitrag sind verwirrend und es ist nicht wirklich klar, was Sie getan haben. Bitte beschreiben Sie alles genau so, wie es auf Ihrem Computer erscheint, wenn Sie es eingeben. Wir sitzen nicht neben dir, daher ist es schwer zu erraten, was passiert. slhck vor 5 Jahren 0
@slhck Ich kann das verstehen, Die erste m3u8-Datei wurde von ffmpeg erstellt (ich habe nicht den Befehl, mit dem sie erstellt wurde). Die zweite m3u8-Datei wurde von mir manuell geschrieben (wie Sie es in der vorherigen Frage gesagt haben). Ich verwende die richtigen Werte für die Dauer. Der Grund, warum ich 3600.080000 verwendet habe, ist die genaue Dauer in Minuten. und Video.ts war die Datei, die von der ersten m3u8-Datei verwendet wurde. Es ist in Ordnung. Wenn ich versuche, die m3u8-Datei in meinem Browser abzuspielen, wird sie gut abgespielt. Aber für die zweite m3u8-Datei habe ich video.ts verwendet. Eigentlich ist es etwas anderes. Ich habe die Frage für Sie bearbeitet. Schau es dir an. emb-pro vor 5 Jahren 0
Zurück zu dem, was @szatmary gesagt hat: Die ZIELDURATION und die Dauer der von Ihnen angegebenen Datei sind unterschiedlich, so dass Sie nicht die richtigen Werte verwenden. Wie ich in meiner Antwort gesagt habe, müssen Sie die Dauer manuell angeben. Aber Sie müssen es an beiden Orten tun. Verwenden Sie grundsätzlich # EXT-X-TARGETDURATION: 3600 und `#EXTINF: 3600 '. slhck vor 5 Jahren 0

0 Antworten auf die Frage