ffmpeg – Ist es möglich, Echtzeit-Zeitcodes mit -copyts beizubehalten?

ffmpeg – Ist es möglich, Echtzeit-Zeitcodes mit -copyts beizubehalten?

Es ist eine einfache Aufgabe. Ich möchte einen konvertierten Clip eines Videos erstellen, -copytsum die echten Timecodes zu erhalten. Zum Beispiel der konvertierte Clip dieses Befehls:

ffmpeg -hide_banner -ss 57:41.76 -i input.mp4 -copyts -fs 4085Ki -vf scale=1280:-1 -c:v libvpx -crf 10 -b:v 1000K -maxrate:v 1600K -bufsize 800Ki -threads 4 -quality good -cpu-used 5 -c:a libvorbis -b:a 64Ki -maxrate:a 128Ki input.webm

Hat eine Dauer von 31 Sekunden, aber:

frame=  938 fps=7.7 q=0.0 Lsize=    4089kB time=00:58:13.15 bitrate=   9.6kbits/s speed=28.8x

Es heißt, es hat 58:13.15 Minuten.

Ich kann die normale Dauer erreichen, indem ich sie -copytsaus dem Befehlscode entferne, aber der einzige Grund, warum ich sie verwende, -copytsbesteht darin, nicht jedes Mal die nächsten Segmente berechnen zu müssen, da ich sie einfach -ssauf 58:13.15 einstellen und loslegen kann.

Zur Frage: Gibt es eine Möglichkeit, die Dauer der konvertierten Dateien zu ändern?ohnees erneut konvertieren? Wie Metadaten ändern?

Ich verwende Windows 7.

Antwort1

Ich musste einfach -c copy. Hatte es vergessen:

Legen Sie alle neuen Clips in einen neuen Ordner (WebM als Vorschlag) und erstellen Sie in diesem Ordner einen weiteren Ordner mit dem Namen newund führen Sie dies aus

ffmpeg -i input.webm -c copy new\output.webm

Für einen automatisierten Prozess gehen Sie wie folgt vor:

for %i in ("*.webm") do ffmpeg -i %i -c copy new\%~ni.webm

-c copyDadurch wird der Befehl für alle konvertierten Clips wiederholt .

verwandte Informationen