簡體   English   中英

NAudio-更改錄制的WAV文件的比特率

[英]NAudio - Changing Bitrate of Recorded WAV file

我正在嘗試使用NAudio對Wav文件實施音頻記錄,但是WasapiLoopbackCapture類設置的默認比特率無法通過編程方式更改。

我正在將音頻輸出記錄到MemoryStream(下面的代碼段中的recordedStream)。 但是WasapiLoobpackCapture設置的默認比特率不符合我的需求。

我想使用320KBPS的比特率,並且嘗試使用WaveFormatConversionStream類以編程方式轉換記錄的文件,但無法使其工作。

 WaveFormat targetFormat = WaveFormat.CreateCustomFormat(waveIn.WaveFormat.Encoding,
                                                                waveIn.WaveFormat.SampleRate, //SampleRate
                                                               waveIn.WaveFormat.Channels,     //Channels
                                                              320000,    //Average Bytes per Second
                                                               waveIn.WaveFormat.BlockAlign,     //Block Align
                                                                waveIn.WaveFormat.BitsPerSample);    //Bits per Sample   


        using (WaveStream inputStream = new RawSourceWaveStream(recordedStream, waveIn.WaveFormat))
        {
            try
            {
                using (var converter = new WaveFormatConversionStream(targetFormat, inputStream))
                {
                    // ...
                }
            }
            catch (Exception)
            {
                throw;
            }

            recordedStream.Dispose();
        }

我總是收到“調用acmStreamOpen的AcmNotPossible”轉換異常。 如您所見,除了目標波形中的比特率較低外,我使用的格式與記錄的WAV文件完全相同(擴展編碼,44100等)。

從MemoryStream中包含的Wav文件進行比特率轉換的正確代碼是什么? 我的目標是獲得320KBPS的文件。

對於給定的采樣率,比特深度和通道數,PCM音頻始終具有相同的比特率(通過將這三個值相乘得出)。 如果要降低比特率,則必須更改這三個比率之一(降低采樣率可能是最好的選擇,除非可以從立體聲轉換為單聲道)。

確實,您應該考慮將編碼為MP3,WMA或AAC之類的格式,這樣您就可以選擇自己喜歡的比特率了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM