版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://annulus./logs/21403902.html
使用linphone时出现一个问题:
rtp进行媒体解码时发生错误:
ALSA lib pcm_dsnoop.c:606:(snd_pcm_dsnoop_open) unable to open slave
修改配置文件/usr/share/alsa/pcm/dsnoop.conf
@args.SUBDEV {
type integer
default -1 # 改为0
}
这样dsnoop就会从hw:0,0开始记录
dsnoo和dmix的作用差不多,不过是用于录音的,dsnoop插件允许几个应用同时使用一个
设备记录声音.
顺便看了看dsnoop howto,比较短,翻译一下:
1.Dsnoop howto
1.1 默认Alsa接口
alsa默认支持dsnoop接口
1.1.1 dsnoop是否可用
正常情况下,使用不太过时的系统,dsnoop接口都是提供的.列出可用的
设备:
arecord -L
正常情况下,dsnoop由可用设备中的某一个提供,你应该会看到这样一行
:
dsnoop 'cards.pcm.dsnoop'
1.1.2 用默认dsnoop接口录音
如果你有dsnoop,我们来试着使用它,接上一个音源设备(麦克,直录),
运行amixer,选择一个正确的输入源,并输入以下命令:
arecord -f cd -c 2 -D dsnoop foobar.wav
这个命令会使用dsnoop以cd的品质录音
1.2 自定义dsnoop接口
1.2.1 基本语法
pcm.dsnooped{
type dsnoop
slave {
pcm "hw:0,0"
channels 2
}
}
1.2.2 选择采样率
可以自定义采样率:
pcm.dsnooped {
type dsnoop
slave {
pcm "hw:0,0"
channels 2
period_size 1024
buffer_size 4096
rate 48000
periods 0
period_time 0
}
}
这样就会以48000HZ的采样率录音
如果声卡不支持请求的采样率,声音就会通过软件转换
1.2.3 记录左声道或右声道
有时需要记录立体声的左声道或右声道
例如,edirol UA-25 音频设备拥有两个单独的麦克输入,在记录时最后
会合成一个立体声。无论你用哪个麦克录音,输出都是立体声,另一个没
有输入的声道会被降噪处理掉.
一些软件或许可以将立体声转化为单一声道的声音,将录音和另一个噪音
混合,这样会降低声音的品质。
因为dsnoop插件,这个问题是可以克服的.
让我们为左右声道分别定义两个虚拟的dsnoop接口
现在,我们就可以用下面的命令对左声道进行单独录取:
arecord -f cd -c 1 -D record_left foobar.wav
现在声音就是纯单声道的,而不是从立体声降低品质得到的假单声道。