web-dev-qa-db-ja.com

ビデオをスピードアップしてタイムラプスを作成するにはどうすればよいですか?

1.0 FPS(つまり1秒あたり1フレーム)のビデオファイルがあり、それを再エンコードして約20倍速く再生したいと考えています。

短い1FPSサンプルはこちらです: http://s3.aws.nz/cam-1537668742.mp4

このようにmplayerを使用すると、20倍速くplayできます:

mplayer -speed 20 cam-1537668742.mp4

この速度でビデオファイルとして保存するにはどうすればよいですか?

私はffmpegsetptsフィルターを試しました、それは再生をより速くしましたが、それでも1 FPSでした、つまり、より多くの時間があったとしても、画像は1秒ごとにしか変化しませんでしたその間に失効した。

何か案が? mplayerffmpeg、またはその他のLinuxツールを使用していますか?

ありがとう!

2
MLu

基本テンプレートは

ffmpeg -i in -vf "setpts=(PTS-STARTPTS)/20,fps=20" out

または

ffmpeg -i in -vf "setpts=(PTS-STARTPTS)/20" -r 20 out

Fpsフィルターまたは-rオプションがない場合、ffmpegは出力ストリームのフレームレートがまだ1 fpsであると想定するため、20回のリタイミングフレームごとに19回ドロップします。

1
Gyan