今天,我了解到了一款名为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
Run Code Online (Sandbox Code Playgroud)
这将以 4 秒为一段保存录音。写入 6 个段后,下一个段将覆盖第一个文件。播放列表会相应更新。
第 2 步:
ffmpeg -i list.m3u8 -c copy video.mp4
Run Code Online (Sandbox Code Playgroud)
或者
ffplay list.m3u8
Run Code Online (Sandbox Code Playgroud)
保存的镜头的持续时间是20 < duration < 24
.
归档时间: |
|
查看次数: |
1184 次 |
最近记录: |