Screen recording ui changes

This commit is contained in:
Jaex 2014-05-20 19:12:52 +03:00
parent ba961d03ad
commit cfc93cd6b2
6 changed files with 58 additions and 47 deletions

View file

@ -76,7 +76,7 @@ public enum FFmpegPreset
[Description("Slower")]
slower,
[Description("Very slow")]
veryslow,
veryslow
}
public enum FFmpegAudioCodec

View file

@ -67,9 +67,10 @@ public FFmpegOptions()
Extension = "mp4";
CLIPath = "ffmpeg.exe";
UserArgs = "";
ShowError = true;
// x264
x264_CRF = 20;
x264_CRF = 23;
Preset = FFmpegPreset.medium;
// VPx

View file

@ -28,11 +28,12 @@ protected override void Dispose(bool disposing)
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FFmpegOptionsForm));
this.lblExt = new System.Windows.Forms.Label();
this.lblX264CRF = new System.Windows.Forms.Label();
this.nudx264CRF = new System.Windows.Forms.NumericUpDown();
this.tpFFmpeg = new System.Windows.Forms.ToolTip();
this.tpFFmpeg = new System.Windows.Forms.ToolTip(this.components);
this.nudQscale = new System.Windows.Forms.NumericUpDown();
this.nudVPxCRF = new System.Windows.Forms.NumericUpDown();
this.cbPreset = new System.Windows.Forms.ComboBox();
@ -206,7 +207,7 @@ private void InitializeComponent()
this.cbPreset.Name = "cbPreset";
this.cbPreset.Size = new System.Drawing.Size(121, 21);
this.cbPreset.TabIndex = 3;
this.tpFFmpeg.SetToolTip(this.cbPreset, "Default is \"Medium\".");
this.tpFFmpeg.SetToolTip(this.cbPreset, resources.GetString("cbPreset.ToolTip"));
this.cbPreset.SelectedIndexChanged += new System.EventHandler(this.cbPreset_SelectedIndexChanged);
//
// tbVorbis_qscale

View file

@ -123,6 +123,15 @@
<data name="nudx264CRF.ToolTip" xml:space="preserve">
<value>Constant Rate Factor (CRF): The range of the quantizer scale is 0-51: where 0 is lossless, 23 is default, and 51 is worst possible.
A lower value is a higher quality and a subjectively sane range is 18-28.
Consider 18 to be visually lossless or nearly so: it should look the same or nearly the same as the input but it isn't technically lossless.</value>
Consider 18 to be visually lossless or nearly so: it should look the same or nearly the same as the input but it isn't technically lossless.
The range is exponential, so increasing the CRF value +6 is roughly half the bitrate while -6 is roughly twice the bitrate.
General usage is to choose the highest CRF value that still provides an acceptable quality.
If the output looks good, then try a higher value and if it looks bad then choose a lower value.</value>
</data>
<data name="cbPreset.ToolTip" xml:space="preserve">
<value>The default preset is "Medium".
A preset is a collection of options that will provide a certain encoding speed to compression ratio. A slower preset will provide better compression (compression is quality per filesize).
This means that, for example, if you target a certain file size or constant bit rate, you will achieve better quality with a slower preset.
Similarly, for constant quality encoding, you will simply save bitrate by choosing a slower preset.</value>
</data>
</root>

View file

@ -113,7 +113,6 @@ private void InitializeComponent()
this.nudScreenRecordFPS = new System.Windows.Forms.NumericUpDown();
this.lblScreenRecordFPS = new System.Windows.Forms.Label();
this.chkRunScreencastCLI = new System.Windows.Forms.CheckBox();
this.lblScreenRecorderCLI = new System.Windows.Forms.Label();
this.btnScreenRecorderOptions = new System.Windows.Forms.Button();
this.btnEncoderConfig = new System.Windows.Forms.Button();
this.cboEncoder = new System.Windows.Forms.ComboBox();
@ -166,6 +165,7 @@ private void InitializeComponent()
this.tpAdvanced = new System.Windows.Forms.TabPage();
this.pgTaskSettings = new System.Windows.Forms.PropertyGrid();
this.chkUseDefaultAdvancedSettings = new System.Windows.Forms.CheckBox();
this.lblScreenRecorderFixedDuration = new System.Windows.Forms.Label();
this.tcHotkeySettings.SuspendLayout();
this.tpTask.SuspendLayout();
this.cmsDestinations.SuspendLayout();
@ -1124,10 +1124,10 @@ private void InitializeComponent()
//
// tpScreenRecorder
//
this.tpScreenRecorder.Controls.Add(this.lblScreenRecorderFixedDuration);
this.tpScreenRecorder.Controls.Add(this.nudScreenRecordFPS);
this.tpScreenRecorder.Controls.Add(this.lblScreenRecordFPS);
this.tpScreenRecorder.Controls.Add(this.chkRunScreencastCLI);
this.tpScreenRecorder.Controls.Add(this.lblScreenRecorderCLI);
this.tpScreenRecorder.Controls.Add(this.btnScreenRecorderOptions);
this.tpScreenRecorder.Controls.Add(this.btnEncoderConfig);
this.tpScreenRecorder.Controls.Add(this.cboEncoder);
@ -1149,7 +1149,7 @@ private void InitializeComponent()
//
// nudScreenRecordFPS
//
this.nudScreenRecordFPS.Location = new System.Drawing.Point(320, 69);
this.nudScreenRecordFPS.Location = new System.Drawing.Point(144, 64);
this.nudScreenRecordFPS.Maximum = new decimal(new int[] {
30,
0,
@ -1174,7 +1174,7 @@ private void InitializeComponent()
// lblScreenRecordFPS
//
this.lblScreenRecordFPS.AutoSize = true;
this.lblScreenRecordFPS.Location = new System.Drawing.Point(208, 73);
this.lblScreenRecordFPS.Location = new System.Drawing.Point(16, 68);
this.lblScreenRecordFPS.Name = "lblScreenRecordFPS";
this.lblScreenRecordFPS.Size = new System.Drawing.Size(100, 13);
this.lblScreenRecordFPS.TabIndex = 7;
@ -1183,28 +1183,19 @@ private void InitializeComponent()
// chkRunScreencastCLI
//
this.chkRunScreencastCLI.AutoSize = true;
this.chkRunScreencastCLI.Location = new System.Drawing.Point(392, 14);
this.chkRunScreencastCLI.Location = new System.Drawing.Point(18, 42);
this.chkRunScreencastCLI.Name = "chkRunScreencastCLI";
this.chkRunScreencastCLI.Size = new System.Drawing.Size(117, 17);
this.chkRunScreencastCLI.Size = new System.Drawing.Size(120, 17);
this.chkRunScreencastCLI.TabIndex = 3;
this.chkRunScreencastCLI.Text = "Run CLI afterwards";
this.chkRunScreencastCLI.Text = "Run CLI afterwards:";
this.chkRunScreencastCLI.UseVisualStyleBackColor = true;
this.chkRunScreencastCLI.CheckedChanged += new System.EventHandler(this.chkRunScreencastCLI_CheckedChanged);
//
// lblScreenRecorderCLI
//
this.lblScreenRecorderCLI.AutoSize = true;
this.lblScreenRecorderCLI.Location = new System.Drawing.Point(16, 48);
this.lblScreenRecorderCLI.Name = "lblScreenRecorderCLI";
this.lblScreenRecorderCLI.Size = new System.Drawing.Size(26, 13);
this.lblScreenRecorderCLI.TabIndex = 4;
this.lblScreenRecorderCLI.Text = "CLI:";
//
// btnScreenRecorderOptions
//
this.btnScreenRecorderOptions.Location = new System.Drawing.Point(320, 11);
this.btnScreenRecorderOptions.Location = new System.Drawing.Point(402, 15);
this.btnScreenRecorderOptions.Name = "btnScreenRecorderOptions";
this.btnScreenRecorderOptions.Size = new System.Drawing.Size(64, 23);
this.btnScreenRecorderOptions.Size = new System.Drawing.Size(70, 23);
this.btnScreenRecorderOptions.TabIndex = 2;
this.btnScreenRecorderOptions.Text = "Options...";
this.btnScreenRecorderOptions.UseVisualStyleBackColor = true;
@ -1212,11 +1203,11 @@ private void InitializeComponent()
//
// btnEncoderConfig
//
this.btnEncoderConfig.Location = new System.Drawing.Point(392, 40);
this.btnEncoderConfig.Location = new System.Drawing.Point(402, 39);
this.btnEncoderConfig.Name = "btnEncoderConfig";
this.btnEncoderConfig.Size = new System.Drawing.Size(40, 23);
this.btnEncoderConfig.Size = new System.Drawing.Size(70, 23);
this.btnEncoderConfig.TabIndex = 6;
this.btnEncoderConfig.Text = "...";
this.btnEncoderConfig.Text = "Profiles...";
this.btnEncoderConfig.UseVisualStyleBackColor = true;
this.btnEncoderConfig.Click += new System.EventHandler(this.btnEncoderConfig_Click);
//
@ -1224,9 +1215,9 @@ private void InitializeComponent()
//
this.cboEncoder.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cboEncoder.FormattingEnabled = true;
this.cboEncoder.Location = new System.Drawing.Point(64, 41);
this.cboEncoder.Location = new System.Drawing.Point(144, 40);
this.cboEncoder.Name = "cboEncoder";
this.cboEncoder.Size = new System.Drawing.Size(320, 21);
this.cboEncoder.Size = new System.Drawing.Size(256, 21);
this.cboEncoder.TabIndex = 5;
this.cboEncoder.SelectedIndexChanged += new System.EventHandler(this.cboEncoder_SelectedIndexChanged);
//
@ -1238,7 +1229,7 @@ private void InitializeComponent()
0,
0,
65536});
this.nudScreenRecorderDuration.Location = new System.Drawing.Point(320, 123);
this.nudScreenRecorderDuration.Location = new System.Drawing.Point(144, 112);
this.nudScreenRecorderDuration.Maximum = new decimal(new int[] {
60,
0,
@ -1263,7 +1254,7 @@ private void InitializeComponent()
// lblScreenRecorderStartDelay
//
this.lblScreenRecorderStartDelay.AutoSize = true;
this.lblScreenRecorderStartDelay.Location = new System.Drawing.Point(248, 154);
this.lblScreenRecorderStartDelay.Location = new System.Drawing.Point(16, 140);
this.lblScreenRecorderStartDelay.Name = "lblScreenRecorderStartDelay";
this.lblScreenRecorderStartDelay.Size = new System.Drawing.Size(60, 13);
this.lblScreenRecorderStartDelay.TabIndex = 13;
@ -1277,7 +1268,7 @@ private void InitializeComponent()
0,
0,
65536});
this.nudScreenRecorderStartDelay.Location = new System.Drawing.Point(320, 150);
this.nudScreenRecorderStartDelay.Location = new System.Drawing.Point(144, 136);
this.nudScreenRecorderStartDelay.Maximum = new decimal(new int[] {
60,
0,
@ -1298,16 +1289,16 @@ private void InitializeComponent()
//
this.cbScreenRecorderOutput.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbScreenRecorderOutput.FormattingEnabled = true;
this.cbScreenRecorderOutput.Location = new System.Drawing.Point(64, 12);
this.cbScreenRecorderOutput.Location = new System.Drawing.Point(144, 16);
this.cbScreenRecorderOutput.Name = "cbScreenRecorderOutput";
this.cbScreenRecorderOutput.Size = new System.Drawing.Size(248, 21);
this.cbScreenRecorderOutput.Size = new System.Drawing.Size(256, 21);
this.cbScreenRecorderOutput.TabIndex = 1;
this.cbScreenRecorderOutput.SelectedIndexChanged += new System.EventHandler(this.cbScreenRecorderOutput_SelectedIndexChanged);
//
// lblScreenRecorderOutput
//
this.lblScreenRecorderOutput.AutoSize = true;
this.lblScreenRecorderOutput.Location = new System.Drawing.Point(16, 16);
this.lblScreenRecorderOutput.Location = new System.Drawing.Point(16, 20);
this.lblScreenRecorderOutput.Name = "lblScreenRecorderOutput";
this.lblScreenRecorderOutput.Size = new System.Drawing.Size(42, 13);
this.lblScreenRecorderOutput.TabIndex = 0;
@ -1316,17 +1307,17 @@ private void InitializeComponent()
// cbScreenRecorderFixedDuration
//
this.cbScreenRecorderFixedDuration.AutoSize = true;
this.cbScreenRecorderFixedDuration.Location = new System.Drawing.Point(164, 125);
this.cbScreenRecorderFixedDuration.Location = new System.Drawing.Point(18, 114);
this.cbScreenRecorderFixedDuration.Name = "cbScreenRecorderFixedDuration";
this.cbScreenRecorderFixedDuration.Size = new System.Drawing.Size(144, 17);
this.cbScreenRecorderFixedDuration.Size = new System.Drawing.Size(95, 17);
this.cbScreenRecorderFixedDuration.TabIndex = 11;
this.cbScreenRecorderFixedDuration.Text = "Fixed duration (seconds):";
this.cbScreenRecorderFixedDuration.Text = "Fixed duration:";
this.cbScreenRecorderFixedDuration.UseVisualStyleBackColor = true;
this.cbScreenRecorderFixedDuration.CheckedChanged += new System.EventHandler(this.cbScreenRecorderFixedDuration_CheckedChanged);
//
// nudGIFFPS
//
this.nudGIFFPS.Location = new System.Drawing.Point(320, 96);
this.nudGIFFPS.Location = new System.Drawing.Point(144, 88);
this.nudGIFFPS.Maximum = new decimal(new int[] {
30,
0,
@ -1351,7 +1342,7 @@ private void InitializeComponent()
// lblGIFPS
//
this.lblGIFPS.AutoSize = true;
this.lblGIFPS.Location = new System.Drawing.Point(258, 100);
this.lblGIFPS.Location = new System.Drawing.Point(16, 92);
this.lblGIFPS.Name = "lblGIFPS";
this.lblGIFPS.Size = new System.Drawing.Size(50, 13);
this.lblGIFPS.TabIndex = 9;
@ -1798,6 +1789,15 @@ private void InitializeComponent()
this.chkUseDefaultAdvancedSettings.UseVisualStyleBackColor = true;
this.chkUseDefaultAdvancedSettings.CheckedChanged += new System.EventHandler(this.chkUseDefaultAdvancedSettings_CheckedChanged);
//
// lblScreenRecorderFixedDuration
//
this.lblScreenRecorderFixedDuration.AutoSize = true;
this.lblScreenRecorderFixedDuration.Location = new System.Drawing.Point(210, 115);
this.lblScreenRecorderFixedDuration.Name = "lblScreenRecorderFixedDuration";
this.lblScreenRecorderFixedDuration.Size = new System.Drawing.Size(47, 13);
this.lblScreenRecorderFixedDuration.TabIndex = 15;
this.lblScreenRecorderFixedDuration.Text = "seconds";
//
// TaskSettingsForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -2002,12 +2002,12 @@ private void InitializeComponent()
private System.Windows.Forms.CheckBox cbThumbnailIfSmaller;
private System.Windows.Forms.CheckBox cbClipboardUploadAutoIndexFolder;
private System.Windows.Forms.Button btnScreenRecorderOptions;
private System.Windows.Forms.Label lblScreenRecorderCLI;
private System.Windows.Forms.CheckBox chkRunScreencastCLI;
private System.Windows.Forms.CheckBox chkClipboardUploadContents;
private System.Windows.Forms.NumericUpDown nudScreenRecordFPS;
private System.Windows.Forms.Label lblScreenRecordFPS;
private System.Windows.Forms.CheckBox chkShowBeforeUploadForm;
private System.Windows.Forms.Label lblScreenRecorderFixedDuration;

View file

@ -293,18 +293,18 @@ public class TaskSettingsCapture
#region Capture / Screen recorder
public ScreenRecordOutput ScreenRecordOutput = ScreenRecordOutput.FFmpeg;
public AVIOptions AVIOptions = new AVIOptions();
public FFmpegOptions FFmpegOptions = new FFmpegOptions();
public int GIFFPS = 5;
public int ScreenRecordFPS = 20;
public bool ScreenRecordFixedDuration = true;
public float ScreenRecordDuration = 3f;
public float ScreenRecordStartDelay = 0.1f;
public AVIOptions AVIOptions = new AVIOptions();
public bool RunScreencastCLI = false;
public int VideoEncoderSelected = 0;
public int ScreenRecordFPS = 20;
public int GIFFPS = 5;
public bool ScreenRecordFixedDuration = false;
public float ScreenRecordDuration = 3f;
public float ScreenRecordStartDelay = 0.5f;
#endregion Capture / Screen recorder
}