Recording a movie of your game

Started by
4 comments, last by spek 18 years, 4 months ago
Hi, Howto record a movie (AVI, MPEG or something else) of a running game? I need to capture the screen and the sound somehow... Currently I have a component that captures an X amount of frames per second. It works but there are a couple of problems. There's no sound and as the capturing takes much energy, its hard to make a 'smooth' movie. Is there anyone with some experience when it comes to recording? Maybe its possible to use a second computer that does the recording? This is how the game itself works: - rendering happens in a full-screen window - OpenGL for the graphics - wav files are played for the sound with a directSound component Greetings, Rick
Advertisement
For Windows, there's always FRAPS.
I don't know what you need this for exactly, so I'm just going to throw this out there. If your program is going to have network capabilities, you might look into setting up a second computer, networking in, and then either running fraps, or recording the frames with your recording component from the second computer. This way the primary computer isn't slowed down during the recording. This probably isn't an option for you if it's your own game that you're making and it's in early stages, I just suggest it because I know some people in online fps communities do this with someone spectating them with fraps on. (which doesn't ensure a smooth video, but it does ensure smooth play while capturing -something-)

Another method might be to save some sort of "recording" file that has all the information to be rendered in a loadable format. This way you don't have to do any computing aside from what's absolutely necissary for loading the file and displaying the output. Counterstrike: Source does something like this as does Warcraft 3 (they both have replay modes which only save game state information as opposed to actual videos). I don't think you'll get much performance from this as, chances are, you're getting most of the slowdown from the rendering and framesaving... However, this might mean you can play it back at any speed and capture all necissary frames. This way you can record quickly and then play it back later when you don't care about framerate and play it back so that the thing records at a set frames per second and slows down to accomidate the saving function while maintaining the fps.

Hope this helps, the other option is to borrow a better computer or upgrade... Possibly run your capturing on another thread if you have a dual core unit.
_______________________"You're using a screwdriver to nail some glue to a ming vase. " -ToohrVyk
If the capturing is too slow there is the possibility to write a "in game movie file" instead and allow the application to process it instead. Either to write a move that is smooth or view the move.
Also the smooth-ness playback of the movie may be related to your fps. Perhaps grabbing a few frames each second and interpolate between them.

Edit: Partially beaten. My second tip still stands :)
Implementing record/playback, using FRAPS, or using a second (networked) machine are all fine solutions (depending on where you want to go with this). Another option is to hook up a DV camcorder to the video-out of your graphics card, and record straight to video tape; then "capture" that back to the computer when you're done playing. The good news is that you get solid 30 fps capture, with frame-locked audio; the bad news is that you only get TV quality.
enum Bool { True, False, FileNotFound };
Thanks for the replies! I never heard of that tool but it does exactly what I need. Capturing this stuff is just for presentation purposes. I want to show my stuff but as it requires quite a heavy video-card, I wanted to have some videos of it to be sure.

Thanks!
Rick

This topic is closed to new replies.

Advertisement