Example #1
0
        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);
        }