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
This commit is contained in:
niksedk 2013-09-15 09:39:42 +00:00
parent d772993173
commit f945f00e5a
2 changed files with 8 additions and 4 deletions

View File

@ -17,6 +17,7 @@ namespace Nikse.SubtitleEdit.Forms
public List<Bitmap> SpectrogramBitmaps { get; private set; } public List<Bitmap> SpectrogramBitmaps { get; private set; }
private string _encodeParamters; private string _encodeParamters;
private const string RetryEncodeParameters = "acodec=s16l"; private const string RetryEncodeParameters = "acodec=s16l";
private int _audioTrackNumber = -1;
public AddWareForm() public AddWareForm()
{ {
@ -27,8 +28,11 @@ namespace Nikse.SubtitleEdit.Forms
public WavePeakGenerator WavePeak { get; private set; } 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; Text = Configuration.Settings.Language.AddWaveForm.Title;
buttonRipWave.Text = Configuration.Settings.Language.AddWaveForm.GenerateWaveFormData; buttonRipWave.Text = Configuration.Settings.Language.AddWaveForm.GenerateWaveFormData;
labelPleaseWait.Text = Configuration.Settings.Language.AddWaveForm.PleaseWait; labelPleaseWait.Text = Configuration.Settings.Language.AddWaveForm.PleaseWait;
@ -47,7 +51,7 @@ namespace Nikse.SubtitleEdit.Forms
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 --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()) if (Utilities.IsRunningOnLinux() || Utilities.IsRunningOnMac())
{ {
vlcPath = "cvlc"; 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 else // windows
{ {

View File

@ -13770,7 +13770,7 @@ namespace Nikse.SubtitleEdit.Forms
var addWaveForm = new AddWareForm(); var addWaveForm = new AddWareForm();
string peakWaveFileName = GetPeakWaveFileName(_videoFileName); string peakWaveFileName = GetPeakWaveFileName(_videoFileName);
string spectrogramFolder = GetSpectrogramFolder(_videoFileName); string spectrogramFolder = GetSpectrogramFolder(_videoFileName);
addWaveForm.Initialize(_videoFileName, spectrogramFolder); addWaveForm.Initialize(_videoFileName, spectrogramFolder, _videoAudioTrackNumber);
if (addWaveForm.ShowDialog() == DialogResult.OK) if (addWaveForm.ShowDialog() == DialogResult.OK)
{ {
addWaveForm.WavePeak.WritePeakSamples(peakWaveFileName); addWaveForm.WavePeak.WritePeakSamples(peakWaveFileName);