Skip to main content

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.

Compatibility

OSCSGOCS2Death notice edition (HLAE)Encoding software
Windows⚠️ CS:GO onlyFFmpeg/VirtualDub
LinuxFFmpeg
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.

Timeline

Generating video(s)

To generate a video, go to the Video tab from a match.
You will see the following window:

Video generation window

  1. Button to start adding a sequence from a dedicated window.
  2. General options (resolution, encoder software, etc.).
  3. HLAE options (Windows only).
  4. Encoder software options.
  5. Match's comment.
  6. Sequences timeline.

Steps

The steps to generate a video are:

  1. Install/update required software if needed.
  2. Add one or more sequences.
  3. Set the general options (optional).
  4. Set the HLAE options (Optional and Windows only).
  5. Set the encoder software options (optional).
  6. Click on the Generate button and wait.

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.

HLAE installation

warning

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.

FFmpeg installation

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.

warning

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.

VirtualDub installation

Adding a sequence

Click on the Add sequence button to open the following window:

New sequence window

  1. The inputs to set the sequence start/end ticks. You would probably not type the ticks manually but use the rounds timeline below.
  2. Camera options.
  3. Indicates how long the sequence is in seconds and how much space raw files will take on your disk.
  4. Game commands executed when the sequence starts.
  5. Rounds timeline.

Steps

  1. Set the start/end ticks.
  2. Set the camera options (optional).
  3. Set the death notices (Optional and Windows only).
  4. Set the CFG (optional).
  5. Click on the button Add.

Start/end ticks

To define the start/end tick of the sequence, you have 2 options:

  1. Type the ticks manually in the inputs.
  2. 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:

Round context menu

Camera options

Camera options

Show X-Ray

It turns on/off the Counter-Strike X-Ray mode.
When enabled, you can see all players through walls:
X-Ray mode

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:
    Kill context menu

Death notices

This option allows you to customize the death notices displayed at the top right of the screen.

warning

Death notices edition is available only on Windows for CS:GO demos, as this feature relies on an HLAE command currently unavailable for CS2.

Death notices

For each player, you can:

  1. Change the player's name
  2. Hide/show the player's kills
  3. 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.

tip

You can also put HLAE commands (mirv_) here on Windows.

General options

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 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.

warning

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 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

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

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

danger

Always check how much disk space is required before starting the recording, and ensure your disk has enough space!
Disk space

Once you have completed all the steps, click the Generate button to start generation of the video(s).
It will start the game, record the sequences, and generate the video(s) from the raw files.

Once done, you will see the following window:
Video generation done

Click on the Reveal output folder button to open the folder where the video(s) have been generated.

Editing a sequence

To edit a sequence, right-click on it from the sequence timeline and click Edit.
Sequence context menu

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.
    Scoreboard context menu

FAQ

I have an error when the game starts

Make sure to update HLAE - game updates may break HLAE compatibility.