Alsa библиотека для транскодирования - PullRequest
0 голосов
/ 19 ноября 2018

Могу ли я использовать библиотеку ALSA для перекодирования аудио из одного формата в другой.

т. Е. S32 2 канала на S16 1 Канал аудио из файла в качестве источника ввода для вывода файла

В одной из ссылок я видел утверждение, Плагин: Файл Этот плагин сохраняет содержимое потока PCM в файл или передает поток в команду и, при необходимости, использует существующий файл в качестве источника входных данных (т. Е. " virtual mic ")

Как настроить такой конвейерный ввод и вывод файла, когда он вводится из файла, откуда он выбирает такую ​​информацию, как формат и каналы, поскольку API "snd_pcm_file_open" не запрашивает информацию, связанную с форматом? Я надеюсь, что это из конфигурационного файла .asoundrc, но я не вижу каких-либо пояснений о том, как это сделать?

1 Ответ

0 голосов
/ 27 ноября 2018

Это невозможно сделать, поскольку файл конфигурации (asoundrc) является единственной опцией для установки входного файла и форматирования в формате raw или wav, как показано ниже

pcm.file {
        format raw
        infile "/home/root/raw.pcm"
}

, поскольку вы не можете указать формат ввода, который вы можете 't транскодирует, он читает в формате, который вы запрашиваете из этого файла.то есть он читает S32, если вы запрашиваете S32 через arecord, даже если файл содержит S16.

Но альтернативой является использование таких инструментов, как "sox" для транскодирования.

Если это только для проверки того, какALSA выполняет транскодирование, когда присутствует настоящий микрофон, а затем дамп " snd_pcm_dump " (arecord -v) даст функцию преобразования (уравнение), которую он использует

...