/* static string GenerateMov(Job job) * { * string offset = " -start_number " + job.MinimumFrameRendered; * * * // -vf scale = 320:-1 "- vf scale = 320:-1, "+ + GammaCorretion + job.Id.ToString()+"_" * string tmp = offset + " -i " +job.RenderNameMask+"%04d" + "-y " + job.ServerPreviewMovFilePath; * Console.WriteLine("\nFFMPEG: " + tmp + "\n"); * _ = Program.RunFFMpeg(tmp); * return tmp; * }*/ static void CheckSequence(Job job) { if (job.Id == 2) { } int SequenceCounter = 0; foreach (var item in job.ExistingFiles) { int framenumber = RenderTask.GetFrameNumberFromFileName(item); if (framenumber < 100000) { if (job.MaximumFrameRendered < framenumber) { job.MaximumFrameRendered = framenumber; } if (job.MinimumFrameRendered > framenumber) { job.MinimumFrameRendered = framenumber; } } } job.FramesMissed = new List <string>(); job.MovRendered = false; string Frame = ""; if (job.Id == 3) { } for (int j = job.MinimumFrameRendered; j <= job.MaximumFrameRendered; j++) { Frame = j.ToString(); if (Frame.Length == 1) { Frame = "000" + Frame; } if (Frame.Length == 2) { Frame = "00" + Frame; } if (Frame.Length == 3) { Frame = "0" + Frame; } string tempFrameId = Frame; Frame = RenderTask.GetServerPreviewFileNameByOriginalFileName(job.RenderNameMask + Frame + ".jpg", job); // проверка на новизну ебаную if (File.Exists(Frame)) { SequenceCounter++; } else { job.FramesMissed.Add(Frame.Substring(Frame.Length - 8, 4)); Program.GenerateFromMissedToServerPreviewFrame(job, Frame); SequenceCounter++; /* * if ( job.MovRendered==false) * { * if (job.LastMovFramesCounter != j) * { * Console.WriteLine("\nGenerating MOV: "+ job.Id+" " + job.MinimumFrameRendered.ToString() + "-" + job.MaximumFrameRendered.ToString()); * * GenerateMovFile(job, Frame, job.MinimumFrameRendered, j); * job.MovRendered = true; * job.LastMovFramesCounter = j; * } * else * { * Console.WriteLine("\nПропускаем MOV, так как число файлов не изменилось\n"); * } * } * */ } if (SequenceCounter >= (job.MaximumFrameRendered - job.MinimumFrameRendered)) { job.MovRendered = true; GenerateMovFile(job, Frame, job.MinimumFrameRendered, j); } } Console.WriteLine("Пропущенных кадров: " + job.FramesMissed.Count); }