Rendering frames to .tga files and then making them into clips is very time-expensive, but somewhat worth it. First off, get proper high quality settings, a cleaner hud and some cvars for recording. You can get them from links below.
First off, find the areas you want to record in a demo and using demo hud, write down the start/end times of what you want to record. Then using the simple “renderNetDemo demoname [fps(must be 30)] start_time_in_msec end_time_in_msec” command write loads of images. You might need lots of hdd space for large clips. 10GiB is probably the minimum.
Having written these images, open up vDub(link below) and convert the images into a clip. Use huffyuv(link below) for lossless compression. I do suggest adding some filters, contrast: 118% and sharpen: 16
Having made your clips, time to record sound if necessary.
Any app that can record “stereo mix” or “What u hear” will do. Just start playing the demo and record the sound.
Using a movie-making app, do what you want with the clips. I suggest trying out sony vegas(30day trial).
Now, you need to sync audio to video. Find key points at start and end of the sound clip and sync it to video. Sometimes you need to stretch your audio clip to maintain a sync.
I suggest using x264 as your final codec. A bitrate of 3000-5000 is suitable. Multipass is suggested.
My movie config:link
Huffyuv codec:link
virtualDub: link
x264vfw: link