11

I want a piece of Windows software that will constantly record what I'm doing on my desktop, discarding footage that's over [30] seconds old. Its recording would be a rolling one.

The idea is that I can somehow hit a button and see "what just happened".

I don't want to have to babysit it. That is, I don't want a piece of software designed for screencasting (which I'm not trying to do). My bias against that is based on my (maybe incorrect?) assumption that I'd regularly have to start/stop the recording throughout the day.

The idea is that this piece of software would consume fewer resources (than a screencast recorder) on my box, as it's only keeping a very limited amount of footage in memory (and low quality would even be acceptable), because it's discarding frames fairly quickly after they're captured.

Where can I find a piece of software with features like this?

6
  • 2
    let us know your platform. On linux writing a script that does just that using ffmepg would be trivial.
    – brice
    Feb 12, 2010 at 15:59
  • I've edited the question to reflect that I need a Windows solution.
    – lance
    Jan 13, 2012 at 15:10
  • I'd love to have exactly this, anyone come up with a Windows solution?
    – Kieran
    Feb 20, 2014 at 11:05
  • I agree. I can't believe this doesn't yet exist. Xbox One's Game DVR has had this exact functionality for years, as have GoPros ("looping recording") and other camcorders ("pre-recording").
    – Aldaviva
    Aug 14, 2017 at 6:23
  • 1
    Turns out Open Broadcaster Software has this exact feature, it's called "Replay Buffer." Enable it in Settings > Output and choose a duration, then hit "Start Replay Buffer". You'll want to assign a hotkey to Replay Buffer - Save Replay, which writes a video of the last N seconds to your Recording Path. FYI you don't actually need to be broadcasting your stream anywhere just to use OBS for recording, so you can use it locally only and not broadcasting to Twitch or anything.
    – Aldaviva
    Jun 25, 2018 at 3:51

4 Answers 4

2

The batch script:

echo off
:loop
ffmpeg -loglevel info -t 300 -f dshow -video_device_number 0 -i video="screen-capture-recorder" -vcodec libx264 -pix_fmt yuv420p -s hd720 -preset ultrafast -vsync vfr -acodec libmp3lame -f mpegts - | ffmpeg -f mpegts -i - -c copy "current.mp4"
del old.mp4
mv current.mp4 old.mp4
goto loop
2
  • Awesome, thank you! I had to change mv to move /Y then it worked. Also it would be -t 30 for 30s.
    – xr280xr
    Jun 15, 2017 at 19:33
  • Also, specify mkv as the file format instead of mp4 if you'd like the ability to watch the video while it's still being recorded.
    – lance
    Aug 14, 2017 at 15:22
4

Assuming you run some form of Windows and you don't actually need near real time recording then I think what you want is TimerSnapper.

http://www.timesnapper.com/

It takes screenshots of your desktop every few seconds and stores them. It's really intended for use to help developers keep track of what they worked on during the day. I believe it has a user configurable amount of time to keep the screenshots but I doubt it will go as low as 30 seconds. Better to have too much data than too little.

There's an older version that is free and there's a newer Professional version with a lot more features.

1

OK, On linux, the following script will create three .avi files in /tmp/ that will keep the last few instants recorded.

#!/bin/bash
while true; do
    ffmpeg -f x11grab -s 1280x800 -r 60 -i :0.0 -f avi /tmp/rolling.avi &> /dev/null &
    disown
    PID=$!
    sleep 30; 
    kill -KILL $PID
    cp /tmp/rolling_1.avi /tmp/rolling_2.avi
    cp /tmp/rolling.avi /tmp/rolling_1.avi
    rm /tmp/rolling.avi 
done

Obviously, you'll have to replace the args of ffmpeg for your screen res, etc...

A shout out to b0fh and ~quack for helping me with some bash notification problems in this thread.

1
  • 1
    this will record 30 secs then delete and start again. He wants 30 secs continuous (so only time he wants replay he always gets 30 seconds from when he pressed the button)
    – t123
    Feb 18, 2010 at 11:48
0

Some software designed for recording TV has this ability perhaps you can route the input from your screen capture software?

Not the answer you're looking for? Browse other questions tagged .