
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.97
Wird 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