1、NuGet安装 NAudio,项目及demo的网址:https://github.com/naudio/NAudio
Encode to MP3, WMA and AAC with MediaFoundationEncoder
使用MediaFoundationEncoder将音频文件编码为MP3,WMA,AAC的Demo地址:
https://github.com/naudio/NAudio/blob/master/Docs/MediaFoundationEncoder.md
引用命名空间
using NAudio.Wave;
string fromFilePath = @"F:TestffmpegTestffmpegTestaudio.wav"; string toFilePath = @"F:TestffmpegTestffmpegTestaudio.mp3"; using (var reader = new MediaFoundationReader(fromFilePath)) { MediaFoundationEncoder.EncodeToMp3(reader, toFilePath); }
EncodeToMp3默认使用的码率是192K
音频常识之音频码率 介绍文章 https://www.douban.com/note/262040939/
/// <summary> /// Helper function to simplify encoding to MP3 /// By default, will only be available on Windows 8 and above /// </summary> /// <param name="inputProvider">Input provider, must be PCM</param> /// <param name="outputFile">Output file path, should end with .mp3</param> /// <param name="desiredBitRate">Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type</param> public static void EncodeToMp3(IWaveProvider inputProvider, string outputFile, int desiredBitRate = 192000) { MediaType mediaType = MediaFoundationEncoder.SelectMediaType(AudioSubtypes.MFAudioFormat_MP3, inputProvider.WaveFormat, desiredBitRate); if (mediaType == null) { throw new InvalidOperationException("No suitable MP3 encoders available"); } using (MediaFoundationEncoder mediaFoundationEncoder = new MediaFoundationEncoder(mediaType)) { mediaFoundationEncoder.Encode(outputFile, inputProvider); } }