Какая библиотека сжатия звука для .NET лучшая?
-
03-07-2019 - |
Вопрос
Я ищу хорошую библиотеку сжатия звука для .NET.Все, что использует MP3, запрещено (из-за проблем с лицензированием).По сути, мне просто нужно иметь возможность сжимать обычные аудиоданные WAV в какой-либо формат и распаковывать обратно в WAV.Предпочтительно, чтобы весь код был .NET (C# или VB.NET), но я не думаю, что это вероятно.Он должен быть либо без потерь, либо относительно без потерь (желательно, как 192 MP3), со степенью сжатия не менее 4:1.Я бы предпочел API на основе буфера, но API на основе файлов тоже подойдет.
Кто-нибудь знает что-нибудь подобное?
Решение
Вы задумывались об использовании WMA?Если вы используете управляемый C++ или C++/CLI, очень легко написать управляемую оболочку для SDK формата Windows Media.Эту сборку затем можно легко использовать в сборке VB.Net или C# более высокого уровня.Если у вас установлен WMP, у него есть то преимущество, что он не требует каких-либо дополнительных зависимостей.
Другие советы
Вы подумали о .OGG формат уже?Я не знаю, доступна ли библиотека .net, но библиотеки C libogg и libvorbis не являются ракетостроительными и хорошо протестированы.Для простой задачи сжатия/распаковки вы можете обойтись двухфункциональной оболочкой, которая обрабатывает все детали.
Для них должно быть легко написать оболочку .net.
Преимущества:
- без патента
- применимая лицензия даже для проектов с закрытым исходным кодом
- очень хорошая степень сжатия
- кроссплатформенность (возможно, это не так важно, поскольку вы нацелены на .net, но, тем не менее, приятно иметь).
- последний, но тем не менее важный:очень зрелая библиотека без известных ошибок и хорошей поддержки.
ФЛАК выглядит интересно.
Аудио обезьяны еще один (он может работать даже в .NET).
Вы можете посмотреть кодеки OGG.Я не уверен, есть ли какие-либо программы, написанные на .NET, но они с открытым исходным кодом, поэтому, если это важно для вас, вы сможете достаточно легко их портировать.
Посмотрите ФМод.Имеет хорошее сжатие звука, воспроизведение, а также функции 3D-эффектов.Он поддерживает множество аудиоформатов.Он написан на C, но имеет хорошую оболочку C#.