最後のx秒を再生できるように、デスクトップを「再生バッファ」に記録するにはどうすればよいですか?

最後のx秒を再生できるように、デスクトップを「再生バッファ」に記録するにはどうすればよいですか?

今日はWindowsでのみ利用可能な製品です。オーバーウルフリプレイHUD、ユーザーはキーを押して、過去20秒間に何が起こったのかを画面で再生できます。素早く進行するビデオゲームをしたり視聴したり、忙しい瞬間を素早く復習したい人に適しています。

Linuxでこの動作を複製しようとしています。これまでは、ffmpegファイル(メモリマッピング)でキャプチャを簡単に起動(使用)し-f x11grabてから使用できると思います。/tmpsxhkdキーボードショートカットをバインドして実行mpvファイルの最後の20秒を再生します。

ただし、残りの録音内容は保存され続け、最終的にメモリが不足します。最後の20秒だけどのように保つことができますか?

答え1

セグメントマルチプレクサが動作します。

ステップ1:

ffmpeg -i input force_key_frames expr:gte(t,n_forced*4) -c:v libx264 -c:a aac -f segment -segment_time 4 -segment_wrap 6 -segment_list list.m3u8 -segment_list_size 6 seg%d.ts

これにより、録音内容が4秒単位で保存されます。 6つのセグメントが書き込まれると、次のセグメントは最初のファイルを上書きします。これにより、プレイリストが更新されます。

ステップ2:

ffmpeg -i list.m3u8 -c copy video.mp4

または

ffplay list.m3u8

保存された画像の持続時間はです20 < duration < 24

答え2

OBSは、ニーズに合わせて設定可能な再生バッファを提供します。

関連情報