Added bitrate option to video converter

This commit is contained in:
Jaex 2023-03-15 11:23:38 +03:00
parent 733502ddc1
commit 39c169771d
6 changed files with 444 additions and 241 deletions

View file

@ -37,19 +37,23 @@ private void InitializeComponent()
this.btnOutputFolderBrowse = new System.Windows.Forms.Button();
this.lblOutputFileName = new System.Windows.Forms.Label();
this.txtOutputFileName = new System.Windows.Forms.TextBox();
this.lblVideoCodec = new System.Windows.Forms.Label();
this.cbVideoCodec = new System.Windows.Forms.ComboBox();
this.cbVideoEncoder = new System.Windows.Forms.ComboBox();
this.lblVideoQuality = new System.Windows.Forms.Label();
this.btnEncode = new System.Windows.Forms.Button();
this.txtArguments = new System.Windows.Forms.TextBox();
this.cbAutoOpenFolder = new System.Windows.Forms.CheckBox();
this.pbProgress = new ShareX.HelpersLib.BlackStyleProgressBar();
this.cbUseCustomArguments = new System.Windows.Forms.CheckBox();
this.lblVideoEncoder = new System.Windows.Forms.Label();
this.tbVideoQuality = new System.Windows.Forms.TrackBar();
this.lblVideoQualityValue = new System.Windows.Forms.Label();
this.lblVideoQualityHigher = new System.Windows.Forms.Label();
this.lblVideoQualityLower = new System.Windows.Forms.Label();
this.cbAutoOpenFolder = new System.Windows.Forms.CheckBox();
this.pbProgress = new ShareX.HelpersLib.BlackStyleProgressBar();
this.cbUseCustomArguments = new System.Windows.Forms.CheckBox();
this.nudVideoQualityBitrate = new System.Windows.Forms.NumericUpDown();
this.lblVideoQualityBitrateHint = new System.Windows.Forms.Label();
this.cbVideoQualityUseBitrate = new System.Windows.Forms.CheckBox();
((System.ComponentModel.ISupportInitialize)(this.tbVideoQuality)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudVideoQualityBitrate)).BeginInit();
this.SuspendLayout();
//
// lblInputFilePath
@ -99,18 +103,13 @@ private void InitializeComponent()
this.txtOutputFileName.Name = "txtOutputFileName";
this.txtOutputFileName.TextChanged += new System.EventHandler(this.txtOutputFileName_TextChanged);
//
// lblVideoCodec
// cbVideoEncoder
//
resources.ApplyResources(this.lblVideoCodec, "lblVideoCodec");
this.lblVideoCodec.Name = "lblVideoCodec";
//
// cbVideoCodec
//
this.cbVideoCodec.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbVideoCodec.FormattingEnabled = true;
resources.ApplyResources(this.cbVideoCodec, "cbVideoCodec");
this.cbVideoCodec.Name = "cbVideoCodec";
this.cbVideoCodec.SelectedIndexChanged += new System.EventHandler(this.cbVideoCodec_SelectedIndexChanged);
this.cbVideoEncoder.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbVideoEncoder.FormattingEnabled = true;
resources.ApplyResources(this.cbVideoEncoder, "cbVideoEncoder");
this.cbVideoEncoder.Name = "cbVideoEncoder";
this.cbVideoEncoder.SelectedIndexChanged += new System.EventHandler(this.cbVideoEncoder_SelectedIndexChanged);
//
// lblVideoQuality
//
@ -130,6 +129,32 @@ private void InitializeComponent()
this.txtArguments.Name = "txtArguments";
this.txtArguments.TextChanged += new System.EventHandler(this.txtArguments_TextChanged);
//
// cbAutoOpenFolder
//
resources.ApplyResources(this.cbAutoOpenFolder, "cbAutoOpenFolder");
this.cbAutoOpenFolder.Name = "cbAutoOpenFolder";
this.cbAutoOpenFolder.UseVisualStyleBackColor = true;
this.cbAutoOpenFolder.CheckedChanged += new System.EventHandler(this.cbAutoOpenFolder_CheckedChanged);
//
// pbProgress
//
resources.ApplyResources(this.pbProgress, "pbProgress");
this.pbProgress.ForeColor = System.Drawing.Color.White;
this.pbProgress.Name = "pbProgress";
this.pbProgress.ShowPercentageText = true;
//
// cbUseCustomArguments
//
resources.ApplyResources(this.cbUseCustomArguments, "cbUseCustomArguments");
this.cbUseCustomArguments.Name = "cbUseCustomArguments";
this.cbUseCustomArguments.UseVisualStyleBackColor = true;
this.cbUseCustomArguments.CheckedChanged += new System.EventHandler(this.cbUseCustomArguments_CheckedChanged);
//
// lblVideoEncoder
//
resources.ApplyResources(this.lblVideoEncoder, "lblVideoEncoder");
this.lblVideoEncoder.Name = "lblVideoEncoder";
//
// tbVideoQuality
//
resources.ApplyResources(this.tbVideoQuality, "tbVideoQuality");
@ -153,26 +178,38 @@ private void InitializeComponent()
resources.ApplyResources(this.lblVideoQualityLower, "lblVideoQualityLower");
this.lblVideoQualityLower.Name = "lblVideoQualityLower";
//
// cbAutoOpenFolder
// nudVideoQualityBitrate
//
resources.ApplyResources(this.cbAutoOpenFolder, "cbAutoOpenFolder");
this.cbAutoOpenFolder.Name = "cbAutoOpenFolder";
this.cbAutoOpenFolder.UseVisualStyleBackColor = true;
this.cbAutoOpenFolder.CheckedChanged += new System.EventHandler(this.cbAutoOpenFolder_CheckedChanged);
resources.ApplyResources(this.nudVideoQualityBitrate, "nudVideoQualityBitrate");
this.nudVideoQualityBitrate.Maximum = new decimal(new int[] {
100000,
0,
0,
0});
this.nudVideoQualityBitrate.Minimum = new decimal(new int[] {
100,
0,
0,
0});
this.nudVideoQualityBitrate.Name = "nudVideoQualityBitrate";
this.nudVideoQualityBitrate.Value = new decimal(new int[] {
3000,
0,
0,
0});
this.nudVideoQualityBitrate.ValueChanged += new System.EventHandler(this.nudVideoQualityBitrate_ValueChanged);
//
// pbProgress
// lblVideoQualityBitrateHint
//
resources.ApplyResources(this.pbProgress, "pbProgress");
this.pbProgress.ForeColor = System.Drawing.Color.White;
this.pbProgress.Name = "pbProgress";
this.pbProgress.ShowPercentageText = true;
resources.ApplyResources(this.lblVideoQualityBitrateHint, "lblVideoQualityBitrateHint");
this.lblVideoQualityBitrateHint.Name = "lblVideoQualityBitrateHint";
//
// cbUseCustomArguments
// cbVideoQualityUseBitrate
//
resources.ApplyResources(this.cbUseCustomArguments, "cbUseCustomArguments");
this.cbUseCustomArguments.Name = "cbUseCustomArguments";
this.cbUseCustomArguments.UseVisualStyleBackColor = true;
this.cbUseCustomArguments.CheckedChanged += new System.EventHandler(this.cbUseCustomArguments_CheckedChanged);
resources.ApplyResources(this.cbVideoQualityUseBitrate, "cbVideoQualityUseBitrate");
this.cbVideoQualityUseBitrate.Name = "cbVideoQualityUseBitrate";
this.cbVideoQualityUseBitrate.UseVisualStyleBackColor = true;
this.cbVideoQualityUseBitrate.CheckedChanged += new System.EventHandler(this.cbVideoQualityUseBitrate_CheckedChanged);
//
// VideoConverterForm
//
@ -180,6 +217,10 @@ private void InitializeComponent()
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.BackColor = System.Drawing.SystemColors.Window;
this.Controls.Add(this.cbVideoQualityUseBitrate);
this.Controls.Add(this.lblVideoQualityBitrateHint);
this.Controls.Add(this.nudVideoQualityBitrate);
this.Controls.Add(this.lblVideoEncoder);
this.Controls.Add(this.lblVideoQualityValue);
this.Controls.Add(this.cbUseCustomArguments);
this.Controls.Add(this.cbAutoOpenFolder);
@ -187,10 +228,9 @@ private void InitializeComponent()
this.Controls.Add(this.lblVideoQualityLower);
this.Controls.Add(this.txtOutputFileName);
this.Controls.Add(this.lblOutputFileName);
this.Controls.Add(this.lblVideoCodec);
this.Controls.Add(this.tbVideoQuality);
this.Controls.Add(this.btnOutputFolderBrowse);
this.Controls.Add(this.cbVideoCodec);
this.Controls.Add(this.cbVideoEncoder);
this.Controls.Add(this.lblOutputFolder);
this.Controls.Add(this.lblVideoQuality);
this.Controls.Add(this.txtOutputFolder);
@ -207,6 +247,7 @@ private void InitializeComponent()
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.VideoConverterForm_DragDrop);
this.DragEnter += new System.Windows.Forms.DragEventHandler(this.VideoConverterForm_DragEnter);
((System.ComponentModel.ISupportInitialize)(this.tbVideoQuality)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nudVideoQualityBitrate)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@ -222,17 +263,20 @@ private void InitializeComponent()
private System.Windows.Forms.Button btnOutputFolderBrowse;
private System.Windows.Forms.Label lblOutputFileName;
private System.Windows.Forms.TextBox txtOutputFileName;
private System.Windows.Forms.Label lblVideoCodec;
private System.Windows.Forms.ComboBox cbVideoCodec;
private System.Windows.Forms.ComboBox cbVideoEncoder;
private System.Windows.Forms.Label lblVideoQuality;
private System.Windows.Forms.Button btnEncode;
private System.Windows.Forms.TextBox txtArguments;
private HelpersLib.BlackStyleProgressBar pbProgress;
private System.Windows.Forms.CheckBox cbAutoOpenFolder;
private System.Windows.Forms.CheckBox cbUseCustomArguments;
private System.Windows.Forms.Label lblVideoEncoder;
private System.Windows.Forms.TrackBar tbVideoQuality;
private System.Windows.Forms.Label lblVideoQualityValue;
private System.Windows.Forms.Label lblVideoQualityHigher;
private System.Windows.Forms.Label lblVideoQualityLower;
private HelpersLib.BlackStyleProgressBar pbProgress;
private System.Windows.Forms.CheckBox cbAutoOpenFolder;
private System.Windows.Forms.CheckBox cbUseCustomArguments;
private System.Windows.Forms.NumericUpDown nudVideoQualityBitrate;
private System.Windows.Forms.Label lblVideoQualityBitrateHint;
private System.Windows.Forms.CheckBox cbVideoQualityUseBitrate;
}
}

View file

@ -53,9 +53,11 @@ public VideoConverterForm(string ffmpegFilePath, VideoConverterOptions options)
txtInputFilePath.Text = Options.InputFilePath;
txtOutputFolder.Text = Options.OutputFolderPath;
txtOutputFileName.Text = Options.OutputFileName;
cbVideoCodec.Items.AddRange(Helpers.GetEnumDescriptions<ConverterVideoCodecs>());
cbVideoCodec.SelectedIndex = (int)Options.VideoCodec;
cbVideoEncoder.Items.AddRange(Helpers.GetEnumDescriptions<ConverterVideoCodecs>());
cbVideoEncoder.SelectedIndex = (int)Options.VideoCodec;
cbVideoQualityUseBitrate.Checked = Options.VideoQualityUseBitrate;
tbVideoQuality.SetValue(tbVideoQuality.Minimum + tbVideoQuality.Maximum - Options.VideoQuality);
nudVideoQualityBitrate.SetValue(Options.VideoQualityBitrate);
cbAutoOpenFolder.Checked = Options.AutoOpenFolder;
@ -76,8 +78,11 @@ private void UpdateOptions()
Options.InputFilePath = txtInputFilePath.Text;
Options.OutputFolderPath = txtOutputFolder.Text;
Options.OutputFileName = txtOutputFileName.Text;
Options.VideoCodec = (ConverterVideoCodecs)cbVideoCodec.SelectedIndex;
Options.VideoCodec = (ConverterVideoCodecs)cbVideoEncoder.SelectedIndex;
Options.VideoQualityUseBitrate = cbVideoQualityUseBitrate.Checked;
Options.VideoQualityBitrate = (int)nudVideoQualityBitrate.Value;
Options.UseCustomArguments = cbUseCustomArguments.Checked;
if (Options.UseCustomArguments)
{
Options.CustomArguments = txtArguments.Text;
@ -91,12 +96,14 @@ private void UpdateOptions()
case ConverterVideoCodecs.vp8:
case ConverterVideoCodecs.vp9:
case ConverterVideoCodecs.xvid:
lblVideoQuality.Visible = tbVideoQuality.Visible = lblVideoQualityValue.Visible = lblVideoQualityLower.Visible =
lblVideoQualityHigher.Visible = !Options.UseCustomArguments;
lblVideoQuality.Visible = cbVideoQualityUseBitrate.Visible = !Options.UseCustomArguments;
tbVideoQuality.Visible = lblVideoQualityValue.Visible = lblVideoQualityLower.Visible = lblVideoQualityHigher.Visible =
!Options.UseCustomArguments && !Options.VideoQualityUseBitrate;
nudVideoQualityBitrate.Visible = lblVideoQualityBitrateHint.Visible = !Options.UseCustomArguments && Options.VideoQualityUseBitrate;
break;
default:
lblVideoQuality.Visible = tbVideoQuality.Visible = lblVideoQualityValue.Visible = lblVideoQualityLower.Visible =
lblVideoQualityHigher.Visible = false;
lblVideoQuality.Visible = cbVideoQualityUseBitrate.Visible = tbVideoQuality.Visible = lblVideoQualityValue.Visible = lblVideoQualityLower.Visible =
lblVideoQualityHigher.Visible = nudVideoQualityBitrate.Visible = lblVideoQualityBitrateHint.Visible = false;
break;
}
@ -124,8 +131,8 @@ private void UpdateOptions()
break;
}
lblVideoQualityLower.Text = tbVideoQuality.Maximum + " <- " + Resources.LowerQualitySize;
lblVideoQualityHigher.Text = Resources.HigherQualitySize + " -> " + tbVideoQuality.Minimum;
lblVideoQualityLower.Text = tbVideoQuality.Maximum + " " + Resources.LowerQualitySize;
lblVideoQualityHigher.Text = Resources.HigherQualitySize + " " + tbVideoQuality.Minimum;
if (formReady)
{
@ -146,7 +153,7 @@ private void UpdateOptions()
}
}
lblVideoCodec.Visible = cbVideoCodec.Visible = !Options.UseCustomArguments;
lblVideoEncoder.Visible = cbVideoEncoder.Visible = !Options.UseCustomArguments;
txtArguments.Visible = Options.UseCustomArguments;
btnEncode.Enabled = !string.IsNullOrEmpty(Options.InputFilePath) && !string.IsNullOrEmpty(Options.OutputFolderPath) &&
@ -247,7 +254,12 @@ private void txtOutputFileName_TextChanged(object sender, EventArgs e)
UpdateOptions();
}
private void cbVideoCodec_SelectedIndexChanged(object sender, EventArgs e)
private void cbVideoEncoder_SelectedIndexChanged(object sender, EventArgs e)
{
UpdateOptions();
}
private void cbVideoQualityUseBitrate_CheckedChanged(object sender, EventArgs e)
{
UpdateOptions();
}
@ -257,6 +269,11 @@ private void tbVideoQuality_ValueChanged(object sender, EventArgs e)
UpdateOptions();
}
private void nudVideoQualityBitrate_ValueChanged(object sender, EventArgs e)
{
UpdateOptions();
}
private void cbAutoOpenFolder_CheckedChanged(object sender, EventArgs e)
{
Options.AutoOpenFolder = cbAutoOpenFolder.Checked;

View file

@ -144,13 +144,13 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblInputFilePath.ZOrder" xml:space="preserve">
<value>16</value>
<value>19</value>
</data>
<data name="txtInputFilePath.Location" type="System.Drawing.Point, System.Drawing">
<value>162, 12</value>
<value>160, 12</value>
</data>
<data name="txtInputFilePath.Size" type="System.Drawing.Size, System.Drawing">
<value>342, 20</value>
<value>344, 20</value>
</data>
<data name="txtInputFilePath.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -165,7 +165,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;txtInputFilePath.ZOrder" xml:space="preserve">
<value>15</value>
<value>18</value>
</data>
<data name="btnInputFilePathBrowse.Location" type="System.Drawing.Point, System.Drawing">
<value>512, 11</value>
@ -178,7 +178,6 @@
</data>
<data name="btnInputFilePathBrowse.Text" xml:space="preserve">
<value>...</value>
<comment>@Invariant</comment>
</data>
<data name="&gt;&gt;btnInputFilePathBrowse.Name" xml:space="preserve">
<value>btnInputFilePathBrowse</value>
@ -190,13 +189,13 @@
<value>$this</value>
</data>
<data name="&gt;&gt;btnInputFilePathBrowse.ZOrder" xml:space="preserve">
<value>14</value>
<value>17</value>
</data>
<data name="txtOutputFolder.Location" type="System.Drawing.Point, System.Drawing">
<value>162, 36</value>
<value>160, 36</value>
</data>
<data name="txtOutputFolder.Size" type="System.Drawing.Size, System.Drawing">
<value>342, 20</value>
<value>344, 20</value>
</data>
<data name="txtOutputFolder.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
@ -211,7 +210,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;txtOutputFolder.ZOrder" xml:space="preserve">
<value>13</value>
<value>16</value>
</data>
<data name="lblOutputFolder.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -238,7 +237,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblOutputFolder.ZOrder" xml:space="preserve">
<value>11</value>
<value>14</value>
</data>
<data name="btnOutputFolderBrowse.Location" type="System.Drawing.Point, System.Drawing">
<value>512, 35</value>
@ -251,7 +250,6 @@
</data>
<data name="btnOutputFolderBrowse.Text" xml:space="preserve">
<value>...</value>
<comment>@Invariant</comment>
</data>
<data name="&gt;&gt;btnOutputFolderBrowse.Name" xml:space="preserve">
<value>btnOutputFolderBrowse</value>
@ -263,7 +261,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;btnOutputFolderBrowse.ZOrder" xml:space="preserve">
<value>9</value>
<value>12</value>
</data>
<data name="lblOutputFileName.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -290,13 +288,13 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblOutputFileName.ZOrder" xml:space="preserve">
<value>6</value>
<value>10</value>
</data>
<data name="txtOutputFileName.Location" type="System.Drawing.Point, System.Drawing">
<value>162, 60</value>
<value>160, 60</value>
</data>
<data name="txtOutputFileName.Size" type="System.Drawing.Size, System.Drawing">
<value>342, 20</value>
<value>344, 20</value>
</data>
<data name="txtOutputFileName.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
@ -311,61 +309,34 @@
<value>$this</value>
</data>
<data name="&gt;&gt;txtOutputFileName.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="lblVideoCodec.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblVideoCodec.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 96</value>
</data>
<data name="lblVideoCodec.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 13</value>
</data>
<data name="lblVideoCodec.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="lblVideoCodec.Text" xml:space="preserve">
<value>Video codec:</value>
</data>
<data name="&gt;&gt;lblVideoCodec.Name" xml:space="preserve">
<value>lblVideoCodec</value>
</data>
<data name="&gt;&gt;lblVideoCodec.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblVideoCodec.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lblVideoCodec.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="cbVideoCodec.Location" type="System.Drawing.Point, System.Drawing">
<value>120, 92</value>
</data>
<data name="cbVideoCodec.Size" type="System.Drawing.Size, System.Drawing">
<value>120, 21</value>
</data>
<data name="cbVideoCodec.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="&gt;&gt;cbVideoCodec.Name" xml:space="preserve">
<value>cbVideoCodec</value>
<data name="cbVideoEncoder.Location" type="System.Drawing.Point, System.Drawing">
<value>160, 84</value>
</data>
<data name="&gt;&gt;cbVideoCodec.Type" xml:space="preserve">
<data name="cbVideoEncoder.Size" type="System.Drawing.Size, System.Drawing">
<value>120, 21</value>
</data>
<data name="cbVideoEncoder.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="&gt;&gt;cbVideoEncoder.Name" xml:space="preserve">
<value>cbVideoEncoder</value>
</data>
<data name="&gt;&gt;cbVideoEncoder.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbVideoCodec.Parent" xml:space="preserve">
<data name="&gt;&gt;cbVideoEncoder.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;cbVideoCodec.ZOrder" xml:space="preserve">
<value>10</value>
<data name="&gt;&gt;cbVideoEncoder.ZOrder" xml:space="preserve">
<value>13</value>
</data>
<data name="lblVideoQuality.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblVideoQuality.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 128</value>
<value>13, 112</value>
</data>
<data name="lblVideoQuality.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 13</value>
@ -386,7 +357,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;lblVideoQuality.ZOrder" xml:space="preserve">
<value>12</value>
<value>15</value>
</data>
<data name="btnEncode.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 9.75pt</value>
@ -398,7 +369,7 @@
<value>184, 32</value>
</data>
<data name="btnEncode.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
<value>21</value>
</data>
<data name="btnEncode.Text" xml:space="preserve">
<value>Start encoding</value>
@ -413,7 +384,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;btnEncode.ZOrder" xml:space="preserve">
<value>17</value>
<value>20</value>
</data>
<data name="txtArguments.Font" type="System.Drawing.Font, System.Drawing">
<value>Verdana, 9.75pt</value>
@ -425,10 +396,10 @@
<value>True</value>
</data>
<data name="txtArguments.Size" type="System.Drawing.Size, System.Drawing">
<value>526, 80</value>
<value>528, 72</value>
</data>
<data name="txtArguments.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
<value>18</value>
</data>
<data name="&gt;&gt;txtArguments.Name" xml:space="preserve">
<value>txtArguments</value>
@ -440,124 +411,19 @@
<value>$this</value>
</data>
<data name="&gt;&gt;txtArguments.ZOrder" xml:space="preserve">
<value>19</value>
</data>
<data name="tbVideoQuality.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="tbVideoQuality.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 123</value>
</data>
<data name="tbVideoQuality.Size" type="System.Drawing.Size, System.Drawing">
<value>398, 22</value>
</data>
<data name="tbVideoQuality.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="&gt;&gt;tbVideoQuality.Name" xml:space="preserve">
<value>tbVideoQuality</value>
</data>
<data name="&gt;&gt;tbVideoQuality.Type" xml:space="preserve">
<value>System.Windows.Forms.TrackBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tbVideoQuality.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tbVideoQuality.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<data name="lblVideoQualityValue.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblVideoQualityValue.Location" type="System.Drawing.Point, System.Drawing">
<value>515, 126</value>
</data>
<data name="lblVideoQualityValue.Size" type="System.Drawing.Size, System.Drawing">
<value>13, 13</value>
</data>
<data name="lblVideoQualityValue.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
</data>
<data name="lblVideoQualityValue.Text" xml:space="preserve">
<value>0</value>
<comment>@Invariant</comment>
</data>
<data name="&gt;&gt;lblVideoQualityValue.Name" xml:space="preserve">
<value>lblVideoQualityValue</value>
</data>
<data name="&gt;&gt;lblVideoQualityValue.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblVideoQualityValue.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lblVideoQualityValue.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="lblVideoQualityHigher.Location" type="System.Drawing.Point, System.Drawing">
<value>323, 146</value>
</data>
<data name="lblVideoQualityHigher.Size" type="System.Drawing.Size, System.Drawing">
<value>182, 22</value>
</data>
<data name="lblVideoQualityHigher.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
<data name="lblVideoQualityHigher.Text" xml:space="preserve">
<value>Xxxxxxxxxxxxxxxxxxxxxxxxxxxx -&gt; 99</value>
<comment>@Invariant</comment>
</data>
<data name="lblVideoQualityHigher.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>TopRight</value>
</data>
<data name="&gt;&gt;lblVideoQualityHigher.Name" xml:space="preserve">
<value>lblVideoQualityHigher</value>
</data>
<data name="&gt;&gt;lblVideoQualityHigher.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblVideoQualityHigher.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lblVideoQualityHigher.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="lblVideoQualityLower.Location" type="System.Drawing.Point, System.Drawing">
<value>117, 146</value>
</data>
<data name="lblVideoQualityLower.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 22</value>
</data>
<data name="lblVideoQualityLower.TabIndex" type="System.Int32, mscorlib">
<value>13</value>
</data>
<data name="lblVideoQualityLower.Text" xml:space="preserve">
<value>99 &lt;- Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</value>
<comment>@Invariant</comment>
</data>
<data name="&gt;&gt;lblVideoQualityLower.Name" xml:space="preserve">
<value>lblVideoQualityLower</value>
</data>
<data name="&gt;&gt;lblVideoQualityLower.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblVideoQualityLower.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lblVideoQualityLower.ZOrder" xml:space="preserve">
<value>4</value>
<value>22</value>
</data>
<data name="cbAutoOpenFolder.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cbAutoOpenFolder.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 200</value>
<value>16, 192</value>
</data>
<data name="cbAutoOpenFolder.Size" type="System.Drawing.Size, System.Drawing">
<value>152, 17</value>
</data>
<data name="cbAutoOpenFolder.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
<value>20</value>
</data>
<data name="cbAutoOpenFolder.Text" xml:space="preserve">
<value>Open folder after encoding</value>
@ -572,7 +438,7 @@
<value>$this</value>
</data>
<data name="&gt;&gt;cbAutoOpenFolder.ZOrder" xml:space="preserve">
<value>2</value>
<value>6</value>
</data>
<data name="pbProgress.Font" type="System.Drawing.Font, System.Drawing">
<value>Arial, 11.25pt</value>
@ -584,7 +450,7 @@
<value>336, 32</value>
</data>
<data name="pbProgress.TabIndex" type="System.Int32, mscorlib">
<value>19</value>
<value>22</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="pbProgress.Text" type="System.Resources.ResXNullRef, System.Windows.Forms">
@ -594,25 +460,25 @@
<value>pbProgress</value>
</data>
<data name="&gt;&gt;pbProgress.Type" xml:space="preserve">
<value>ShareX.HelpersLib.BlackStyleProgressBar, ShareX.HelpersLib, Version=14.1.2.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HelpersLib.BlackStyleProgressBar, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;pbProgress.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;pbProgress.ZOrder" xml:space="preserve">
<value>18</value>
<value>21</value>
</data>
<data name="cbUseCustomArguments.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cbUseCustomArguments.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 176</value>
<value>16, 168</value>
</data>
<data name="cbUseCustomArguments.Size" type="System.Drawing.Size, System.Drawing">
<value>134, 17</value>
</data>
<data name="cbUseCustomArguments.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
<value>19</value>
</data>
<data name="cbUseCustomArguments.Text" xml:space="preserve">
<value>Use custom arguments</value>
@ -627,8 +493,227 @@
<value>$this</value>
</data>
<data name="&gt;&gt;cbUseCustomArguments.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="lblVideoEncoder.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblVideoEncoder.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 88</value>
</data>
<data name="lblVideoEncoder.Size" type="System.Drawing.Size, System.Drawing">
<value>79, 13</value>
</data>
<data name="lblVideoEncoder.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="lblVideoEncoder.Text" xml:space="preserve">
<value>Video encoder:</value>
</data>
<data name="&gt;&gt;lblVideoEncoder.Name" xml:space="preserve">
<value>lblVideoEncoder</value>
</data>
<data name="&gt;&gt;lblVideoEncoder.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblVideoEncoder.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lblVideoEncoder.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="tbVideoQuality.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="tbVideoQuality.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="tbVideoQuality.Location" type="System.Drawing.Point, System.Drawing">
<value>153, 112</value>
</data>
<data name="tbVideoQuality.Size" type="System.Drawing.Size, System.Drawing">
<value>359, 24</value>
</data>
<data name="tbVideoQuality.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="&gt;&gt;tbVideoQuality.Name" xml:space="preserve">
<value>tbVideoQuality</value>
</data>
<data name="&gt;&gt;tbVideoQuality.Type" xml:space="preserve">
<value>System.Windows.Forms.TrackBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tbVideoQuality.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tbVideoQuality.ZOrder" xml:space="preserve">
<value>11</value>
</data>
<data name="lblVideoQualityValue.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblVideoQualityValue.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="lblVideoQualityValue.Location" type="System.Drawing.Point, System.Drawing">
<value>512, 117</value>
</data>
<data name="lblVideoQualityValue.Size" type="System.Drawing.Size, System.Drawing">
<value>13, 13</value>
</data>
<data name="lblVideoQualityValue.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
</data>
<data name="lblVideoQualityValue.Text" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;lblVideoQualityValue.Name" xml:space="preserve">
<value>lblVideoQualityValue</value>
</data>
<data name="&gt;&gt;lblVideoQualityValue.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblVideoQualityValue.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lblVideoQualityValue.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="lblVideoQualityHigher.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="lblVideoQualityHigher.Location" type="System.Drawing.Point, System.Drawing">
<value>316, 139</value>
</data>
<data name="lblVideoQualityHigher.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 18</value>
</data>
<data name="lblVideoQualityHigher.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
<data name="lblVideoQualityHigher.Text" xml:space="preserve">
<value>xxxxxxxxxxxxxxxxxxxxxxxxxxxx -&gt; 99</value>
</data>
<data name="lblVideoQualityHigher.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>TopRight</value>
</data>
<data name="&gt;&gt;lblVideoQualityHigher.Name" xml:space="preserve">
<value>lblVideoQualityHigher</value>
</data>
<data name="&gt;&gt;lblVideoQualityHigher.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblVideoQualityHigher.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lblVideoQualityHigher.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="lblVideoQualityLower.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="lblVideoQualityLower.Location" type="System.Drawing.Point, System.Drawing">
<value>157, 139</value>
</data>
<data name="lblVideoQualityLower.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 18</value>
</data>
<data name="lblVideoQualityLower.TabIndex" type="System.Int32, mscorlib">
<value>13</value>
</data>
<data name="lblVideoQualityLower.Text" xml:space="preserve">
<value>99 &lt;- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</value>
</data>
<data name="&gt;&gt;lblVideoQualityLower.Name" xml:space="preserve">
<value>lblVideoQualityLower</value>
</data>
<data name="&gt;&gt;lblVideoQualityLower.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblVideoQualityLower.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lblVideoQualityLower.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<data name="nudVideoQualityBitrate.Location" type="System.Drawing.Point, System.Drawing">
<value>160, 112</value>
</data>
<data name="nudVideoQualityBitrate.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 20</value>
</data>
<data name="nudVideoQualityBitrate.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="nudVideoQualityBitrate.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Center</value>
</data>
<data name="&gt;&gt;nudVideoQualityBitrate.Name" xml:space="preserve">
<value>nudVideoQualityBitrate</value>
</data>
<data name="&gt;&gt;nudVideoQualityBitrate.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;nudVideoQualityBitrate.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;nudVideoQualityBitrate.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="lblVideoQualityBitrateHint.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblVideoQualityBitrateHint.Location" type="System.Drawing.Point, System.Drawing">
<value>245, 116</value>
</data>
<data name="lblVideoQualityBitrateHint.Size" type="System.Drawing.Size, System.Drawing">
<value>34, 13</value>
</data>
<data name="lblVideoQualityBitrateHint.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
</data>
<data name="lblVideoQualityBitrateHint.Text" xml:space="preserve">
<value>kbit/s</value>
</data>
<data name="&gt;&gt;lblVideoQualityBitrateHint.Name" xml:space="preserve">
<value>lblVideoQualityBitrateHint</value>
</data>
<data name="&gt;&gt;lblVideoQualityBitrateHint.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblVideoQualityBitrateHint.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lblVideoQualityBitrateHint.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="cbVideoQualityUseBitrate.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cbVideoQualityUseBitrate.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 136</value>
</data>
<data name="cbVideoQualityUseBitrate.Size" type="System.Drawing.Size, System.Drawing">
<value>77, 17</value>
</data>
<data name="cbVideoQualityUseBitrate.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="cbVideoQualityUseBitrate.Text" xml:space="preserve">
<value>Use bitrate</value>
</data>
<data name="&gt;&gt;cbVideoQualityUseBitrate.Name" xml:space="preserve">
<value>cbVideoQualityUseBitrate</value>
</data>
<data name="&gt;&gt;cbVideoQualityUseBitrate.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbVideoQualityUseBitrate.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;cbVideoQualityUseBitrate.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>

View file

@ -52,6 +52,8 @@ public string OutputFilePath
public ConverterVideoCodecs VideoCodec { get; set; } = ConverterVideoCodecs.x264;
public int VideoQuality { get; set; } = 23;
public bool VideoQualityUseBitrate { get; set; } = false;
public int VideoQualityBitrate { get; set; } = 3000;
public bool UseCustomArguments { get; set; } = false;
public string CustomArguments { get; set; } = "";
@ -81,54 +83,109 @@ public string GetFFmpegArgs()
// Input file path
args.Append($"-i \"{InputFilePath}\" ");
// Video codec
// Video encoder
switch (VideoCodec)
{
case ConverterVideoCodecs.x264: // https://trac.ffmpeg.org/wiki/Encode/H.264
args.Append($"-c:v libx264 -preset medium -crf {VideoQuality.Clamp(FFmpegCLIManager.x264_min, FFmpegCLIManager.x264_max)} ");
args.Append("-pix_fmt yuv420p -movflags +faststart "); // For browser support
args.Append("-c:v libx264 ");
args.Append("-preset medium ");
if (VideoQualityUseBitrate)
{
args.Append($"-b:v {VideoQualityBitrate}k ");
}
else
{
args.Append($"-crf {VideoQuality.Clamp(FFmpegCLIManager.x264_min, FFmpegCLIManager.x264_max)} ");
}
args.Append("-pix_fmt yuv420p ");
args.Append("-movflags +faststart ");
break;
case ConverterVideoCodecs.x265: // https://trac.ffmpeg.org/wiki/Encode/H.265
args.Append($"-c:v libx265 -preset medium -crf {VideoQuality.Clamp(FFmpegCLIManager.x265_min, FFmpegCLIManager.x265_max)} ");
args.Append("-c:v libx265 ");
args.Append("-preset medium ");
if (VideoQualityUseBitrate)
{
args.Append($"-b:v {VideoQualityBitrate}k ");
}
else
{
args.Append($"-crf {VideoQuality.Clamp(FFmpegCLIManager.x265_min, FFmpegCLIManager.x265_max)} ");
}
break;
case ConverterVideoCodecs.vp8: // https://trac.ffmpeg.org/wiki/Encode/VP8
args.Append($"-c:v libvpx -crf {VideoQuality.Clamp(FFmpegCLIManager.vp8_min, FFmpegCLIManager.vp8_max)} -b:v 0 ");
args.Append("-c:v libvpx ");
if (VideoQualityUseBitrate)
{
args.Append($"-b:v {VideoQualityBitrate}k ");
}
else
{
args.Append($"-crf {VideoQuality.Clamp(FFmpegCLIManager.vp8_min, FFmpegCLIManager.vp8_max)} ");
args.Append("-b:v 100M ");
}
break;
case ConverterVideoCodecs.vp9: // https://trac.ffmpeg.org/wiki/Encode/VP9
args.Append($"-c:v libvpx-vp9 -crf {VideoQuality.Clamp(FFmpegCLIManager.vp9_min, FFmpegCLIManager.vp9_max)} -b:v 0 ");
args.Append("-c:v libvpx-vp9 ");
if (VideoQualityUseBitrate)
{
args.Append($"-b:v {VideoQualityBitrate}k ");
}
else
{
args.Append($"-crf {VideoQuality.Clamp(FFmpegCLIManager.vp9_min, FFmpegCLIManager.vp9_max)} ");
args.Append("-b:v 0 ");
}
break;
case ConverterVideoCodecs.xvid: // https://trac.ffmpeg.org/wiki/Encode/MPEG-4
args.Append($"-c:v libxvid -q:v {VideoQuality.Clamp(FFmpegCLIManager.xvid_min, FFmpegCLIManager.xvid_max)} ");
args.Append("-c:v libxvid ");
if (VideoQualityUseBitrate)
{
args.Append($"-b:v {VideoQualityBitrate}k ");
}
else
{
args.Append($"-q:v {VideoQuality.Clamp(FFmpegCLIManager.xvid_min, FFmpegCLIManager.xvid_max)} ");
}
break;
case ConverterVideoCodecs.gif: // https://ffmpeg.org/ffmpeg-filters.html#palettegen-1
args.Append("-lavfi \"palettegen=stats_mode=full[palette],[0:v][palette]paletteuse=dither=sierra2_4a\" ");
break;
case ConverterVideoCodecs.webp: // https://www.ffmpeg.org/ffmpeg-codecs.html#libwebp
args.Append("-c:v libwebp -lossless 0 -preset default -loop 0 ");
args.Append("-c:v libwebp ");
args.Append("-lossless 0 ");
args.Append("-preset default ");
args.Append("-loop 0 ");
break;
case ConverterVideoCodecs.apng:
args.Append("-f apng -plays 0 ");
args.Append("-f apng ");
args.Append("-plays 0 ");
break;
}
// Audio codec
// Audio encoder
switch (VideoCodec)
{
case ConverterVideoCodecs.x264: // https://trac.ffmpeg.org/wiki/Encode/AAC
case ConverterVideoCodecs.x265:
args.Append("-c:a aac -b:a 128k ");
args.Append("-c:a aac ");
args.Append("-b:a 128k ");
break;
case ConverterVideoCodecs.vp8: // https://trac.ffmpeg.org/wiki/TheoraVorbisEncodingGuide
case ConverterVideoCodecs.vp9:
args.Append("-c:a libvorbis -q:a 3 ");
args.Append("-c:a libvorbis ");
args.Append("-q:a 3 ");
break;
case ConverterVideoCodecs.xvid: // https://trac.ffmpeg.org/wiki/Encode/MP3
args.Append("-c:a libmp3lame -q:a 4 ");
args.Append("-c:a libmp3lame ");
args.Append("-q:a 4 ");
break;
}
// Overwrite output files without asking
args.Append($"-y ");
// Output file path
args.Append($"-y \"{OutputFilePath}\"");
args.Append($"\"{OutputFilePath}\"");
return args.ToString();
}

View file

@ -145,7 +145,7 @@
<Compile Include="Forms\StickerForm.Designer.cs">
<DependentUpon>StickerForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\StickerImageListViewRenderer.cs" />
<Compile Include="Helpers\StickerImageListViewRenderer.cs" />
<Compile Include="Forms\StickerPackForm.cs">
<SubType>Form</SubType>
</Compile>