ffmpeg - Kann man mit -copyts echte Timecodes beibehalten?

1235
HASJ

Es ist eine einfache Aufgabe. Ich möchte einen konvertierten Clip aus einem Video erstellen -copyts, um echte 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 

Sagt, dass es 58: 13,15 Minuten hat.

Ich kann die normale Dauer erreichen, indem ich -copytsaus dem Befehlscode entferne, aber der ganze Grund, den ich benutze, -copytsist zu vermeiden, dass ich jedes Mal die nächsten Segmente berechnen muss, da ich einfach -ssauf 58: 13.15 setzen und loslegen kann.

Gibt es für die Frage überhaupt eine Änderung der Dauer der konvertierten Dateien ohne erneute Konvertierung? Wie das Ändern von Metadaten?

Ich bin unter Windows 7.

1

1 Antwort auf die Frage

2
HASJ

Ich musste einfach -c copy. Hatte es vergessen:

Legen Sie alle Ihre neuen Clips in einem neuen Ordner ab (webm als Vorschlag) und erstellen Sie in diesem Ordner einen anderen Ordner mit dem Namen newund führen Sie diesen Vorgang aus

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

Für einen automatisierten Prozess gehen Sie folgendermaßen vor:

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

Dadurch wird der -c copyBefehl für alle konvertierten Clips wiederholt .