ffmpeg: Frames duplizieren

ffmpeg: Frames duplizieren

Eine sehr ärgerliche Situation …
Ich habe ein MPG2-Video mit einer Bildrate von 29,97, doch bei der Konvertierung in MP4 werden die Bilder dupliziert.

Dieser Befehl (direkte Konvertierung, keine Optionen):
ffmpeg -i ~/Desktop/file.mpg ~/Desktop/file.mp4
verursacht doppelte Frames...

Beim Einstellen der Framerate mit:
ffmpeg -i ~/Desktop/file.mpg -framerate 29.97 ~/Desktop/file.mp4
Funktioniert auch nicht!

Was mich dazu veranlasst, Folgendes zu versuchen:
ffmpeg -i ~/Desktop/file.mpg -r 29.97 ~/Desktop/file.mp4
Immer noch mit doppelten Frames!

Schließlich habe ich ffmpegs ausprobiert3. PlatzFramerate-Option!:
ffmpeg -i ~/Desktop/file.mpg -vf fps=fps=29.97 ~/Desktop/file.mp4

Allerdings waren Audio und Video bei der Ausgabe nicht synchron!

Welche FPS-Option sollte ich verwenden?

Antwort1

Verwenden

ffmpeg -i ~/Desktop/file.mpg -vsync 0 ~/Desktop/file.mp4

Dadurch wird eine Duplizierung vermieden.

-vsync passthroughist gleichbedeutend mit -vsync 0.

Antwort2

-vsyncist mittlerweile veraltet, Sie sollten daher -fps_modestattdessen verwenden.

Standardmäßig fps_modeist auto, daher kann es Ihre fps automatisch ändern. Beispielsweise hat die Originalquelle eine variable Bildrate, aber ffmpeg kann entscheiden, sie automatisch auf eine konstante Bildrate umzustellen, was zu doppelten und verlorenen Bildern führen kann.

Um jegliche FPS-Änderung zu verhindern, setzen Sie -fps_mode passthrough. (Das ist dasselbe wie -vsync 0oder -vsync passthrough).

Weitere Informationen finden Sie unterffmpeg-Dokumentation.

ffmpeg -i ~/Desktop/file.mpg -fps_mode passthrough ~/Desktop/file.mp4

verwandte Informationen