/// <summary> /// Helper function to simplify encoding Window Media Audio /// Should be supported on Vista and above (not tested) /// </summary> /// <param name="inputProvider">Input provider, must be PCM</param> /// <param name="outputFile">Output file path, should end with .wma</param> /// <param name="desiredBitRate">Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type</param> public static void EncodeToWma(IWaveProvider inputProvider, string outputFile, int desiredBitRate = 192000) { var mediaType = SelectMediaType(AudioSubtypes.MFAudioFormat_WMAudioV8, inputProvider.WaveFormat, desiredBitRate); if (mediaType == null) { throw new InvalidOperationException("No suitable WMA encoders available"); } using (var encoder = new MediaFoundationEncoder(mediaType)) { encoder.Encode(outputFile, inputProvider); } }
/// <summary> /// Helper function to simplify encoding to AAC /// By default, will only be available on Windows 7 and above /// </summary> /// <param name="inputProvider">Input provider, must be PCM</param> /// <param name="outputFile">Output file path, should end with .mp4 (or .aac on Windows 8)</param> /// <param name="desiredBitRate">Desired bitrate. Use GetEncodeBitrates to find the possibilities for your input type</param> public static void EncodeToAac(IWaveProvider inputProvider, string outputFile, int desiredBitRate = 192000) { // Information on configuring an AAC media type can be found here: // http://msdn.microsoft.com/en-gb/library/windows/desktop/dd742785%28v=vs.85%29.aspx var mediaType = SelectMediaType(AudioSubtypes.MFAudioFormat_AAC, inputProvider.WaveFormat, desiredBitRate); if (mediaType == null) { throw new InvalidOperationException("No suitable AAC encoders available"); } using (var encoder = new MediaFoundationEncoder(mediaType)) { // should AAC container have ADTS, or is that just for ADTS? // http://www.hydrogenaudio.org/forums/index.php?showtopic=97442 encoder.Encode(outputFile, inputProvider); } }