I would strongly recommend libavcodec library and FFmpeg, which is based on libav. Please see:
http://en.wikipedia.org/wiki/Ffmpeg[
^],
http://ffmpeg.org/[
^],
http://en.wikipedia.org/wiki/Libavcodec[
^],
http://libav.org/[
^].
In both cases, you can get free open-source utilities which can make nearly everything, and certainly joining of any video, with transcoding or not (in that case, appending media formats and properties should match).
There are a number of FFmpeg or libav wrappers for .NET:
http://paulspicks.com/download/solid-ffmpeg-c-net-wrapper.aspx[
^],
http://www.visioforge.com/Products/video-edit-sdk-ffmpeg-net.html[
^],
http://www.overridepro.com/2009/05/23/ffmpeg-with-net/[
^].
Search for it:
http://bit.ly/124rYgx[
^].
In worse case, you can simply execute the utility via
System.Diagnostics.Process.Start
:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx[
^].
You can capture the output using redirected
StandardOutput
stream, and, just in case,
StandardError
. You can find the code sample of redirection here:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput.aspx[
^].
Good luck,
—SA