public void ConcatFiles() { //Do we need to concatenate at all? if (files.numberOfFiles < 2) { return; } //make filelist string concatList = files.fileCaptureList[0].GetFullFile(); for (int i = 1; i < files.fileCaptureList.Count; i++) { if (File.Exists(files.fileCaptureList[i].GetFullFile())) { concatList = concatList + "|" + files.fileCaptureList[i].GetFullFile(); } } //resulting concat file files.SetConcatFile(configuration["outputPath"]); //"concatCmdLine": "[FULLFFMPEGPATH] -i \"concat:[FILELIST]\" -c copy [FULLOUTPUTPATH]", string cmdLineArgs = configuration["concatCmdLine"]; cmdLineArgs = cmdLineArgs.Replace("[FILELIST]", concatList); cmdLineArgs = cmdLineArgs.Replace("[FULLOUTPUTPATH]", files.concatFile.GetFullFile()); //Run command to concat logWriter.WriteLine($"{DateTime.Now}: Starting Concat: {configuration["ffmpegPath"]} {cmdLineArgs}"); new ProcessManager(configuration).ExecProcess(logWriter, configuration["ffmpegPath"], cmdLineArgs); }
public void ConcatFiles() { //Do we need to concatenate at all? if (files.numberOfFiles < 2) { return; } //make filelist string concatList = ""; bool prependPipe = false; for (int i = 0; i < files.fileCaptureList.Count; i++) { //make sure file exist before putting it into the list if (File.Exists(files.fileCaptureList[i].GetFullFile())) { if (prependPipe) { concatList = concatList + "|"; //prepend if not the first } concatList = concatList + files.fileCaptureList[i].GetFullFile(); prependPipe = true; //now that we've got at least one file, we need to prepent pipe } } //resulting concat file files.SetConcatFile(configuration["outputPath"]); //"concatCmdLine": "[FULLFFMPEGPATH] -i \"concat:[FILELIST]\" -c copy [FULLOUTPUTPATH]", string cmdLineArgs = configuration["concatCmdLine"]; cmdLineArgs = cmdLineArgs.Replace("[FILELIST]", concatList); cmdLineArgs = cmdLineArgs.Replace("[FULLOUTPUTPATH]", files.concatFile.GetFullFile()); //Run command to concat logWriter.WriteLine($"{DateTime.Now}: Starting Concat: {configuration["ffmpegPath"]} {cmdLineArgs}"); new ProcessManager(configuration).ExecProcess(logWriter, configuration["ffmpegPath"], cmdLineArgs); }