The main contenders are Camtasia (30-day trial, $300 to buy, records any area of the screen, encodes on the fly) and FRAPS ($37 to buy, demo limited to 30 second recordings and applies a watermark, records any DirectX fullscreen or window). There's a free app called
CamStudio which I haven't tried.
Youtube won't take FRAPS files directly. Encode them first with
VirtualDub. Open the AVI in VirtualDub, go to Video->Compression and select a codec, and then Save as AVI. Use Camtasia's codec if possible to create small files quickly without losing too much video quality.
If you can't get your setup to record from both sound and microphone at the same time, there's a workaround. Have FRAPS record game audio as normal, while recording from the microphone using
Audacity. (You can even use two separate computers if necessary.) Combine the two later with
Avisynth. Create a script like the one below, load it in VirtualDub, and save it as AVI:
# save this file as "merge.avs"
video = AviSource("game.avi").ResampleAudio(44100)
commentary = WavSource("audio.wav").ResampleAudio(44100)
commentary = MergeChannels(commentary.GetChannel(1), commentary.GetChannel(1))
audio = MixAudio(commentary, video, 0.75, 0.25)
return AudioDub(video, audio)
Assuming you start the audio recording first, you'll have to cut the start of the audio in Audacity to make it sync. It may help to give a countdown or make a beep, something you can sync up with starting the screen recorder (remember that you can edit the beep out itself once you have the sync correct).