오늘은 Windows에서만 사용할 수 있는 제품인오버울프 리플레이 HUD, 사용자는 키를 눌러 지난 20초 동안 발생한 일을 화면에서 재생할 수 있습니다. 빠르게 진행되는 비디오 게임을 하거나 시청하며 바쁜 순간을 빠르게 복습하고 싶은 사람들에게 적합합니다.
Linux에서 이 동작을 복제하려고 합니다. 지금까지는 ffmpeg
파일(메모리 매핑)로 캡처를 쉽게 시작(사용) -f x11grab
한 다음 사용할 수 있다고 생각합니다./tmp
sxhkd
키보드 단축키를 바인딩하여 실행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는 필요에 맞게 구성 가능한 재생 버퍼를 제공합니다.