From f945f00e5af45658481e93e593c2a94ae6c0c14d Mon Sep 17 00:00:00 2001 From: niksedk Date: Sun, 15 Sep 2013 09:39:42 +0000 Subject: [PATCH] Waveform generation can now uses current audio track (vlc only atm) git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@2089 99eadd0c-20b8-1223-b5c4-2a2b2df33de2 --- src/Forms/AddWareForm.cs | 10 +++++++--- src/Forms/Main.cs | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Forms/AddWareForm.cs b/src/Forms/AddWareForm.cs index 902cca225..0f10c4679 100644 --- a/src/Forms/AddWareForm.cs +++ b/src/Forms/AddWareForm.cs @@ -17,6 +17,7 @@ namespace Nikse.SubtitleEdit.Forms public List SpectrogramBitmaps { get; private set; } private string _encodeParamters; private const string RetryEncodeParameters = "acodec=s16l"; + private int _audioTrackNumber = -1; public AddWareForm() { @@ -27,8 +28,11 @@ namespace Nikse.SubtitleEdit.Forms public WavePeakGenerator WavePeak { get; private set; } - public void Initialize(string videoFile, string spectrogramDirectory) + public void Initialize(string videoFile, string spectrogramDirectory, int audioTrackNumber) { + _audioTrackNumber = audioTrackNumber; + if (_audioTrackNumber < 0) + _audioTrackNumber = 0; Text = Configuration.Settings.Language.AddWaveForm.Title; buttonRipWave.Text = Configuration.Settings.Language.AddWaveForm.GenerateWaveFormData; labelPleaseWait.Text = Configuration.Settings.Language.AddWaveForm.PleaseWait; @@ -47,7 +51,7 @@ namespace Nikse.SubtitleEdit.Forms SourceVideoFileName = labelVideoFileName.Text; 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 --no-sout-video --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"; @@ -55,7 +59,7 @@ namespace Nikse.SubtitleEdit.Forms if (Utilities.IsRunningOnLinux() || Utilities.IsRunningOnMac()) { vlcPath = "cvlc"; - parameters = "-vvv --no-sout-video --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 { diff --git a/src/Forms/Main.cs b/src/Forms/Main.cs index 65b9caa29..c3cd61b51 100644 --- a/src/Forms/Main.cs +++ b/src/Forms/Main.cs @@ -13770,7 +13770,7 @@ namespace Nikse.SubtitleEdit.Forms var addWaveForm = new AddWareForm(); string peakWaveFileName = GetPeakWaveFileName(_videoFileName); string spectrogramFolder = GetSpectrogramFolder(_videoFileName); - addWaveForm.Initialize(_videoFileName, spectrogramFolder); + addWaveForm.Initialize(_videoFileName, spectrogramFolder, _videoAudioTrackNumber); if (addWaveForm.ShowDialog() == DialogResult.OK) { addWaveForm.WavePeak.WritePeakSamples(peakWaveFileName);