Merging Videos using C#
Merging Videos using C# Programming:
using System;
using System.Diagnostics;
using System.IO;
namespace VideoMerger.Util
{
public class MergeMultipleVideos
{
public void MergingVideos()
{
string[] videoFiles = {
@"D:\video1.mp4",
@"D:\video2.mp4",
@"D:\video3.mp4"
};
string outputFile = "merged_video.mp4";
string tempFile = "files.txt";
using (StreamWriter writer = new StreamWriter(tempFile))
{
foreach (var video in videoFiles)
{
writer.WriteLine($"file '{Path.GetFullPath(video)}'");
}
}
var ffmpegPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "FFmpeg", "ffmpeg.exe");
var arguments = $"-f concat -safe 0 -i {tempFile} -c copy {outputFile}";
var processInfo = new ProcessStartInfo
{
FileName = ffmpegPath,
Arguments = arguments,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true
};
using (var process = Process.Start(processInfo))
{
if (process == null)
{
Console.WriteLine("Failed to start FFmpeg process.");
return;
}
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
process.WaitForExit();
Console.WriteLine("FFmpeg output: " + output);
Console.WriteLine("FFmpeg error: " + error);
}
File.Delete(tempFile);
Console.WriteLine("Videos merged successfully!");
}
}
}
Comments
Post a Comment