wie füge ich TS-Dateien mit FFMPEG zu MP4 zusammen?

wie füge ich TS-Dateien mit FFMPEG zu MP4 zusammen?

Ich lade viele Streams herunter, da die Internetgeschwindigkeit zu langsam ist, um hochauflösende Videos anzusehen. Wenn ich einen Stream herunterlade, finde ich die .m3u8-Datei, die auf die TS-Dateien verweist. Dann verwende ich den folgenden Befehl:

ffmpeg -i stream.m3u8 vid.mp4

Das funktioniert. Es dauert aber sehr lange, weil grundsätzlich alles neu kodiert wird, obwohl es bereits das richtige Format hat. Um die Neukodierung zu vermeiden, kann ich diesen Befehl verwenden:

ffmpeg -i stream.m3u8 -vcodec copy -acodec copy vid.mp4

Das funktioniert einwandfrei, wenn ich von Anfang bis Ende ohne Unterbrechung abspiele. Aber wenn ich vor- oder zurückspringe, hat VLC Probleme, ein Bild zu erstellen. Es kann einige Sekunden lang nicht richtig angezeigt werden. Das ist sehr ärgerlich.

Meine Frage:Wie kann ich das Video ohne vollständige Neukodierung, aber MIT jederzeit gutem VLC-Rendering erstellen?

Antwort1

Sie fordern ffmpeg auf, die Dateien in mp4 zu kodieren, anstatt sie in einem einzigen Stream zusammenzufügen. Sie müssenverkettenin temp.tsund konvertieren Sie das dann .mp4mit in -codec copy.

Außerdem glaube ich, dass Sie im zweiten Schritt adtsin konvertieren müssen .aac-bsf:a aac_adtstoasc

Antwort2

Wenn Sie nicht erneut kodieren, können Sie möglicherweise die Schlüsselbilder etc. des Videos nicht ändern, was zu dem von Ihnen beschriebenen Verhalten führt.

Sie könnten jedoch etwas wie Folgendes versuchen:

ffmpeg -i stream.m3u8 -codec:v "libx264" "-preset" "ultrafast" output.mp4

Bedenken Sie, dass Sie mit der Geschwindigkeit auch an Qualität einbüßen, also ist „schnell“ vielleicht besser …

Antwort3

Siehe meine Variante mit ffmpeg mp4joiner

Bildschirmfoto

verwandte Informationen