Я использую ffmpeg (c ++) для декодирования различных аудиофайлов в 44100 стерео ИЛИ моно (в зависимости от источника). Я должен держать это так, потому что я играю в них тоже.
Между тем мне также нужно 11025 моно версий этих. Поэтому я пытаюсь найти очень быстрый / простой способ конвертировать 44100 стерео PCM в 11025 моно без ffmpeg для экономии ресурсов процессора.
Это возможно в Java (Android) или C ++ (ndk)?
Я уже использую Java и C ++ в одном проекте.
усреднение выборки за выборкой является правильным для преобразования стерео в моно, но для преобразования частоты дискретизации, почему бы не использовать такую библиотеку, как libsamplerate? Если даже это слишком тяжело, усреднение действительно быстрое, но это не правильный метод. Является ли это приемлемым или нет, зависит от вашего приложения. Альтернативный метод описан в моем ответе на этот пост:
Других решений пока нет …