0
LAME에 NAudio 래퍼를 사용하여 wav 파일을 mp3로 변환하고 있습니다. 그러나 NAudio를 사용하여 내 mp3를 wav로 다시 변환하면 wav 파일은 원래 wav 파일보다 약간 큽니다. 원래와 디코딩 된 wav 파일이 정확히 같은 크기가되도록 내가 얻을 수있는 방법이 있습니까? 이외에도 다른 모든 것들이 작동하며 나는 문제없이 wav와 mp3 파일을 재생할 수 있습니다. 감사합니다. 아래에 변환 기능을 포함 시켰습니다.wav를 mp3로 변환하고 wav로 되 돌아 오기
private void ConvertWavMP3(string wavFile)
{
try
{
using (var wavRdr = new WaveFileReader(wavFile))
using (var mp3Writer = new LameMP3FileWriter(wavFile.Replace(".wav", ".mp3"), wavRdr.WaveFormat, 128))
{
wavRdr.CopyTo(mp3Writer);
}
}
catch (Exception ex)
{
MessageBox.Show("Error converting wav to mp3.", "CONVERSION ERROR");
}
}
private static void ConvertMp3ToWav(string mp3File)
{
try
{
using (Mp3FileReader reader = new Mp3FileReader(mp3File))
{
//using (WaveStream pcmStream = new WaveFormatConversionStream(new WaveFormat(8000, 16, 1), reader))
using (WaveStream pcmStream = WaveFormatConversionStream.CreatePcmStream(reader))
{
WaveFileWriter.CreateWaveFile(mp3File.Replace(".mp3", ".wav"), pcmStream);
}
}
}
catch (Exception ex)
{
MessageBox.Show("Error converting mp3 to wav.", "CONVERSION ERROR");
}
}
WAV는 원시 형식이므로 정확하게 동일하지 않을 수 있지만 가까이 있어야합니다. 원본 및 출력 비트 전송률/채널/등을 비교하여 변환 중에 무언가가 변경되지 않도록하십시오. –
예, 모든 waveformat 설정은 2에서 동일합니다. File.ReadAllBytes를 수행하면 출력 wav 파일 바이트 배열이 원본보다 훨씬 큽니다. 그래서 mp3 변환은 원본 WAV 녹음에 추가 샘플을 추가했습니다. –
원본이 압축 된 형식이 아닌 경우 입력 및 출력 설정이 동일하면 overal 파일 크기가 동일해야합니다 (bitrate = bitsPerSample * samplesPerSecond * channels). –