ffmpegでタイムラプススクリーンキャプチャを直接記録する

ffmpegでタイムラプススクリーンキャプチャを直接記録する

ffmpeg を使用して、Xorg デスクトップ (オーディオなし) を 1 秒あたり 1 フレームで記録し、変換プロセスを必要とせずに 30 フレーム/秒でフレームを再生するビデオ ファイルに記録できますか?

次のコマンドは、左側のディスプレイを 1 秒あたり 1 フレームで記録しますが、結果のビデオではビデオ フレームが 1 秒あたり 1 つ進みます。

ffmpeg -r 1 -f x11grab -s 1920,1080 -i :0.0+0,0 -vcodec libx264 -crf 0 -preset ultrafast -threads 0 out.mkv

既知の代替案:

  1. 一定間隔でスクリーンショットを撮る、ビデオを組み合わせるメンコーダーを使用する
  2. #1と同じですが、ffmpeg
  3. ffmpegでデスクトップのビデオを録画する1fps以下(エンコーダがそのような数値をサポートしている場合)ffmpegでビデオを高速化する

単独では不可能な場合、とまたはその他のツールffmpegを組み合わせることで、録画終了後できるだけ早くタイムリープ ビデオを準備できるようになりますか?importffmpeg

答え1

これは動作するはずです:

ffmpeg -framerate 1 -f x11grab -s 1920,1080 -i :0.0+0,0 -vf settb=\(1/30\),setpts=N/TB/30 -r 30 -vcodec libx264 -crf 0 -preset ultrafast -threads 0 out.mkv

編集: シェルから括弧をエスケープしました

関連情報