how to join video files?
If you have money CarbonCoder does this. It is very easy, drag and drop the video, check the "stitch" box and select the output format.

Else you can use ffmpeg + avisynth.
Create an avisynth script which will just read and add the different videos:

Avisynth script:

vid1 = FFmpegSource2("path_to_first_video.avi")
vid2 = FFmpegSource2("path_to_second_video.avi")
vidn = FFmpegSource2("path_to_nth_video.avi")
concat = vid1 + vid2 + .. + vidn 
return concat


ffmpeg command

ffmpeg.exe -i avisynth_script.avs [ encoding options ] concatened_video.avi


In the example I used avi container, but avisynth supports also quicktime and other.
Find here the Avisynth documentation . This will work on windows, as far as I know avisynth does not work on linux ( or in alpha stage ? ).