Synchronizing ingame sounds with video footage for dummies
•
1 Dec 2008, 16:20
•
Tutorials
First of all I would like to state that I so freakin' hate when someone decides to put hitsounds in a fragmovie and they are out of sync (example). They aren't necessary, there are lots of n1 fragmovies without hitsounds, you want your movie to be better/cooler and stand out? THEN DO IT RIGHT!
Let's get down to business.
This tutorial is about synchronizing sounds recorded using wav_record. The way I use isn't perhaps the fastest but it's safe and it never failed (at least for me).
This method uses the brilliant and underrated command 'exec_at_time'. It simply executes a config at the frame with specified number (doh!).
E.g.
exec_at_time 20787000 vid_rec.cfg
This will execute the vid_rec.cfg file at frame number 20787000.
'How do I know which frame should I exec the cfg at?' - We will get to that.
You need 3 separate config files, all of them must be in one directory (directory of the mod that will be used to record with):
exec.cfg
vid_rec.cfg
snd_rec.cfg
Each of them consists of one line (you can of course add more commands, those here are essential).
exec.cfg
exec_at_time 12345678 vid_rec.cfg
or
exec_at_time 12345678 snd_rec.cfg
pretty obvious, huh? :P
vid_rec.cfg
timescale 1
cl_avidemo <insert your framerate here>
snd_rec.cfg
wav_record
The cfg's are ready and waiting. What next?
Now it's the time for a n1 command:
show_framecount 1
Type that and voilla - screenshot.
Now, fast forward the demo to the frag scene and make a screenshot i.e. when the first frag goes off. Now, turn off ET and write down the frame number.
Following the screenshot:
606769106
1000 = 1000 ms = 1 second
Let's cut off the last part to have a nice, round number.
606769000
Now, to make sure we don't miss anything, let's step back a little, 5000 frames will do (up to your liking, this is an example).
And we end up with 606764000.
Now, exec.cfg looks like this:
exec_at_time 606764000 vid_rec.cfg
1. Start the demo, fast forward to about 20-30 secs before the scene starts, open up the console and type:
exec exec
2. Recording will start automatically, using framerate specified in vid_rec.cfg.
3. Record the scene like you would normally do, blah blah.
4. Change exec.cfg to
exec_at_time 606764000 snd_rec.cfg
5. Repeat 1.
6. After the scene is recorded, open the console and type wav_stoprecord.
Congratulations, you have recorded both the audio and the video.
Of course, do everything what you would normally do after recording (resizing/lossless compression, etc.).
Now comes the sweet and easy part. Just import the .avi/.tga sequence and the .wav file (ET saves sound files in %ETdir%/%modname%/wav - i.e. G:\ET\etpro\wav). Because recording was started at the very same frame for both of these elements, they are already synchronized, you just have to make sure that they start in the same moment.
Thanks for reading.
P.S.
Next time I watch a fragmovie with hitsounds out of sync, the person who edited that movie will get anally raped using this.
Let's get down to business.
This tutorial is about synchronizing sounds recorded using wav_record. The way I use isn't perhaps the fastest but it's safe and it never failed (at least for me).
This method uses the brilliant and underrated command 'exec_at_time'. It simply executes a config at the frame with specified number (doh!).
E.g.
exec_at_time 20787000 vid_rec.cfg
This will execute the vid_rec.cfg file at frame number 20787000.
'How do I know which frame should I exec the cfg at?' - We will get to that.
1. Config files
You need 3 separate config files, all of them must be in one directory (directory of the mod that will be used to record with):
exec.cfg
vid_rec.cfg
snd_rec.cfg
Each of them consists of one line (you can of course add more commands, those here are essential).
exec.cfg
exec_at_time 12345678 vid_rec.cfg
or
exec_at_time 12345678 snd_rec.cfg
pretty obvious, huh? :P
vid_rec.cfg
timescale 1
cl_avidemo <insert your framerate here>
snd_rec.cfg
wav_record
2. Frame number
The cfg's are ready and waiting. What next?
Now it's the time for a n1 command:
show_framecount 1
Type that and voilla - screenshot.
Now, fast forward the demo to the frag scene and make a screenshot i.e. when the first frag goes off. Now, turn off ET and write down the frame number.
Following the screenshot:
606769106
1000 = 1000 ms = 1 second
Let's cut off the last part to have a nice, round number.
606769000
Now, to make sure we don't miss anything, let's step back a little, 5000 frames will do (up to your liking, this is an example).
And we end up with 606764000.
Now, exec.cfg looks like this:
exec_at_time 606764000 vid_rec.cfg
3. Recording
1. Start the demo, fast forward to about 20-30 secs before the scene starts, open up the console and type:
exec exec
2. Recording will start automatically, using framerate specified in vid_rec.cfg.
3. Record the scene like you would normally do, blah blah.
4. Change exec.cfg to
exec_at_time 606764000 snd_rec.cfg
5. Repeat 1.
6. After the scene is recorded, open the console and type wav_stoprecord.
Congratulations, you have recorded both the audio and the video.
4. Synchronizing in an editing program
Of course, do everything what you would normally do after recording (resizing/lossless compression, etc.).
Now comes the sweet and easy part. Just import the .avi/.tga sequence and the .wav file (ET saves sound files in %ETdir%/%modname%/wav - i.e. G:\ET\etpro\wav). Because recording was started at the very same frame for both of these elements, they are already synchronized, you just have to make sure that they start in the same moment.
Thanks for reading.
P.S.
Next time I watch a fragmovie with hitsounds out of sync, the person who edited that movie will get anally raped using this.
got a 10x faster way
dunno when ill post it :<
bind x "<command that starts taking the screenshots>;<command for recording sound>"?
lepiej zrob mi prace z worda w miedzyczasie o!
with the method i'm using you're like 10x faster