mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 06:22:38 +01:00
New setting for using FFMPEG to extract audio
git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@2200 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
parent
d29c1db188
commit
8082189103
13
src/Forms/AddWareForm.Designer.cs
generated
13
src/Forms/AddWareForm.Designer.cs
generated
@ -36,6 +36,7 @@
|
|||||||
this.labelSourcevideoFile = new System.Windows.Forms.Label();
|
this.labelSourcevideoFile = new System.Windows.Forms.Label();
|
||||||
this.labelVideoFileName = new System.Windows.Forms.Label();
|
this.labelVideoFileName = new System.Windows.Forms.Label();
|
||||||
this.buttonCancel = new System.Windows.Forms.Button();
|
this.buttonCancel = new System.Windows.Forms.Button();
|
||||||
|
this.labelInfo = new System.Windows.Forms.Label();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// labelPleaseWait
|
// labelPleaseWait
|
||||||
@ -105,11 +106,22 @@
|
|||||||
this.buttonCancel.UseVisualStyleBackColor = true;
|
this.buttonCancel.UseVisualStyleBackColor = true;
|
||||||
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
|
this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
|
||||||
//
|
//
|
||||||
|
// labelInfo
|
||||||
|
//
|
||||||
|
this.labelInfo.ForeColor = System.Drawing.Color.Gray;
|
||||||
|
this.labelInfo.Location = new System.Drawing.Point(427, 6);
|
||||||
|
this.labelInfo.Name = "labelInfo";
|
||||||
|
this.labelInfo.Size = new System.Drawing.Size(120, 13);
|
||||||
|
this.labelInfo.TabIndex = 18;
|
||||||
|
this.labelInfo.Text = "label1";
|
||||||
|
this.labelInfo.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||||
|
//
|
||||||
// AddWareForm
|
// AddWareForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(550, 138);
|
this.ClientSize = new System.Drawing.Size(550, 138);
|
||||||
|
this.Controls.Add(this.labelInfo);
|
||||||
this.Controls.Add(this.buttonCancel);
|
this.Controls.Add(this.buttonCancel);
|
||||||
this.Controls.Add(this.labelVideoFileName);
|
this.Controls.Add(this.labelVideoFileName);
|
||||||
this.Controls.Add(this.labelSourcevideoFile);
|
this.Controls.Add(this.labelSourcevideoFile);
|
||||||
@ -143,5 +155,6 @@
|
|||||||
private System.Windows.Forms.Label labelSourcevideoFile;
|
private System.Windows.Forms.Label labelSourcevideoFile;
|
||||||
private System.Windows.Forms.Label labelVideoFileName;
|
private System.Windows.Forms.Label labelVideoFileName;
|
||||||
private System.Windows.Forms.Button buttonCancel;
|
private System.Windows.Forms.Button buttonCancel;
|
||||||
|
private System.Windows.Forms.Label labelInfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -25,6 +25,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
labelProgress.Text = string.Empty;
|
labelProgress.Text = string.Empty;
|
||||||
buttonCancel.Visible = false;
|
buttonCancel.Visible = false;
|
||||||
|
labelInfo.Text = string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
public WavePeakGenerator WavePeak { get; private set; }
|
public WavePeakGenerator WavePeak { get; private set; }
|
||||||
@ -48,23 +49,23 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
{
|
{
|
||||||
buttonRipWave.Enabled = false;
|
buttonRipWave.Enabled = false;
|
||||||
_cancel = false;
|
_cancel = false;
|
||||||
|
bool runningOnWindows = false;
|
||||||
|
|
||||||
SourceVideoFileName = labelVideoFileName.Text;
|
SourceVideoFileName = labelVideoFileName.Text;
|
||||||
string targetFile = Path.GetTempFileName() + ".wav";
|
string targetFile = Path.GetTempFileName() + ".wav";
|
||||||
// string parameters = "-I dummy -vvv \"" + SourceVideoFileName + "\" --sout=#transcode{vcodec=none,acodec=s16l}:file{dst=\"" + targetFile + "\"} vlc://quit";
|
// string parameters = "-I dummy -vvv \"" + SourceVideoFileName + "\" --sout=#transcode{vcodec=none,acodec=s16l}:file{dst=\"" + targetFile + "\"} vlc://quit";
|
||||||
string parameters = "-I dummy -vvv --no-sout-video --audio-track=" + _audioTrackNumber.ToString() + " --sout #transcode{" + _encodeParamters + "}:std{mux=wav,access=file,dst=\"" + targetFile + "\"} \"" + SourceVideoFileName + "\" vlc://quit";
|
string parameters = "-I dummy -vvv --no-sout-video --audio-track=" + _audioTrackNumber.ToString() + " --sout #transcode{" + _encodeParamters + "}:std{mux=wav,access=file,dst=\"" + targetFile + "\"} \"" + SourceVideoFileName + "\" vlc://quit";
|
||||||
|
string exeFilePath;
|
||||||
|
|
||||||
string vlcPath;
|
|
||||||
if (Utilities.IsRunningOnLinux() || Utilities.IsRunningOnMac())
|
if (Utilities.IsRunningOnLinux() || Utilities.IsRunningOnMac())
|
||||||
{
|
{
|
||||||
vlcPath = "cvlc";
|
exeFilePath = "cvlc";
|
||||||
parameters = "-vvv --no-sout-video --audio-track=" + _audioTrackNumber.ToString() + " --sout '#transcode{" + _encodeParamters + "}:std{mux=wav,access=file,dst=" + targetFile + "}' \"" + SourceVideoFileName + "\" vlc://quit";
|
parameters = "-vvv --no-sout-video --audio-track=" + _audioTrackNumber.ToString() + " --sout '#transcode{" + _encodeParamters + "}:std{mux=wav,access=file,dst=" + targetFile + "}' \"" + SourceVideoFileName + "\" vlc://quit";
|
||||||
}
|
}
|
||||||
else // windows
|
else // windows
|
||||||
{
|
{
|
||||||
vlcPath = Nikse.SubtitleEdit.Logic.VideoPlayers.LibVlc11xDynamic.GetVlcPath("vlc.exe");
|
runningOnWindows = true;
|
||||||
if (!System.IO.File.Exists(vlcPath))
|
exeFilePath = Nikse.SubtitleEdit.Logic.VideoPlayers.LibVlc11xDynamic.GetVlcPath("vlc.exe");
|
||||||
|
if (!System.IO.File.Exists(exeFilePath))
|
||||||
{
|
{
|
||||||
if (MessageBox.Show(Configuration.Settings.Language.AddWaveForm.VlcMediaPlayerNotFound + Environment.NewLine +
|
if (MessageBox.Show(Configuration.Settings.Language.AddWaveForm.VlcMediaPlayerNotFound + Environment.NewLine +
|
||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
@ -78,10 +79,22 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
labelInfo.Text = "VCL";
|
||||||
|
if (Configuration.Settings.General.UseFFMPEGForWaveExtraction && File.Exists(Configuration.Settings.General.FFMPEGLocation) && !string.IsNullOrEmpty(Configuration.Settings.General.FFMPEGWaveTranscodeSettings))
|
||||||
|
{
|
||||||
|
exeFilePath = Configuration.Settings.General.FFMPEGLocation;
|
||||||
|
parameters = string.Format(Configuration.Settings.General.FFMPEGWaveTranscodeSettings, SourceVideoFileName, targetFile);
|
||||||
|
//-i indicates the input
|
||||||
|
//-ab indicates the bit rate (in this example 160kb/sec)
|
||||||
|
//-vn means no video ouput
|
||||||
|
//-ac 2 means 2 channels
|
||||||
|
//-ar 44100 indicates the sampling frequency.
|
||||||
|
labelInfo.Text = "FFMPEG";
|
||||||
|
}
|
||||||
|
|
||||||
labelPleaseWait.Visible = true;
|
labelPleaseWait.Visible = true;
|
||||||
|
|
||||||
Process process = new Process();
|
Process process = new Process();
|
||||||
process.StartInfo = new ProcessStartInfo(vlcPath, parameters);
|
process.StartInfo = new ProcessStartInfo(exeFilePath, parameters);
|
||||||
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
|
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
|
||||||
process.Start();
|
process.Start();
|
||||||
progressBar1.Style = ProgressBarStyle.Marquee;
|
progressBar1.Style = ProgressBarStyle.Marquee;
|
||||||
@ -116,6 +129,30 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
DialogResult = DialogResult.Cancel;
|
DialogResult = DialogResult.Cancel;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (seconds > 1 && Convert.ToInt32(seconds) % 60 == 0 && runningOnWindows)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var drive = new DriveInfo("c");
|
||||||
|
if (drive.IsReady)
|
||||||
|
{
|
||||||
|
if (drive.AvailableFreeSpace < 50 * 1000000) // 50 mb
|
||||||
|
{
|
||||||
|
labelInfo.ForeColor = Color.Red;
|
||||||
|
labelInfo.Text = "LOW DISC SPACE!";
|
||||||
|
}
|
||||||
|
else if (labelInfo.ForeColor == Color.Red)
|
||||||
|
{
|
||||||
|
labelInfo.Text = Utilities.FormatBytesToDisplayFileSize(drive.AvailableFreeSpace) + " free";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
buttonCancel.Visible = false;
|
buttonCancel.Visible = false;
|
||||||
progressBar1.Visible = false;
|
progressBar1.Visible = false;
|
||||||
@ -132,7 +169,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
|
|
||||||
MessageBox.Show("Could not find extracted wave file! This feature requires VLC media player 1.1.x or newer (32-bit)." + Environment.NewLine
|
MessageBox.Show("Could not find extracted wave file! This feature requires VLC media player 1.1.x or newer (32-bit)." + Environment.NewLine
|
||||||
+ Environment.NewLine +
|
+ Environment.NewLine +
|
||||||
"Command line: " + vlcPath + " " + parameters);
|
"Command line: " + exeFilePath + " " + parameters);
|
||||||
|
|
||||||
labelPleaseWait.Visible = false;
|
labelPleaseWait.Visible = false;
|
||||||
labelProgress.Text = string.Empty;
|
labelProgress.Text = string.Empty;
|
||||||
@ -145,7 +182,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
{
|
{
|
||||||
MessageBox.Show("Sorry! VLC was unable to extract audio to wave file via this command line:" + Environment.NewLine
|
MessageBox.Show("Sorry! VLC was unable to extract audio to wave file via this command line:" + Environment.NewLine
|
||||||
+ Environment.NewLine +
|
+ Environment.NewLine +
|
||||||
"Command line: " + vlcPath + " " + parameters);
|
"Command line: " + exeFilePath + " " + parameters);
|
||||||
|
|
||||||
labelPleaseWait.Visible = false;
|
labelPleaseWait.Visible = false;
|
||||||
labelProgress.Text = string.Empty;
|
labelProgress.Text = string.Empty;
|
||||||
|
89
src/Forms/Settings.Designer.cs
generated
89
src/Forms/Settings.Designer.cs
generated
@ -175,6 +175,7 @@
|
|||||||
this.checkBoxWaveFormShowGrid = new System.Windows.Forms.CheckBox();
|
this.checkBoxWaveFormShowGrid = new System.Windows.Forms.CheckBox();
|
||||||
this.tabPageTools = new System.Windows.Forms.TabPage();
|
this.tabPageTools = new System.Windows.Forms.TabPage();
|
||||||
this.groupBoxSpellCheck = new System.Windows.Forms.GroupBox();
|
this.groupBoxSpellCheck = new System.Windows.Forms.GroupBox();
|
||||||
|
this.checkBoxTreatINQuoteAsING = new System.Windows.Forms.CheckBox();
|
||||||
this.checkBoxSpellCheckOneLetterWords = new System.Windows.Forms.CheckBox();
|
this.checkBoxSpellCheckOneLetterWords = new System.Windows.Forms.CheckBox();
|
||||||
this.checkBoxSpellCheckAutoChangeNames = new System.Windows.Forms.CheckBox();
|
this.checkBoxSpellCheckAutoChangeNames = new System.Windows.Forms.CheckBox();
|
||||||
this.groupBoxFixCommonErrors = new System.Windows.Forms.GroupBox();
|
this.groupBoxFixCommonErrors = new System.Windows.Forms.GroupBox();
|
||||||
@ -259,7 +260,12 @@
|
|||||||
this.colorDialogSSAStyle = new System.Windows.Forms.ColorDialog();
|
this.colorDialogSSAStyle = new System.Windows.Forms.ColorDialog();
|
||||||
this.fontDialogSSAStyle = new System.Windows.Forms.FontDialog();
|
this.fontDialogSSAStyle = new System.Windows.Forms.FontDialog();
|
||||||
this.labelStatus = new System.Windows.Forms.Label();
|
this.labelStatus = new System.Windows.Forms.Label();
|
||||||
this.checkBoxTreatINQuoteAsING = new System.Windows.Forms.CheckBox();
|
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||||
|
this.checkBoxUseFFMPEG = new System.Windows.Forms.CheckBox();
|
||||||
|
this.labelFFMPEGPath = new System.Windows.Forms.Label();
|
||||||
|
this.textBoxFFMPEGPath = new System.Windows.Forms.TextBox();
|
||||||
|
this.buttonBrowseToFFMPEG = new System.Windows.Forms.Button();
|
||||||
|
this.openFileDialogFFMPEG = new System.Windows.Forms.OpenFileDialog();
|
||||||
this.tabControlSettings.SuspendLayout();
|
this.tabControlSettings.SuspendLayout();
|
||||||
this.tabPageGenerel.SuspendLayout();
|
this.tabPageGenerel.SuspendLayout();
|
||||||
this.groupBoxMiscellaneous.SuspendLayout();
|
this.groupBoxMiscellaneous.SuspendLayout();
|
||||||
@ -313,6 +319,7 @@
|
|||||||
this.tabPageSyntaxColoring.SuspendLayout();
|
this.tabPageSyntaxColoring.SuspendLayout();
|
||||||
this.groupBoxListViewSyntaxColoring.SuspendLayout();
|
this.groupBoxListViewSyntaxColoring.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownSyntaxColorTextMoreThanXLines)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDownSyntaxColorTextMoreThanXLines)).BeginInit();
|
||||||
|
this.groupBox3.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// buttonOK
|
// buttonOK
|
||||||
@ -1702,6 +1709,7 @@
|
|||||||
//
|
//
|
||||||
// tabPageWaveForm
|
// tabPageWaveForm
|
||||||
//
|
//
|
||||||
|
this.tabPageWaveForm.Controls.Add(this.groupBox3);
|
||||||
this.tabPageWaveForm.Controls.Add(this.groupBoxSpectrogram);
|
this.tabPageWaveForm.Controls.Add(this.groupBoxSpectrogram);
|
||||||
this.tabPageWaveForm.Controls.Add(this.groupBox1);
|
this.tabPageWaveForm.Controls.Add(this.groupBox1);
|
||||||
this.tabPageWaveForm.Controls.Add(this.groupBoxWaveFormAppearence);
|
this.tabPageWaveForm.Controls.Add(this.groupBoxWaveFormAppearence);
|
||||||
@ -1761,7 +1769,7 @@
|
|||||||
this.groupBox1.Controls.Add(this.labelWaveFormsFolderInfo);
|
this.groupBox1.Controls.Add(this.labelWaveFormsFolderInfo);
|
||||||
this.groupBox1.Location = new System.Drawing.Point(6, 325);
|
this.groupBox1.Location = new System.Drawing.Point(6, 325);
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
this.groupBox1.Size = new System.Drawing.Size(813, 116);
|
this.groupBox1.Size = new System.Drawing.Size(394, 116);
|
||||||
this.groupBox1.TabIndex = 2;
|
this.groupBox1.TabIndex = 2;
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
//
|
//
|
||||||
@ -1994,6 +2002,16 @@
|
|||||||
this.groupBoxSpellCheck.TabStop = false;
|
this.groupBoxSpellCheck.TabStop = false;
|
||||||
this.groupBoxSpellCheck.Text = "Spell check";
|
this.groupBoxSpellCheck.Text = "Spell check";
|
||||||
//
|
//
|
||||||
|
// checkBoxTreatINQuoteAsING
|
||||||
|
//
|
||||||
|
this.checkBoxTreatINQuoteAsING.AutoSize = true;
|
||||||
|
this.checkBoxTreatINQuoteAsING.Location = new System.Drawing.Point(16, 66);
|
||||||
|
this.checkBoxTreatINQuoteAsING.Name = "checkBoxTreatINQuoteAsING";
|
||||||
|
this.checkBoxTreatINQuoteAsING.Size = new System.Drawing.Size(253, 17);
|
||||||
|
this.checkBoxTreatINQuoteAsING.TabIndex = 2;
|
||||||
|
this.checkBoxTreatINQuoteAsING.Text = "Treat word ending \" in\' \" as \" ing \" (English only)";
|
||||||
|
this.checkBoxTreatINQuoteAsING.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// checkBoxSpellCheckOneLetterWords
|
// checkBoxSpellCheckOneLetterWords
|
||||||
//
|
//
|
||||||
this.checkBoxSpellCheckOneLetterWords.AutoSize = true;
|
this.checkBoxSpellCheckOneLetterWords.AutoSize = true;
|
||||||
@ -3014,15 +3032,58 @@
|
|||||||
this.labelStatus.TabIndex = 3;
|
this.labelStatus.TabIndex = 3;
|
||||||
this.labelStatus.Text = "labelStatus";
|
this.labelStatus.Text = "labelStatus";
|
||||||
//
|
//
|
||||||
// checkBoxTreatINQuoteAsING
|
// groupBox3
|
||||||
//
|
//
|
||||||
this.checkBoxTreatINQuoteAsING.AutoSize = true;
|
this.groupBox3.Controls.Add(this.buttonBrowseToFFMPEG);
|
||||||
this.checkBoxTreatINQuoteAsING.Location = new System.Drawing.Point(16, 66);
|
this.groupBox3.Controls.Add(this.textBoxFFMPEGPath);
|
||||||
this.checkBoxTreatINQuoteAsING.Name = "checkBoxTreatINQuoteAsING";
|
this.groupBox3.Controls.Add(this.labelFFMPEGPath);
|
||||||
this.checkBoxTreatINQuoteAsING.Size = new System.Drawing.Size(253, 17);
|
this.groupBox3.Controls.Add(this.checkBoxUseFFMPEG);
|
||||||
this.checkBoxTreatINQuoteAsING.TabIndex = 2;
|
this.groupBox3.Location = new System.Drawing.Point(406, 325);
|
||||||
this.checkBoxTreatINQuoteAsING.Text = "Treat word ending \" in\' \" as \" ing \" (English only)";
|
this.groupBox3.Name = "groupBox3";
|
||||||
this.checkBoxTreatINQuoteAsING.UseVisualStyleBackColor = true;
|
this.groupBox3.Size = new System.Drawing.Size(416, 116);
|
||||||
|
this.groupBox3.TabIndex = 3;
|
||||||
|
this.groupBox3.TabStop = false;
|
||||||
|
//
|
||||||
|
// checkBoxUseFFMPEG
|
||||||
|
//
|
||||||
|
this.checkBoxUseFFMPEG.AutoSize = true;
|
||||||
|
this.checkBoxUseFFMPEG.Location = new System.Drawing.Point(6, 20);
|
||||||
|
this.checkBoxUseFFMPEG.Name = "checkBoxUseFFMPEG";
|
||||||
|
this.checkBoxUseFFMPEG.Size = new System.Drawing.Size(201, 17);
|
||||||
|
this.checkBoxUseFFMPEG.TabIndex = 1;
|
||||||
|
this.checkBoxUseFFMPEG.Text = "Use FFMPEG for wave file extraction";
|
||||||
|
this.checkBoxUseFFMPEG.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// labelFFMPEGPath
|
||||||
|
//
|
||||||
|
this.labelFFMPEGPath.AutoSize = true;
|
||||||
|
this.labelFFMPEGPath.Location = new System.Drawing.Point(6, 49);
|
||||||
|
this.labelFFMPEGPath.Name = "labelFFMPEGPath";
|
||||||
|
this.labelFFMPEGPath.Size = new System.Drawing.Size(71, 13);
|
||||||
|
this.labelFFMPEGPath.TabIndex = 2;
|
||||||
|
this.labelFFMPEGPath.Text = "FFMPEG path";
|
||||||
|
//
|
||||||
|
// textBoxFFMPEGPath
|
||||||
|
//
|
||||||
|
this.textBoxFFMPEGPath.Location = new System.Drawing.Point(9, 65);
|
||||||
|
this.textBoxFFMPEGPath.MaxLength = 1000;
|
||||||
|
this.textBoxFFMPEGPath.Name = "textBoxFFMPEGPath";
|
||||||
|
this.textBoxFFMPEGPath.Size = new System.Drawing.Size(366, 21);
|
||||||
|
this.textBoxFFMPEGPath.TabIndex = 22;
|
||||||
|
//
|
||||||
|
// buttonBrowseToFFMPEG
|
||||||
|
//
|
||||||
|
this.buttonBrowseToFFMPEG.Location = new System.Drawing.Point(381, 65);
|
||||||
|
this.buttonBrowseToFFMPEG.Name = "buttonBrowseToFFMPEG";
|
||||||
|
this.buttonBrowseToFFMPEG.Size = new System.Drawing.Size(29, 21);
|
||||||
|
this.buttonBrowseToFFMPEG.TabIndex = 23;
|
||||||
|
this.buttonBrowseToFFMPEG.Text = "...";
|
||||||
|
this.buttonBrowseToFFMPEG.UseVisualStyleBackColor = true;
|
||||||
|
this.buttonBrowseToFFMPEG.Click += new System.EventHandler(this.buttonBrowseToFFMPEG_Click);
|
||||||
|
//
|
||||||
|
// openFileDialogFFMPEG
|
||||||
|
//
|
||||||
|
this.openFileDialogFFMPEG.FileName = "openFileDialog1";
|
||||||
//
|
//
|
||||||
// Settings
|
// Settings
|
||||||
//
|
//
|
||||||
@ -3118,6 +3179,8 @@
|
|||||||
this.groupBoxListViewSyntaxColoring.ResumeLayout(false);
|
this.groupBoxListViewSyntaxColoring.ResumeLayout(false);
|
||||||
this.groupBoxListViewSyntaxColoring.PerformLayout();
|
this.groupBoxListViewSyntaxColoring.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownSyntaxColorTextMoreThanXLines)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDownSyntaxColorTextMoreThanXLines)).EndInit();
|
||||||
|
this.groupBox3.ResumeLayout(false);
|
||||||
|
this.groupBox3.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
this.PerformLayout();
|
||||||
|
|
||||||
@ -3357,5 +3420,11 @@
|
|||||||
private System.Windows.Forms.CheckBox checkBoxSsaOpaqueBox;
|
private System.Windows.Forms.CheckBox checkBoxSsaOpaqueBox;
|
||||||
private System.Windows.Forms.CheckBox checkBoxSpellCheckOneLetterWords;
|
private System.Windows.Forms.CheckBox checkBoxSpellCheckOneLetterWords;
|
||||||
private System.Windows.Forms.CheckBox checkBoxTreatINQuoteAsING;
|
private System.Windows.Forms.CheckBox checkBoxTreatINQuoteAsING;
|
||||||
|
private System.Windows.Forms.GroupBox groupBox3;
|
||||||
|
private System.Windows.Forms.Button buttonBrowseToFFMPEG;
|
||||||
|
private System.Windows.Forms.TextBox textBoxFFMPEGPath;
|
||||||
|
private System.Windows.Forms.Label labelFFMPEGPath;
|
||||||
|
private System.Windows.Forms.CheckBox checkBoxUseFFMPEG;
|
||||||
|
private System.Windows.Forms.OpenFileDialog openFileDialogFFMPEG;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -319,6 +319,12 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
buttonWaveFormsFolderEmpty.Text = language.WaveformAndSpectrogramsFolderEmpty;
|
buttonWaveFormsFolderEmpty.Text = language.WaveformAndSpectrogramsFolderEmpty;
|
||||||
InitializeWaveformsAndSpectrogramsFolderEmpty(language);
|
InitializeWaveformsAndSpectrogramsFolderEmpty(language);
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(language.WaveformFFMPEGPath)) //TODO: Remove in SE 3.4
|
||||||
|
{
|
||||||
|
checkBoxUseFFMPEG.Text = language.WaveformUseFFMPEG;
|
||||||
|
labelFFMPEGPath.Text = language.WaveformFFMPEGPath;
|
||||||
|
}
|
||||||
|
|
||||||
groupBoxSsaStyle.Text = language.SubStationAlphaStyle;
|
groupBoxSsaStyle.Text = language.SubStationAlphaStyle;
|
||||||
buttonSSAChooseFont.Text = language.ChooseFont;
|
buttonSSAChooseFont.Text = language.ChooseFont;
|
||||||
buttonSSAChooseColor.Text = language.ChooseColor;
|
buttonSSAChooseColor.Text = language.ChooseColor;
|
||||||
@ -517,6 +523,8 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
if (Configuration.Settings.VideoControls.WaveformBorderHitMs >= numericUpDownWaveformBorderHitMs.Minimum &&
|
if (Configuration.Settings.VideoControls.WaveformBorderHitMs >= numericUpDownWaveformBorderHitMs.Minimum &&
|
||||||
Configuration.Settings.VideoControls.WaveformBorderHitMs <= numericUpDownWaveformBorderHitMs.Maximum)
|
Configuration.Settings.VideoControls.WaveformBorderHitMs <= numericUpDownWaveformBorderHitMs.Maximum)
|
||||||
numericUpDownWaveformBorderHitMs.Value = Configuration.Settings.VideoControls.WaveformBorderHitMs;
|
numericUpDownWaveformBorderHitMs.Value = Configuration.Settings.VideoControls.WaveformBorderHitMs;
|
||||||
|
checkBoxUseFFMPEG.Checked = Configuration.Settings.General.UseFFMPEGForWaveExtraction;
|
||||||
|
textBoxFFMPEGPath.Text = Configuration.Settings.General.FFMPEGLocation;
|
||||||
|
|
||||||
var generalNode = new TreeNode(Configuration.Settings.Language.General.GeneralText);
|
var generalNode = new TreeNode(Configuration.Settings.Language.General.GeneralText);
|
||||||
generalNode.Nodes.Add(language.GoToFirstSelectedLine + GetShortcutText(Configuration.Settings.Shortcuts.GeneralGoToFirstSelectedLine));
|
generalNode.Nodes.Add(language.GoToFirstSelectedLine + GetShortcutText(Configuration.Settings.Shortcuts.GeneralGoToFirstSelectedLine));
|
||||||
@ -1049,6 +1057,8 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
Configuration.Settings.VideoControls.WaveFormMouseWheelScrollUpIsForward = checkBoxReverseMouseWheelScrollDirection.Checked;
|
Configuration.Settings.VideoControls.WaveFormMouseWheelScrollUpIsForward = checkBoxReverseMouseWheelScrollDirection.Checked;
|
||||||
Configuration.Settings.VideoControls.WaveFormAllowOverlap = checkBoxAllowOverlap.Checked;
|
Configuration.Settings.VideoControls.WaveFormAllowOverlap = checkBoxAllowOverlap.Checked;
|
||||||
Configuration.Settings.VideoControls.WaveformBorderHitMs = Convert.ToInt32(numericUpDownWaveformBorderHitMs.Value);
|
Configuration.Settings.VideoControls.WaveformBorderHitMs = Convert.ToInt32(numericUpDownWaveformBorderHitMs.Value);
|
||||||
|
Configuration.Settings.General.UseFFMPEGForWaveExtraction = checkBoxUseFFMPEG.Checked;
|
||||||
|
Configuration.Settings.General.FFMPEGLocation = textBoxFFMPEGPath.Text;
|
||||||
|
|
||||||
//Main General
|
//Main General
|
||||||
foreach (TreeNode node in treeViewShortcuts.Nodes[0].Nodes)
|
foreach (TreeNode node in treeViewShortcuts.Nodes[0].Nodes)
|
||||||
@ -2463,5 +2473,16 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
UpdateSsaExample();
|
UpdateSsaExample();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void buttonBrowseToFFMPEG_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
openFileDialogFFMPEG.Title = Configuration.Settings.Language.Settings.WaveformBrowseToFFMPEG;
|
||||||
|
if (!Utilities.IsRunningOnLinux() && !Utilities.IsRunningOnMac())
|
||||||
|
{
|
||||||
|
openFileDialogFFMPEG.Filter = "FFMPEG.exe|FFMPEG.exe";
|
||||||
|
}
|
||||||
|
if (openFileDialogFFMPEG.ShowDialog(this) == DialogResult.OK)
|
||||||
|
textBoxFFMPEGPath.Text = openFileDialogFFMPEG.FileName;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -123,4 +123,7 @@
|
|||||||
<metadata name="fontDialogSSAStyle.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="fontDialogSSAStyle.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>130, 17</value>
|
<value>130, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="openFileDialogFFMPEG.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>287, 17</value>
|
||||||
|
</metadata>
|
||||||
</root>
|
</root>
|
@ -1688,6 +1688,9 @@ can edit in same subtitle file (collaboration)",
|
|||||||
SpectrogramAppearance = "Spectrogram appearance",
|
SpectrogramAppearance = "Spectrogram appearance",
|
||||||
SpectrogramOneColorGradient = "One color gradient",
|
SpectrogramOneColorGradient = "One color gradient",
|
||||||
SpectrogramClassic = "Classic",
|
SpectrogramClassic = "Classic",
|
||||||
|
WaveformUseFFMPEG = "Use FFMPEG for wave extraction",
|
||||||
|
WaveformFFMPEGPath = "Path to FFMPEG",
|
||||||
|
WaveformBrowseToFFMPEG = "Browse to FFMPEG",
|
||||||
SubStationAlphaStyle = "Sub Station Alpha style",
|
SubStationAlphaStyle = "Sub Station Alpha style",
|
||||||
ChooseFont = "Choose font",
|
ChooseFont = "Choose font",
|
||||||
ChooseColor = "Choose color",
|
ChooseColor = "Choose color",
|
||||||
|
@ -1586,6 +1586,9 @@
|
|||||||
public string SpectrogramAppearance { get; set; }
|
public string SpectrogramAppearance { get; set; }
|
||||||
public string SpectrogramOneColorGradient { get; set; }
|
public string SpectrogramOneColorGradient { get; set; }
|
||||||
public string SpectrogramClassic { get; set; }
|
public string SpectrogramClassic { get; set; }
|
||||||
|
public string WaveformUseFFMPEG { get; set; }
|
||||||
|
public string WaveformFFMPEGPath { get; set; }
|
||||||
|
public string WaveformBrowseToFFMPEG { get; set; }
|
||||||
public string SubStationAlphaStyle { get; set; }
|
public string SubStationAlphaStyle { get; set; }
|
||||||
public string ChooseFont { get; set; }
|
public string ChooseFont { get; set; }
|
||||||
public string ChooseColor { get; set; }
|
public string ChooseColor { get; set; }
|
||||||
|
@ -451,6 +451,9 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
public int ListViewTextWidth { get; set; }
|
public int ListViewTextWidth { get; set; }
|
||||||
public string VlcWaveTranscodeSettings { get; set; }
|
public string VlcWaveTranscodeSettings { get; set; }
|
||||||
public string VlcLocation { get; set; }
|
public string VlcLocation { get; set; }
|
||||||
|
public bool UseFFMPEGForWaveExtraction { get; set; }
|
||||||
|
public string FFMPEGWaveTranscodeSettings { get; set; }
|
||||||
|
public string FFMPEGLocation { get; set; }
|
||||||
public bool UseTimeFormatHHMMSSFF { get; set; }
|
public bool UseTimeFormatHHMMSSFF { get; set; }
|
||||||
public int ClearStatusBarAfterSeconds { get; set; }
|
public int ClearStatusBarAfterSeconds { get; set; }
|
||||||
public string Company { get; set; }
|
public string Company { get; set; }
|
||||||
@ -530,6 +533,7 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
OpenSubtitleExtraExtensions = "*.mp4;*.m4v;*.mkv;"; // matroska/mp4/m4v files (can contain subtitles)
|
OpenSubtitleExtraExtensions = "*.mp4;*.m4v;*.mkv;"; // matroska/mp4/m4v files (can contain subtitles)
|
||||||
ListViewColumsRememberSize = true;
|
ListViewColumsRememberSize = true;
|
||||||
VlcWaveTranscodeSettings = "acodec=s16l"; // "acodec=s16l,channels=1,ab=64,samplerate=8000";
|
VlcWaveTranscodeSettings = "acodec=s16l"; // "acodec=s16l,channels=1,ab=64,samplerate=8000";
|
||||||
|
FFMPEGWaveTranscodeSettings = "-i \"{0}\" -vn -ar 44100 -ac 2 -ab 128 -vol 320 -f wav \"{1}\""; // -vol 512 will boot volume... 256 is normal
|
||||||
UseTimeFormatHHMMSSFF = false;
|
UseTimeFormatHHMMSSFF = false;
|
||||||
ClearStatusBarAfterSeconds = 10;
|
ClearStatusBarAfterSeconds = 10;
|
||||||
MoveVideo100Or500MsPlaySmallSample = false;
|
MoveVideo100Or500MsPlaySmallSample = false;
|
||||||
@ -1307,6 +1311,15 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
subNode = node.SelectSingleNode("VlcLocation");
|
subNode = node.SelectSingleNode("VlcLocation");
|
||||||
if (subNode != null)
|
if (subNode != null)
|
||||||
settings.General.VlcLocation = subNode.InnerText.Trim();
|
settings.General.VlcLocation = subNode.InnerText.Trim();
|
||||||
|
subNode = node.SelectSingleNode("UseFFMPEGForWaveExtraction");
|
||||||
|
if (subNode != null)
|
||||||
|
settings.General.UseFFMPEGForWaveExtraction = Convert.ToBoolean(subNode.InnerText.Trim());
|
||||||
|
subNode = node.SelectSingleNode("FFMPEGWaveTranscodeSettings");
|
||||||
|
if (subNode != null)
|
||||||
|
settings.General.FFMPEGWaveTranscodeSettings = subNode.InnerText.Trim();
|
||||||
|
subNode = node.SelectSingleNode("FFMPEGLocation");
|
||||||
|
if (subNode != null)
|
||||||
|
settings.General.FFMPEGLocation = subNode.InnerText.Trim();
|
||||||
subNode = node.SelectSingleNode("UseTimeFormatHHMMSSFF");
|
subNode = node.SelectSingleNode("UseTimeFormatHHMMSSFF");
|
||||||
if (subNode != null)
|
if (subNode != null)
|
||||||
settings.General.UseTimeFormatHHMMSSFF = Convert.ToBoolean(subNode.InnerText.Trim());
|
settings.General.UseTimeFormatHHMMSSFF = Convert.ToBoolean(subNode.InnerText.Trim());
|
||||||
@ -2387,6 +2400,9 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
textWriter.WriteElementString("ListViewTextWidth", settings.General.ListViewTextWidth.ToString(CultureInfo.InvariantCulture));
|
textWriter.WriteElementString("ListViewTextWidth", settings.General.ListViewTextWidth.ToString(CultureInfo.InvariantCulture));
|
||||||
textWriter.WriteElementString("VlcWaveTranscodeSettings", settings.General.VlcWaveTranscodeSettings);
|
textWriter.WriteElementString("VlcWaveTranscodeSettings", settings.General.VlcWaveTranscodeSettings);
|
||||||
textWriter.WriteElementString("VlcLocation", settings.General.VlcLocation);
|
textWriter.WriteElementString("VlcLocation", settings.General.VlcLocation);
|
||||||
|
textWriter.WriteElementString("UseFFMPEGForWaveExtraction", settings.General.UseFFMPEGForWaveExtraction.ToString(CultureInfo.InvariantCulture));
|
||||||
|
textWriter.WriteElementString("FFMPEGWaveTranscodeSettings", settings.General.FFMPEGWaveTranscodeSettings);
|
||||||
|
textWriter.WriteElementString("FFMPEGLocation", settings.General.FFMPEGLocation);
|
||||||
textWriter.WriteElementString("UseTimeFormatHHMMSSFF", settings.General.UseTimeFormatHHMMSSFF.ToString(CultureInfo.InvariantCulture));
|
textWriter.WriteElementString("UseTimeFormatHHMMSSFF", settings.General.UseTimeFormatHHMMSSFF.ToString(CultureInfo.InvariantCulture));
|
||||||
textWriter.WriteElementString("ClearStatusBarAfterSeconds", settings.General.ClearStatusBarAfterSeconds.ToString(CultureInfo.InvariantCulture));
|
textWriter.WriteElementString("ClearStatusBarAfterSeconds", settings.General.ClearStatusBarAfterSeconds.ToString(CultureInfo.InvariantCulture));
|
||||||
textWriter.WriteElementString("Company", settings.General.Company);
|
textWriter.WriteElementString("Company", settings.General.Company);
|
||||||
|
Loading…
Reference in New Issue
Block a user