A system to cut extract kills form gameplay recordings using Global Offensive Game State Integration.
The system is baced around synchronising the recording from OBS with the data from the Game State Integration. It is designed to generate 1 second long clips with the kill half way through. If OBS is setup as correctly the clips should be lossless and 60fps.
- Python (https://www.python.org/downloads/)
- NodeJs (https://nodejs.org/en/download/)
- OBS (https://obsproject.com/download)
-
OBS Settings (settings button bottem right)
-
Set recording
_Output>Recording Quality> _Lossless Qualitym Tremendously Large File Size
-
Recording Path
Settings>Output>Recording Path> [Same location as RecordingSlicerVxxx.py]
-
Record Hotkey
Settings>Hotkeys>Start Recording: [Start Recording KEY] i.e. F8
-
Record Hotkey
Settings>Hotkeys>Start Stop Recording: [Stop Recording KEY] i.e. F9
-
FPS
Settings>Video>FPS Values: 60
-
-
Global Offensive Game State Integration
- Copy file:
gamestate_integration_yourservicenamehere.cfg
into
\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\cfg
i.e. steam libary location, mine is (
E:\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\cfg
) - Copy file:
-
Run the CSGOStats.js applicaton using node.
-
Option A. Start a command promt and navigate to the file (in it's current location), then run
node CSGOStats.js
-
Optoin B. Right click the
CSGOStats.js
and Open With > Choose another app> more apps >"C:\Program Files\nodejs\node.exe"
(recommended)
(Option B will allow you to run the node application in future by doubble clicking it.)
-
-
Launch OBS, (don't start recording yet)
-
Join a CSGO session.
-
Tab to the node comand prompt window.
-
Once a stream of numbers starts, Press record using your hot key (i.e. f8) ENSURING THE TERMINAL IS IN THE RECORDING AREA!
-
Play a round (first to 8). (I recommend only playing one round as the recording is huge and will be 45gb+) but the system does now supports endless rounds.
-
Access the menu to trigger a save of the game data. (Alt+F4 will NOT trigger save) (Do this atleast once before closing the game)
-
Close node window
If all has gone well you should have an .avi file with game play and a data.txt file of game data.
-
Rename the .avi file to
input.avi
-
Run
RecordingSlicer.py
Follow the instructions:- Enter the time at the bottom of the terminal in the extracted start image.
- Enter you in game name (same as in the data.txt file).
- You should be presented with a list of times in miliseconds.
-
Press ENTER and your clips should appear in the
\output
folder.
! I recommend checking each one as sometimes (such as when the bomb kill the person you are spectating) it incorrectly captuers.
! I also recomend moving the files out of the output folder once you've checked them.