FFMPEG - Konvertiert ein Video in einen Zeitraffer

15

Ich verwende ffmpeg im Flash Builder (Aktionsskript 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 das letzte Bild nach dem Zeitraffer angezeigt wird). Ich möchte, dass die Dauer basierend auf den übergebenen Einstellungen geändert wird zu ffmpeg.

Ich versuche das Folgende zuerst über die Kommandozeile:

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

Jede Hilfe wäre sehr dankbar!

Sandwich
quelle

Antworten:

21

Problem gelöst. Ich habe das Audio nicht entfernt, also wurde vermutlich die nahezu leere Audiodatei für die gesamte Zeit des Videos abgespielt.

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

-an Entfernt das Audio aus dem Video.

Sandwich
quelle
2

Weitere Details zur Beschleunigung von Audio. Sie können bis zu 2x machen, aber Sie können es austricksen, um noch schneller zu werden ( 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 kann nur Werte zwischen 0,5 und 2,0 verwenden (daher kann er auf nicht weniger als die Hälfte der ursprünglichen Geschwindigkeit und auf nicht mehr als das Doppelte der Eingabe verlangsamt werden). Wenn nötig, können Sie diese Einschränkung umgehen, indem Sie mehrere atempo-Filter aneinanderreihen. Folgendes vervierfacht die Audiogeschwindigkeit:

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

Mit einem komplexen Filtergraphen 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

Sonne
quelle