(Cross-posted from the Steam forums)
What does it do?
SrcDemoČ lets you render smoother movies, faster.
By using frame blending. Frame-blending is not a new technique. It involves rendering a movie at a very high framerate, then blending those frames together into a lower framerate. This gives the final video a smoother feel.
However, these frame are quite large in file size, and if you want something very smooth, you would thus require a lot of disk space in order to store all those frames. This is where SrcDemoČ comes in.
SrcDemoČ creates a virtual filesystem that sits within the game's directory. When the game tries to write image files to it, those images get caught before they get written to disk. Instead, they are kept in memory. After a sufficient amount of images has been caught, they are blended together, and one single frame is written to the disk, in another directory of your choice, in the image format of your choice.
This not only allows you to render movies a lot faster (since frames are not written to disk, and the disk is slow), but also smoother, because you can set the framerate as crazy-high as you want and the disk storage needed will not change!
* Example in Portal (Blendrate: 25; Shutter angle: 360 degrees)
* Example in TF2 (Blendrate: 75 for Scout and Medic segments, 45 for the rest; Shutter angle: 180 degrees)
* Example in Garry's Mod
* Example in Portal 2 (Blendrate: 9; Shutter angle: 360 degrees) (Ignore the screen playing the Animal King movie too quickly... Source Recorder bug which makes the playback of those movies ignore host_framerate)
* Without frame blending: Equivalent video in Portal 2 without frame blending
Disclaimer: Those were made with SrcDemo, not SrcDemoČ. However, both tools do exactly the same thing, only the latter does it much faster.
There is a PKGBUILD available and an openSUSE build service entry. The openSUSE entry is unsupported as I am not the one taking care of it.
The OS X version only works on the command-line. It is downloadable here. It requires a working FUSE implementation (Fuse4x, OSXFUSE, or MacFUSE). To use, run the following command:
SrcDemoČ comes with an automated installer, but relies on two external components. Here is everything you need:
* A 32-bit Java runtime environment (even if you are on a 64-bit machine).
* The Dokan library (version 0.6). The library is only available as a 32-bit interface, hence the 32-bit Java runtime requirement. SrcDemoČ does work (and was developed on) 64-bit Windows, however.
* SrcDemoČ itself.
How to use:
* Download and install all of the above.
* Open SrcDemoČ.
* Select the folder in which you will tell the game to save frames. It must be empty. It is suggested to create a folder named "srcdemo" inside the game's folder, just for this purpose.
* Select the folder in which you want the final, .png frames to be saved. This can be anywhere on your computer, including other partitions, but must not be the same folder as the previous one.
* Select your recording parameters:
- Final videos FPS: The framerate of the video you want to create in the end. Hint: If you want to upload it to YouTube, leave this as 30 fps.
- Motion blur blend rate: The number of raw frames from the game that will be blended inside each final frame. This can be as high as you want, but going beyond 50 yields very little improvement.
- Simulated shutter angle: Simulates the rotary disc shutter of cameras. Usual cameras have a 180-degrees shutter, which means that the film is exposed during 50% of the total frame time, and missing 50% of the action. Hint: Recommended values are from 180 (for a cinematic feel) to 360 (for butter-smooth-ness to a point that may be considered too much by some people). This has no impact on performance.
- Effective recording FPS: This is not configurable; this is the framerate that you will have to tell the game to render at. It is the product of the final video framerate and the motion blur blend rate.
* Press "Activate" and wait a few seconds. This will create the virtual filesystem in the folder you have selected at the beginning.
* Open your game, run your graphics config, etc.
* Type host_framerate n, where n is the number given as "Effective recording FPS" by the application.
* Start the movie: startmovie srcdemo/someprefix_. Make sure that this will make the game output frames inside the folder you selected at the beginning, and don't forget to put a prefix, for your convenience.
* Start the demo file or whatever you want so that frames are produced: playdemo somefile.
* Grab popcorn.
* When it is done, end the movie: endmovie. If you don't do this, the .wav file will be corrupt.
* You should now have all the final frames (as .png files) in the folder you selected in the second step, as well as the .wav file.
SrcDemoČ is fully open-source and distributed under the 2-Clause BSD License. The source code is available on Google Code.
* Mythee, for the icon/logo artwork
I would love to see videos you can create with this tool! It would also be nice to tag videos you upload on YouTube with the tag "srcdemo2". Thanks!