public void PublishAndCleanUpAfterCapture(string category) { //If NAS path exists, move file mp4 file there if (!string.IsNullOrEmpty(configuration["nasPath"])) { string publishedPath = configuration["nasPath"]; //Category passed in? If so, let's publish to there instead if (!string.IsNullOrEmpty(category)) { publishedPath = Path.Combine(publishedPath, category); string invalidChars = new string(Path.GetInvalidPathChars()); foreach (char c in invalidChars) { publishedPath = publishedPath.Replace(c.ToString(), ""); } if (!Directory.Exists(publishedPath)) { Directory.CreateDirectory(publishedPath); } } //Ok, ready to publish files.SetPublishedFile(publishedPath); logWriter.WriteLine($"{DateTime.Now}: Moving {files.muxedFile.GetFullFile()} to {files.publishedfile.GetFullFile()}"); File.Move(files.muxedFile.GetFullFile(), files.publishedfile.GetFullFile()); } //If final file exist, delete old .ts file/s files.DeleteNonPublishedFiles(logWriter, configuration); }
public void PublishAndCleanUpAfterCapture(string category, int preMinutes) { //If NAS path exists, move file mp4 file there if (!string.IsNullOrEmpty(configuration["nasPath"])) { string publishedPath = configuration["nasPath"]; //Category passed in? If so, let's publish to there instead if (!string.IsNullOrEmpty(category)) { publishedPath = Path.Combine(publishedPath, category); string invalidChars = new string(Path.GetInvalidPathChars()); foreach (char c in invalidChars) { publishedPath = publishedPath.Replace(c.ToString(), ""); } if (!Directory.Exists(publishedPath)) { Directory.CreateDirectory(publishedPath); } } //Ok, ready to publish files.SetPublishedFile(publishedPath); logWriter.WriteLine($"{DateTime.Now}: Moving {files.muxedFile.GetFullFile()} to {files.publishedFile.GetFullFile()}"); VideoFileManager.MoveFile(files.muxedFile.GetFullFile(), files.publishedFile.GetFullFile()); //Create poster string cmdLineArgs = configuration["artCmdLine"]; cmdLineArgs = cmdLineArgs.Replace("[SECONDS]", ((preMinutes + 1) * 60).ToString()); cmdLineArgs = cmdLineArgs.Replace("[VIDEOFILE]", files.publishedFile.GetFullFile()); cmdLineArgs = cmdLineArgs.Replace("[FULLOUTPUTPATH]", files.posterFile.GetFullFile()); logWriter.WriteLine($"{DateTime.Now}: Creating poster: {configuration["ffmpegPath"]} {cmdLineArgs}"); new ProcessManager(configuration).ExecProcess(logWriter, configuration["ffmpegPath"], cmdLineArgs); //Create fan art cmdLineArgs = configuration["artCmdLine"]; cmdLineArgs = cmdLineArgs.Replace("[SECONDS]", (((preMinutes) * 60) + 15).ToString()); cmdLineArgs = cmdLineArgs.Replace("[VIDEOFILE]", files.publishedFile.GetFullFile()); cmdLineArgs = cmdLineArgs.Replace("[FULLOUTPUTPATH]", files.fanartFile.GetFullFile()); logWriter.WriteLine($"{DateTime.Now}: Creating fan art: {configuration["ffmpegPath"]} {cmdLineArgs}"); new ProcessManager(configuration).ExecProcess(logWriter, configuration["ffmpegPath"], cmdLineArgs); } //If final file exist, delete old .ts file/s files.DeleteNonPublishedFiles(logWriter, configuration); }