我可以使用ALSA库将音频从一种格式转换为另一种格式。
即S32 2通道到S16 1通道音频从文件作为输入源到文件输出
在我看到的一条链接中, plugin:这个插件存储一个PCM流的内容来文件或将该流输送到一个命令,并且可以选择使用一个现有的文件作为输入数据源(即“虚拟麦克风”)。
如何设置这样的管道文件输入和文件输出,当它是从哪里从文件中选择信息,如格式和通道,因为API "snd_pcm_file_open“不要求格式相关的信息?我希望这是来自配置文件.asoundrc,但是,我没有看到任何关于如何做它的加成?
发布于 2018-11-27 16:47:23
这是因为配置文件(asoundrc)只能选择将输入文件和格式设置为raw或wav,所以不能这样做。
pcm.file {
format raw
infile "/home/root/raw.pcm"
}由于不能指定输入格式,所以不能转换代码,所以它以您从该文件请求的格式读取。也就是说,如果您通过记录请求S32,即使文件包含S16,它也会读取S16。
但是,另一种方法是使用像"sox“这样的工具进行代码转换。
如果只检查在实际麦克风存在时ALSA如何进行转码,那么转储"snd_pcm_dump“(arecord -v)将给出它所使用的转换函数(等式)。
https://stackoverflow.com/questions/53370944
复制相似问题