使用linphone时出现一个问题:

来源:百度文库 编辑:神马文学网 时间:2024/04/29 11:18:45

2008-05-22

dsnoop howto - [linux]

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://annulus.blogbus.com/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
        现在声音就是纯单声道的,而不是从立体声降低品质得到的假单声道。