public void StartConversion(string destinationFolder) { if (State == ConversionStateEnum.InProgress) { return; } _startTicks = DateTime.Now.Ticks; State = ConversionStateEnum.InProgress; _destinationFolder = destinationFolder; _timeLeftCalc = new TimeLeftCalculator(SourceInfo.FrameCount, 400); var dest320x180 = Path.Combine(destinationFolder, "320x180"); if (vaiFazer320 && !Directory.Exists(dest320x180)) { Directory.CreateDirectory(dest320x180); // deixa deisparar aqui se não for possível criar } var dest480x270 = Path.Combine(destinationFolder, "480x270"); if (vaiFazer480 && !Directory.Exists(dest480x270)) { Directory.CreateDirectory(dest480x270); } var dest640x360 = Path.Combine(destinationFolder, "640x360"); if (vaiFazer640 && !Directory.Exists(dest640x360)) { Directory.CreateDirectory(dest640x360); } var dest1280x720 = Path.Combine(destinationFolder, "1280x720"); if (vaiFazer1280 && !Directory.Exists(dest1280x720)) { Directory.CreateDirectory(dest1280x720); } fi = new FFmpegProcess( new ProcessStartOptions { Priority = ProcessPriorityClass.BelowNormal, DisplayMode = FFmpegDisplayMode.None } ); fi.Completed += Fi_Completed; fi.StatusUpdated += Fi_StatusUpdated; var cmd = $"-i \"{_source}\" " + // arquivo de entrada (!vaiFazer320 ? string.Empty : $" -c:a aac -strict experimental -ac 2 -b:a 64k -ar 44100 -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 1.3 -maxrate 192K -bufsize 1M -crf 18 -r 10 -g 30 -f hls -hls_time 9 -hls_list_size 0 -s 320x180 -hls_segment_filename \"{dest320x180}\\%03d.ts\" \"{dest320x180}\\{SEGMENT_MANIFEST_FILE_NAME}\"") + (!vaiFazer480 ? string.Empty : $" -c:a aac -strict experimental -ac 2 -b:a 64k -ar 44100 -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 2.1 -maxrate 500K -bufsize 2M -crf 18 -r 10 -g 30 -f hls -hls_time 9 -hls_list_size 0 -s 480x270 -hls_segment_filename \"{dest480x270}\\%03d.ts\" \"{dest480x270}\\{SEGMENT_MANIFEST_FILE_NAME}\"") + (!vaiFazer640 ? string.Empty : $" -c:a aac -strict experimental -ac 2 -b:a 96k -ar 44100 -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3.1 -maxrate 1M -bufsize 3M -crf 18 -r 24 -g 72 -f hls -hls_time 9 -hls_list_size 0 -s 640x360 -hls_segment_filename \"{dest640x360}\\%03d.ts\" \"{dest640x360}\\{SEGMENT_MANIFEST_FILE_NAME}\"") + (!vaiFazer1280 ? string.Empty : $" -c:a aac -strict experimental -ac 2 -b:a 96k -ar 44100 -c:v libx264 -pix_fmt yuv420p -profile:v main -level 3.2 -maxrate 2M -bufsize 6M -crf 18 -r 24 -g 72 -f hls -hls_time 9 -hls_list_size 0 -s 1280x720 -hls_segment_filename \"{dest1280x720}\\%03d.ts\" \"{dest1280x720}\\{SEGMENT_MANIFEST_FILE_NAME}\""); fi.RunFFmpeg(cmd); }
public ConversionCompletedEventArgs(ConversionStateEnum state) { Status = state; }