Äquivalenter FFMPEG-Befehl mit verlustfreiem Clip

Äquivalenter FFMPEG-Befehl mit verlustfreiem Clip

Ich muss also viel Platz auf meiner Festplatte sparen, also kodiere ich PNG-Dateien in verlustfreie Videos, damit ich die PNG-Dateien löschen kann. Ich kodiere eine mit 72 fps und eine leicht verlangsamt auf 60 fps.

Nehmen wir an, dies ist der Befehl, den ich zum Kodieren auf 72 fps verwende:

ffmpeg -framerate 72 -i png/%%06d.PNG -i audio/72.m4a^
 -c:v libx265 -c:a copy -pix_fmt yuv444p -crf:v 0^
 video/72.mkv

Dies ist der 60fps-Befehl:

ffmpeg -framerate 60 -i png/%%06d.PNG -i audio/60.m4a^
 -c:v libx265 -c:a copy -pix_fmt yuv444p -crf:v 0^
 video/60.mkv

Was wäre das Äquivalent des 60fps-Befehls, wenn ich es aus der 72fps-Videodatei statt aus den PNG-Dateien kodieren möchte, da diese gelöscht wurden, das Video aber auf 60fps verlangsamen möchte, ohne Frames zu verlieren? Wenn möglich, möchte ich ihm sagen, dass er genau mit 60fps kodieren soll, ohne den setptsVideofilter zu verwenden, und/oder den Videostream mit einer anderen Framerate kopieren soll (wobei ich nicht sicher bin, ob das überhaupt möglich ist).

Antwort1

Der Grundbefehl ist

ffmpeg -itsscale 1.2 -i video/72.mkv -i audio/60.m4a^
 -map 0:v -map 1 -c copy video/60.mp4

Dies verwendet die Eingabeoption, itsscaleum Zeitstempel neu zu skalieren, wobei 1.2die Dezimaldarstellung von ist 72/60. Beachten Sie, dass dies dem Ausgabe-Writer keinen neuen Framerate-Wert liefert. Bei Formaten wie MKV wird also die alte Rate mit ffprobe angezeigt, aber die Wiedergabe erfolgt mit der neuen Rate. Bei MP4 sollten Sie die neue Rate sehen.

verwandte Informationen