FFMPEG - Konvertieren Sie ein Video in einen Zeitraffer

7590
Sandwich

Ich verwende ffmpeg in Flash Builder (Action-Skript 3), um ein Video in einen Zeitraffer des Videos zu konvertieren. Ich habe herausgefunden, wie Setpts verwendet werden, aber die resultierende Ausgabedatei hat dieselbe Länge wie die Eingabe (wobei nur der letzte Frame nach dem Zeitraffer angezeigt wird). Ich möchte, dass die Dauer basierend auf den übergebenen Einstellungen geändert wird zu ffmpeg.

Ich versuche zuerst die folgende über die Kommandozeile:

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4 

Jede Hilfe wäre sehr dankbar!

8

2 Antworten auf die Frage

9
Sandwich

Problem gelöst. Ich habe das Audio nicht entfernt, also spielte es vermutlich die fast leere Audiodatei für die gesamte Zeit des Videos ab.

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -an output.mp4

-an entfernt das Audio aus dem Video.

1
Sun

Weitere Details zur Beschleunigung von Audio. Sie können bis zu 2x machen, aber Sie können es noch überlisten, um noch mehr zu beschleunigen ( Quelle ):

Audio beschleunigen / verlangsamen

Sie können oder verlangsamen beschleunigen Audio mit dem Atempo Audiofilter. So verdoppeln Sie die Audiogeschwindigkeit:

ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

Der Atempo-Filter ist auf die Verwendung von Werten zwischen 0,5 und 2,0 beschränkt (er kann also die Geschwindigkeit auf mindestens die Hälfte der ursprünglichen Geschwindigkeit verlangsamen und die Eingangsgeschwindigkeit nicht mehr als verdoppeln). Bei Bedarf können Sie diese Einschränkung umgehen, indem Sie mehrere Atempo-Filter aneinanderreihen. Das Vierfache der Audiogeschwindigkeit:

ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv

Mit einer komplexen Filtergrafik können Sie Video und Audio gleichzeitig beschleunigen:

ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv