Ich weiß, dass dies eine alte Frage ist, aber keine der aktuellen Antworten ist mehr der empfohlene Weg.
Verlustfreies (Video-) Remuxing
Wie in den Kommentaren erwähnt, gibt es eine Möglichkeit, dies zu tun, wenn das Video nicht
neu codiert werden muss. Es erfordert das Remuxen der Datei in ein anderes Containter-Format MKV und das anschließende Remuxen in ein MP4. Hier ist ein Beispiel, das ein Video auf 12 Bilder / Sekunde ändert:
mkvmerge --default-duration 0:12fps --fix-bitstream-timing-information 0 original-video.mp4 -o temp-video.mkv
ffmpeg -i temp-video.mkv -c:v copy slow-video.mp4
Wenn das Video Audio enthält, können Sie dies auch verlangsamen, ohne die Tonhöhe zu ändern. Dies ist jedoch keine verlustfreie Konvertierung. Im folgenden Beispiel wird davon ausgegangen, dass das Quellvideo 24 Bilder / Sekunde betrug, sodass das Audio mit dem atempo- Filter von ffmpeg auf die halbe (0,5) Geschwindigkeit verlangsamt werden musste.
mkvmerge --default-duration 0:12fps --fix-bitstream-timing-information 0 original-video.mp4 -o temp-video.mkv
ffmpeg -i temp-video.mkv -c:v copy -c:a aac -filter:a "atempo=0.5" slow-video-with-audio.mp4
FFMPEG Wiki-Anleitung
Dies ist die Anleitung aus dem ffmpeg-Wiki . Beachten Sie, dass für alle diese Optionen das Video neu codiert werden muss.
Video beschleunigen / verlangsamen
Sie können die Geschwindigkeit eines Videostreams mithilfe des Setpts-Videofilters ändern. Beachten Sie, dass in den folgenden Beispielen der Audiostream nicht geändert wird. Daher sollte er idealerweise mit -an deaktiviert werden.
Um die Geschwindigkeit des Videos zu verdoppeln, können Sie Folgendes verwenden:
ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv
Der Filter ändert den Präsentationszeitstempel (PTS) jedes Videobilders. Wenn beispielsweise zwei aufeinanderfolgende Frames bei den Zeitstempeln 1 und 2 angezeigt werden und Sie das Video beschleunigen möchten, müssen diese Zeitstempel 0,5 bzw. 1 werden. Wir müssen sie also mit 0,5 multiplizieren.
Beachten Sie, dass bei dieser Methode Frames gelöscht werden, um die gewünschte Geschwindigkeit zu erreichen. Sie können verworfene Frames vermeiden, indem Sie eine höhere Ausgabe-Framerate als die Eingabe angeben. Um beispielsweise von einem Eingang mit 4 FPS zu einem Eingang mit einer Geschwindigkeit von bis zu 4x (16 FPS) zu wechseln:
ffmpeg -i input.mkv -r 16 -filter:v "setpts=0.25*PTS" output.mkv
Um Ihr Video zu verlangsamen, müssen Sie einen Multiplikator größer als 1 verwenden:
ffmpeg -i input.mkv -filter:v "setpts=2.0*PTS" output.mkv
Glatt
Mit dem Minterpolate-Videofilter können Sie langsame / schnelle Videos glätten. Dies ist auch als "Bewegungsinterpolation" oder "optischer Fluss" bekannt.
ffmpeg -i input.mkv -filter "minterpolate='mi_mode=mci:mc_mode=aobmc:vsbmc=1:fps=120'" output.mkv
Weitere Optionen sind slowmoVideo und Butterflow. Audio beschleunigen / verlangsamen
Mit dem atempo-Audiofilter können Sie Audio beschleunigen oder verlangsamen. 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 verlangsamen). 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