ffmpeg fügt Timecode und Framerate ein

ffmpeg fügt Timecode und Framerate ein

Ich versuche, einem Video einen Startzeitcode einzufügen und gleichzeitig eine Framerate von 29,97 zu erzwingen, aber egal, welche Framerate ich eingebe (egal wo im Skript, über -r 29.97), ffmpeg erzwingt die Framerate auf 25 fps. Ich habe auch fps=29.97 versucht, aber meines Wissens ist „fps=“ veraltet. Hier ist der Befehl, den ich ausführe:

ffmpeg -i /INPUT/FILE/SEQUENCE_%04d.jpg -vf -r 29.97 -vcodec prores -profile:v 0 -c:a mp2 -timecode 09:08:52:00 /OUTPUT/FILE.mov

Ich habe gefühlt jede Kombination dieser Tags ausprobiert und egal was ich mache, ich bekomme immer 25 fps. Hat das schon mal jemand erlebt?

Dank im Voraus.

Antwort1

Die Syntax Ihres Befehls ist falsch, auch wenn er korrekt angezeigt wird.

...-vf -r 29.97...<-- hierdurch wird das Framerate-Flag als Argument für die Videofilteroption festgelegt. 29.97Wird dann als Ausgabedateiname interpretiert.

Außerdem wird die Bildsequenz (standardmäßig) als 25 fps interpretiert. Selbst wenn Ihr Befehl also funktionieren würde, hätte Ihre Ausgabe doppelte Frames und wäre 16 % langsamer.

Setzen Sie stattdessen den Wert auf 29,97 oder 30000/1001, um genau zu sein.

ffmpeg -framerate 30000/1001 -i /INPUT/FILE/SEQUENCE_%04d.jpg -c:v prores -profile:v 0 -c:a mp2 -timecode 09:08:52:00 /OUTPUT/FILE.mov

verwandte Informationen