Some tips from me:
AviSynth is a good tool for pre-processing stuff (it's a good idea to get
AvsP as well for nicer working environment for AviSynth).
x264 is good for compressing stuff before uploading to YouTube (because uploading lossless video takes forever).
For YouTube videos that aren't HD, a good idea is to blur the video if it has tons of stuff going on. For example, you can take a look at these two versions of the same video (uploaded by yours truly):
As you can see, the latter video looks a lot better, because the blurring made it easier for YouTube's shitty encoder to handle.
A extremely quick crash-course into using Avisynth:
1. Install AviSynth
2. Create a new file called [anything].avs into the same folder as your source video
3. Open this .avs file in AvsP (you can associate .avs files with AvsP in the program options). In this .avs file, write this:
AviSource("myrecording.avi")
4. To blur it, you need to do the following:
AviSource("myrecording.avi")
Blur(1.0)
5. You can also do the resizing part with AviSynth by doing something like this:
AviSource("myrecording.avi")
Spline36Resize(960,720)
Blur(1.0)
6. You can preview your video with AvsP and it's recommended to do that. I recommend using Spline36Resize for high-quality resizing. Though if you're recording a pixelart game and want to double the pixels, the easiest way would be to use PointResize(last.width*2,last.height*2) - PointResize is nearest neigbour resizing. If you want to add borders (though I wouldn't recommend that), you can use the AddBorders function.
7. AviSynth has tons of functionality - this is merely a very small scratch into what you can do with it. You could do full-fledged video editing with it if you wanted (in fact, I have edited a trailer together with it), but it's best for image processing, really.
Now to get something out of your AviSynth files, you could drag & drop your .avs into VirtualDub and encode it with it, but I would recommend using x264 for converting your video. If you decide to go this route (I really recommend it, since you're guaranteed to get the best quality out of it), you should also get
neroaacenc (or some vorbis encoder if you're familiar with them but I tend to use neroaacenc myself) and
mkvtoolnix (
EDIT: Make sure you don't get version 4.2.0, as it is somewhat broken, get 4.1.1 instead). Oh, and the AviSynth
SoundOut plugin.
I very much recommend putting the x264 and neroaacenc executables into a PATH folder (google this if you don't know what it means). Otherwise put them into the folder with your other work files.
Anyway, how to handle things:
1. First, you need to export the audio from your AviSynth script to an external WAV file for neroaacenc. To do this, simply add this line to the end of your .avs:
SoundOut("WAV","myaudio.wav")
Then refresh the preview in AvsP and SoundOut should do its magic. Afterwards you can comment the line out with a #.
2. Now for the actual encoding - open up a command prompt (cli.exe) and navigate to the folder your files reside in.
3. The actual video encoding part is actually very simple, input the following:
x264 --preset slow --tune animation --crf 22 -o output.mkv myfile.avs
If you want to change encoding speed, change the preset (veryslow, slower, slow, medium, fast, veryfast, ultrafast). Note that this results in a bigger file.
If you want to change the quality, change the CRF (constant quality) value. I'd say 20-23 is good for most game recordings at 640x480@30fps. The lower the number the better the quality (and the bigger the filesize)
4. After the video is done encoding, encode the audio with the following:
neroaacenc -q 0.5 -if myaudio.wav -of output.mp4
The -q is the quality option, which goes from 0.0 to 1.0. You can also use constant bitrate mode if you want, in which case you would use -bitrate 128000 for 128kbps audio. There's also a -2pass parameter available in this mode.
5. Now that you've encoded your media, all that is left is to mux it. Open mkvmerge GUI (mmg.exe) from mkvtoolnix. Drag & drop your encoded video & audio file into mkvmerge, write an output file name, and press Mux. You should end up with a nice mkv file with both the video and audio in it. Now your file is ready to be uploaded to YouTube (or any other site you feel like uploading to)
That's about it!
Also, a few words about FRAPS: It's also a very good recording program for anything GPU-accelerated. Using it usually results in a lot better recording quality than what you can get with Camtasia. FRAPS captures uncompressed RGB24 video and PCM audio, so the recordings are pretty huge. It automatically splits the recording at every 4GB. To handle the multiple input files in AviSynth, all you need to do is something like this for the input part:
a=AviSource("frapsfile1.avi")
b=AviSource("frapsfile2.avi")
c=AviSource("frapsfile3.avi")
a++b++c
After that you can deal with the recording like it was a single file.
Also, if you're recording at higher than 30 FPS with FRAPS, it's a good idea to decimate the video beforehand to 30FPS max because YouTube will do that otherwise. To decimate a 60fps video to 30fps, simply add the following line after your input lines:
This selects every odd frame from the video, effectively halving the fps. You could also use SelectEven() if you feel like it.
That's all for now! Hope this is of help to someone.