Two preconfigured CLI video encoders

This commit is contained in:
mcored 2014-04-20 12:24:03 +08:00
parent c1ff163cc8
commit 506ab5167d
3 changed files with 9 additions and 4 deletions

View file

@ -121,6 +121,11 @@ private void LoadSettings()
cbDontShowPrintSettingDialog.Checked = Program.Settings.DontShowPrintSettingsDialog; cbDontShowPrintSettingDialog.Checked = Program.Settings.DontShowPrintSettingsDialog;
// Profiles // Profiles
if (Program.Settings.VideoEncoders.Count == 0)
{
Program.Settings.VideoEncoders.Add(new VideoEncoder() { Name = "x264 encoder to MP4", Path = "x264.exe", Args = "--output %output %input", OutputExtension = "mp4" });
Program.Settings.VideoEncoders.Add(new VideoEncoder() { Name = "ffmpeg encoder to WebM", Path = "ffmpeg.exe", Args = "-i %input -c:v libvpx -crf 12 -b:v 500K %output", OutputExtension = "webm" });
}
Program.Settings.VideoEncoders.ForEach(x => AddVideoEncoder(x)); Program.Settings.VideoEncoders.ForEach(x => AddVideoEncoder(x));
// Advanced // Advanced

View file

@ -86,12 +86,12 @@ public async void StartRecording(TaskSettings TaskSettings)
{ {
if (!Program.Settings.VideoEncoders.IsValidIndex(TaskSettings.CaptureSettings.VideoEncoderSelected)) if (!Program.Settings.VideoEncoders.IsValidIndex(TaskSettings.CaptureSettings.VideoEncoderSelected))
{ {
MessageBox.Show("Screen recorder CLI encoder not selected.", "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Warning); MessageBox.Show("There is no valid CLI video encoder selected.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return; return;
} }
else if (!Program.Settings.VideoEncoders[TaskSettings.CaptureSettings.VideoEncoderSelected].IsValid()) else if (!Program.Settings.VideoEncoders[TaskSettings.CaptureSettings.VideoEncoderSelected].IsValid())
{ {
MessageBox.Show("Screen recorder CLI file path have problem.", "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Warning); MessageBox.Show("There is a problem with the CLI video encoder file path.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return; return;
} }
} }

View file

@ -202,9 +202,9 @@ public TaskSettingsForm(TaskSettings hotkeySetting, bool isDefault = false)
private void UpdateVideoEncoders() private void UpdateVideoEncoders()
{ {
cboEncoder.Items.Clear();
if (Program.Settings.VideoEncoders.Count > 0) if (Program.Settings.VideoEncoders.Count > 0)
{ {
cboEncoder.Items.Clear();
Program.Settings.VideoEncoders.ForEach(x => cboEncoder.Items.Add(x)); Program.Settings.VideoEncoders.ForEach(x => cboEncoder.Items.Add(x));
cboEncoder.SelectedIndex = TaskSettings.CaptureSettings.VideoEncoderSelected.BetweenOrDefault(0, Program.Settings.VideoEncoders.Count - 1); cboEncoder.SelectedIndex = TaskSettings.CaptureSettings.VideoEncoderSelected.BetweenOrDefault(0, Program.Settings.VideoEncoders.Count - 1);
} }
@ -615,7 +615,7 @@ private void cbCaptureTransparent_CheckedChanged(object sender, EventArgs e)
private void cbScreenRecorderOutput_SelectedIndexChanged(object sender, EventArgs e) private void cbScreenRecorderOutput_SelectedIndexChanged(object sender, EventArgs e)
{ {
TaskSettings.CaptureSettings.ScreenRecordOutput = (ScreenRecordOutput)cbScreenRecorderOutput.SelectedIndex; TaskSettings.CaptureSettings.ScreenRecordOutput = (ScreenRecordOutput)cbScreenRecorderOutput.SelectedIndex;
cboEncoder.Enabled = TaskSettings.CaptureSettings.ScreenRecordOutput == ScreenRecordOutput.AVICommandLine; btnEncoderConfig.Enabled = cboEncoder.Enabled = TaskSettings.CaptureSettings.ScreenRecordOutput == ScreenRecordOutput.AVICommandLine;
} }
private void cboEncoder_SelectedIndexChanged(object sender, EventArgs e) private void cboEncoder_SelectedIndexChanged(object sender, EventArgs e)