Pages

Wednesday, February 19, 2025

Simple Replay built into OBS

Ok, here's how to make a simple replay in OBS.  

This will get you a simple replay that, when you press two buttons, it will replay the last 10 seconds at whatever speed you want.

1>    
Settings -> OUTPUT

Select "Output Mode" to be Advanced


2>
Enable the Replay Buffer and set it for 10 seconds (You can tune this, but its a reasonable starting point)


3>
Goto SETTINGS - ADVANCED and scroll down to Recording

This is the part that everyone gets messed up, and IMO, this is an OBS implementation issue.

READ THIS CAREFULLY.

By default the settings are as follows:


The big problem is with filename formatting.  You need to replace it with "Recording"


Click on "APPLY"

This now allows the replay file to always have the same name, and be overwritten with the different replays.  But this is something that will affect your normal recordings if you do them.  They will have the same name, and get over written every time you press "start recording" so be aware.

4>
Click on HOTKEYS

5>
Scroll down to "REPLAY BUFFER" and set a hotkey.  In my Example, I'm going to use F9



Apply your settings

6>
Now click on "START REPLAY BUFFER"

What is happening now is OBS is saving just the last 10 seconds of the program video into RAM.  
It just keeps recording to memory and dumps old video automatically.

7>
Now, with the replay buffer running, press your hotkey, in this example, "F9"
This tells OBS to save the current 10 seconds of video into a file that will be called "Recording Replay"

8>
Create a new scene, call it "Instant Replay".  
This will be the scene that you will activate to show the replay.

9>
Set up a Media Source


I called my "ReplayScene"

10>
Click on browse, and by default, you should be taken to the folder that now contains the replay file:
You wont see this file, however, if you didn't setup a hotkey and use the hot key as told in the above steps.

The file name should be "Replay Recording"


Here is what mine looks like:



11>
Disable "LOOP"
Enable "Restart playback when the source becomes active"
Disable "Show nothing when playback ends" (this is a personal preference.  with this disabled, and you come to the end of the 10 seconds, the video will pause automatically.   If enabled, a black screen appears.
Enable "Close file when inactive"  (if enabled it can lock the recording file out)
Speed = Whatever you like.  I set mine to 70%. This means the playback will be slower, playing 70% of a normal rate being 100%.

12>
Click on OK

13>
Click on TOOLS on the top menu of OBS and select Scripts




14>
At the top of OBS Studio, click on tools, then scripts and select “instant-replay.lua”  (it comes with OBS automatically)


15>
Goto SETTINGS - HOTKEYS again 

16>
Find the scene name you created, in our example it was called "Instant Replay"

I set mine to be F12



Now lets test it out!

OBS replay is going to record whatever is on your PROGRAM window.

So make sure you have some video in that window that is moving so that you have a reference.
Make sure that your replay buffer is recording.

Now wait 10 seconds so that the replay buffer is full.

Press "F9"

NOW, press "F12"

Now you might not notice a lot yet, BUT what you have done is told OBS to save the last 10 seconds to the Replay Record file.  Now make the "Instant Replay" scene live in program.  You should now see the 10 seconds that was saved playback, at 70% speed. 

When its done it will freeze, and you cut back to whatever camera you want.


One additional step.  When you are running a replay, it will play back the sound that was live as well.  So turn down/mute your Audio Media Source during a replay.  Else you will hear program audio replay...sometimes at a really slow souding speed.









No comments:

Post a Comment

Feel free to leave a comment! If you have any information that you think should be included, please do so here and I'll get it added in.