Video
CS:DM allows you to generate videos and raw files (images and audio) from demos.
This feature is accessible by clicking on the Video tab from a match.
Video jobs are added to a queue allowing you to schedule multiple videos to be generated one after the other.
Compatibility
OS | CSGO | CS2 | Death notice edition (HLAE) | Encoding software |
---|---|---|---|---|
Windows | ✅ | ✅ | ⚠️ CS:GO only | FFmpeg/VirtualDub |
Linux | ✅ | ❌ | ❌ | FFmpeg |
macOS | ✅ | - | ❌ | FFmpeg |
About CS2 compatibility, see CS2 limitations for details.
Introduction
How does it work?
CS:DM uses the Counter-Strike startmovie
command to get the best result.
The application will start Counter-Strike, play the demo, and execute the startmovie
command.
When the startmovie
command is executed, many image files (.tga) and an audio file (.wav) are generated.
Once the recording ends and Counter-Strike is closed, the application uses FFmpeg or VirtualDub to generate the video(s) from the raw files.
Tick
Ticks are a unit of time the game uses; you can think of it as seconds.
For CS2, 1 second corresponds to 64
ticks. For CS:GO, it depends on the server's tick rate (usually 64
or 128
).
Because seconds are more accessible for humans, the application allows you to edit the duration in seconds and converts
it automatically to ticks.
Sequence
A sequence is a part of the demo you want to record defined by a start tick and an end tick.
You need to add one or more sequences, which you can merge into a single video or generate one video per sequence.
Timelines
The application shows timelines to help you add sequences based on round events and visualize the final sequences.
Timelines are interactive. You can click and drag to move on the timeline, use the mouse wheel to zoom in/out, and
right-click to open a context menu.
Video ID
Each video has a unique ID generated by the application and used to create a unique folder where the raw files and/or
the video(s) will be saved.
These unique IDs prevent overwriting files when generating multiple videos.
Generating video(s)
To generate a video, go to the Video tab from a match.
You will see the following window:
- Button to start adding a sequence from a dedicated window.
- General options (resolution, encoder software, etc.).
- HLAE options (Windows only).
- Encoder software options.
- Match's comment.
- Sequences timeline.
- Video queue.
Steps
The steps to generate a video are:
- Install/update required software if needed.
- Add one or more sequences.
- Set the general options (optional).
- Set the HLAE options (Optional and Windows only).
- Set the encoder software options (optional).
- Click on the Add to queue button to add the video to the queue and start the generation.
Installing/Updating software
HLAE
HLAE is a Windows-only tool that adds movie-making features to
Counter-Strike. The death notices edition, for example, relies on HLAE.
To install or update HLAE, click on the corresponding button from the HLAE options.
Updating HLAE is strongly recommended as game updates may break HLAE compatibility!
Please note that HLAE compatibility updates may take some time to be released after a breaking game update.
Custom location
You can use a custom HLAE build by going to Settings -> Video.
From the HLAE section, click on Enable custom location and select the path to the HLAE.exe file.
FFmpeg
FFmpeg is a software used to generate the video(s) from the raw files.
To install or update FFmpeg, click on the corresponding button from the FFmpeg options.
Custom location
You can use a custom FFmpeg build by going to Settings -> Video.
From the FFmpeg section, click on Enable custom location and select the path to the ffmpeg.exe file.
When using a custom FFmpeg build, the auto-update feature is disabled - you will have to update it manually.
VirtualDub
VirtualDub is a Windows-only software used to generate the video(s) from the raw
files.
To install VirtualDub, click on the corresponding button from the VirtualDub options.
Adding a sequence
Click on the Add sequence button to open the following window:
- The inputs to set the sequence start/end ticks. You would probably not type the ticks manually but use the rounds timeline below.
- Camera options.
- Indicates how long the sequence is in seconds and how much space raw files will take on your disk.
- Game commands executed when the sequence starts.
- Rounds timeline.
Steps
- Set the start/end ticks.
- Set the camera options (optional).
- Set the death notices (Optional and Windows only).
- Set the CFG (optional).
- Click on the button Add.
Start/end ticks
To define the start/end tick of the sequence, you have 2 options:
- Type the ticks manually in the inputs.
- Use the timeline's context menu.
You could use the timeline as it's easier to use.
For example, if you right-click on a round, you will see the following menu that lets you change the ticks quickly:
Camera options
Show X-Ray
It turns on/off the Counter-Strike X-Ray mode.
When enabled, you can see all players through walls:
Focus camera on player
When enabled, the camera will focus on the selected player.
To select a player, you have 2 options:
- Select it from the dropdown.
- Use the timeline's context menu - for example, if you right-click on a kill icon, you will see the following menu that
allows you to focus the camera on the killer or the victim:
Death notices
This option allows you to customize the death notices displayed at the top right of the screen.
Death notices edition is available only on Windows for CS:GO demos, as this feature relies on an HLAE command currently unavailable for CS2.
For each player, you can:
- Change the player's name
- Hide/show the player's kills
- Force highlight the player's kills (the notices will have red borders in-game)
CFG
Game commands that will be executed when the sequence starts.
Each command must be on a new line.
You can also put HLAE commands (mirv_
) here on Windows.
General options
Encoder software
Set the encoder software that will be used to generate the video(s).
You can choose between FFmpeg and VirtualDub (Windows only).
VirtualDub generates uncompressed videos. It's recommended only for editing the video with video editing software.
Generate only raw files
If enabled, the application will generate only raw files.
Close the game when recording is done
If enabled, the application will automatically close the game at the end of the recording.
Delete raw files after encoding
If enabled, the application will automatically delete the raw files at the end of the video(s) generation.
Show only death notices
If enabled, only death notices will be shown in-game.
Width
Set the video width.
Height
Set the video height.
Frame rate
Set the video frame rate.
Raw files folder
Set the folder where the raw files will be saved.
The files will be located in a subfolder that has the video ID as the name.
The default location is the folder where the demo is located. If you change it, the application will remember and use it
for the next recordings.
For CS2, the raw files are always created in the game installation folder and moved into the selected folder at the end
of the recording.
Ensure enough space on the game installation drive is available before starting the recording!
Output folder
Set the folder where the video(s) will be saved.
The video(s) will be located in a subfolder that has the video ID as the name.
The default location is the folder where the demo is located. If you change it, the application will remember and use it
for the next recordings.
HLAE options
Config folder
From the HLAE documentation:
(Optional, but recommended) This creates a fresh config folder for your custom config(s) and video settings. If the folder doesn't already exist, HLAE will create it for you when you launch the game. After the folder (and files) have been created, you can add your custom config(s) in the cfg folder (the same place as the config.cfg).
Note: If you don't use this feature, HLAE will use the same settings as your regular gaming config and video settings, and if you make any config, command, or graphics changes, those may carry over to your gaming config, and vice versa.
Parameters
Additional parameters that will be passed to HLAE.
See the HLAE documentation for
more information.
FFmpeg options
Audio codec
Set the audio codec corresponding to the -acodec
FFmpeg option.
The default codec is libmp3lame
.
For detailed information, refer to the FFmpeg documentation.
Audio bitrate
Set the audio bitrate corresponding to the -b:a
FFmpeg option.
Video codec
Set the video codec corresponding to the -vcodec
FFmpeg option.
The default codec is libx264
.
For detailed information, refer to the FFmpeg documentation.
Quality
Set the video quality for the selected video codec corresponding to the -crf
FFmpeg option.
A lower value generally leads to higher quality but larger file sizes.
Input parameters
Set additional FFmpeg input parameters.
It corresponds to input_file_options
in the FFmpeg command line synopsis.
Output parameters
Set additional FFmpeg output parameters.
It corresponds to output_file_options
in the FFmpeg command line synopsis.
Starting the generation
Always check how much disk space is required before starting the recording, and ensure your disk has enough space!
Once you have completed all the steps, click on Add to queue to add the video to the queue.
You will be redirected to the video queue page:
It will automatically start the game, record the sequences, and generate the video(s) from the raw files until the queue
is empty.
You can remove one or all videos from the queue, reveal the output folder...
The raw files folder and output folder will be located in a subfolder named after the unique video ID and are created only when the in-game recording is done.
Editing a sequence
To edit a sequence, right-click on it from the sequence timeline and click Edit.
You can also delete it by clicking Delete.
Generating player's kills sequences
The application lets you quickly generate sequences that will result in a video showing a player's kills.
To do so, you can:
- Click the Generate player's kill sequences button from the Video tab.
- Click on Generate kills video from a match's scoreboard context menu.
FAQ
I have an error when the game starts
Make sure to update HLAE - game updates may break HLAE compatibility.
I can't play the video
If you have a black screen or the video playback doesn't start when opening it in your video player, that's probably because your video player doesn't have the required audio/video codecs.
This can happens especially on Windows when using Windows Media Player.
The solution is to use a video player such as VLC that includes required codecs.