Video

如何將我的桌面記錄到“重播緩衝區”中,以便重播最後 x 秒?

  • December 18, 2019

今天我了解了一款名為Overwolf Replay HUD的僅限 Windows 的產品,它可以讓使用者按下一個鍵來回放螢幕上發生的最後 20 秒。它適用於想要快速回顧忙碌時刻的快節奏電子遊戲或觀看快節奏電子遊戲的人。

我試圖在 Linux 上複製這種行為。到目前為止,我認為我可以輕鬆地開始ffmpeg(使用-f x11grab)擷取到/tmp(記憶體映射)中的文件,然後使用sxhkd綁定鍵盤快捷鍵來啟動mpv以播放該文件的最後 20 秒。

但是,其餘的錄音仍然會被儲存,我最終會用完 RAM。我怎麼能只保留最後 20 秒呢?

段復用器將工作。

第 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.

引用自:https://unix.stackexchange.com/questions/373143