void MainWindow_OnDrop(object sender, DragEventArgs e) { var files = (string[])e.Data.GetData(DataFormats.FileDrop, false); var queue = new Queue <EncodeSettings>(); foreach (var file in files) { if (ExtensionChecker.IsUnsupportedExtension(file)) { continue; } var settings = new EncodeSettings { input = file, videoCodec = VideoCodec.Text, videoBitrate = VideoBitrate.Text, framerate = Framerate.Text, videoSize = (string.IsNullOrEmpty(VideoWidth.Text) || string.IsNullOrEmpty(VideoHeight.Text)) ? "" : $"{VideoWidth.Text}x{VideoHeight.Text}", yuv420p = YUV420P.IsChecked == true, simultaneously = Simultaneously.IsChecked == true, audioCodec = AudioCodec.Text, audioBitrate = AudioBitrate.Text, startSec = StartSec.Text, duration = Duration.Text, concatenate = Concatenate.IsChecked == true, output = file }; queue.Enqueue(settings); } MovieEncoder.AddQueue(queue, Concatenate.IsChecked == true); }
public static string GetAttributedExtension(EncodeSettings settings) { var extension = Path.GetExtension(settings.output); if (settings.concatenate) { return("Concat.mp4"); } if (extension == ".mp4") { return("Encoded.mp4"); } return(".mp4"); }
void MainWindow_OnOptionChanged(object sender, EventArgs eventArgs) { var settings = new EncodeSettings { input = "input.mp4", videoCodec = VideoCodec.Text, videoBitrate = VideoBitrate.Text, framerate = Framerate.Text, videoSize = (string.IsNullOrEmpty(VideoWidth.Text) || string.IsNullOrEmpty(VideoHeight.Text)) ? "" : $"{VideoWidth.Text}x{VideoHeight.Text}", yuv420p = YUV420P.IsChecked == true, simultaneously = Simultaneously.IsChecked == true, audioCodec = AudioCodec.Text, audioBitrate = AudioBitrate.Text, startSec = StartSec.Text, duration = Duration.Text, concatenate = Concatenate.IsChecked == true, output = "output.mp4" }; var arguments = MovieEncoder.CreateArguments(settings); CommandPreview.Text = "ffmpeg " + arguments; }