Member 12094473 Ответов: 1

Как использовать lame.exe для WAV to mp3 convwersion(мои wav-файлы являются результатом wasapiloopbackcapture(); )


Я скачал Lame.exe и у меня есть wav-файлы, которые мне нужно конвертировать в mp3, как я могу это сделать .Мои wav файлы являются результатом WasapiLoopbackCapture();

Что я уже пробовал:

public void mciConvertWavMP3(string fileName, bool waitFlag, string pworkingDir, string pcopyDir)
       {
           DirectoryInfo newDir1 = new DirectoryInfo(pcopyDir);
           System.Diagnostics.Process p = new System.Diagnostics.Process();
           string mpfile = fileName.ToLower().Replace(".wav", ".mp3");

           if (newDir1.GetFiles(mpfile).Length == 0)
           {
               System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
               try
               {
                   //Response.Write("Conversion of " + pworkingDir + fileName + " is in progress ...");
                   string outfile = "-b 32 --resample 22.05 -m m \"" + pworkingDir + fileName + "\" \"" + pcopyDir + fileName.Replace(".wav", ".mp3") + "\"";
                   // string outfile = "-V \"" + pworkingDir + fileName + "\" \"" + pcopyDir + fileName.Replace(".wav", ".mp3") + "\"";
                   psi.FileName = @"D:\lame3.99.5\lame.exe";//"\"" + root_dir + "lame.exe" + "\"";
                   psi.Arguments = outfile;
                   psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;
                   psi.UseShellExecute = false;// Minimized;
                   p = System.Diagnostics.Process.Start(psi);
                   if (waitFlag)
                   {
                       // Response.Write("Converted to " + pcopyDir + fileName.Replace(".wav", ".mp3") + "successfully");
                       //successmsg.Text = "Successfully convert WAV file to MP3 file.";
                       p.WaitForExit(10000);
                       p.Close();
                   }
               }
               catch (Exception ex)
               {
                   //         Response.Write(ex.Message);
                   MessageBox.Show(ex.ToString());
               }
               finally
               {
                   p.Close();

               }
           }
       }

звоню из
private void btnMethod5_Click(object sender, EventArgs e)
       {
           OpenFileDialog op = new OpenFileDialog();
           if (op.ShowDialog() == DialogResult.OK)
           {

               pworkingDir= Directory.GetCurrentDirectory();
               string fileName = "allInOne.wav";
               mciConvertWavMP3(fileName, true, pworkingDir, pcopyDirA);
              // mciConvertWavMP3(fileName, true);
           }
       }

Другой способ заключается в следующем
OpenFileDialog op = new OpenFileDialog();
SaveFileDialog sf=new SaveFileDialog();
sf.Filter="MP3 File (*.mp3)|*.mp3;";
if (op.ShowDialog() == DialogResult.OK && sf.ShowDialog()==DialogResult.OK)
{
    //mp3towavecodec(op.FileName,sf.FileName);
     var infile = op.FileName;
    var outfile =sf.FileNames ;

    string lameArgs = "-b 8 -f -m m ";//"-V2";
    var lamepath = @"C:\Users\sohaily\Downloads\lame3.99.5 (1)\lame.exe";
    Process p = new Process();
    p.StartInfo = new ProcessStartInfo();
    p.StartInfo.FileName = lamepath;
  //  p.StartInfo.UseShellExecute = false;
   // p.StartInfo.Arguments = String.Format("-b 128 \"{0}\" \"{1}\"", infile, outfile);
    p.StartInfo.Arguments = string.Format("{0} {1} {2}",lameArgs,infile,outfile);
    //p.StartInfo.CreateNoWindow = true;
    p.Start();
    p.WaitForExit();
    int exitCode = p.ExitCode;
    if (exitCode != 0)
        MessageBox.Show("File Converted Successfully");
}

Но ни один файл не генерируется

1 Ответов

Рейтинг:
11

Mehdi Gholam

Попробуйте использовать компонент вместо процесса : naudio - как я могу использовать LAME для кодирования wav в mp3 c# - Stack Overflow[^]


Member 12094473

Большое спасибо, что у меня все получилось ..

Member 12094473

Как справиться с большим размером файлов, таких как, например, волновой файл размером около 1 ГБ

Mehdi Gholam

В чем проблема?

Member 12094473

Нет, теперь все решено, спасибо.