Added ConcatenateVideos method

This commit is contained in:
Jaex 2022-09-03 13:50:09 +03:00
parent 9922f870b9
commit ebbb0ca233

View file

@ -29,6 +29,8 @@
using System.Diagnostics;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
@ -274,5 +276,35 @@ public DirectShowDevices GetDirectShowDevices()
return devices;
}
public void ConcatenateVideos(string[] inputFiles, string outputFile, bool autoDeleteInputFiles = false)
{
string listFile = outputFile + ".txt";
string contents = string.Join(Environment.NewLine, inputFiles.Select(inputFile => $"file '{inputFile}'"));
File.WriteAllText(listFile, contents);
try
{
bool result = Run($"-hide_banner -f concat -safe 0 -i \"{listFile}\" -c copy \"{outputFile}\"");
if (result && autoDeleteInputFiles)
{
foreach (string inputFile in inputFiles)
{
if (!inputFile.Equals(outputFile, StringComparison.OrdinalIgnoreCase) && File.Exists(inputFile))
{
File.Delete(inputFile);
}
}
}
}
finally
{
if (File.Exists(listFile))
{
File.Delete(listFile);
}
}
}
}
}