由于公司蓝牙音箱的项目用到pulseaudio

出现了卡顿,google了很多资料觉得配置文件真的得好好看看

pulseaudio 官方的配置说明

arch linux 关于pulseaudio 的问题说明

其中最重要的配置是关于声音算法的配置

resample-method= The resampling algorithm to use. Use one of src-sinc-best-quality, src-sinc-medium-quality, src-sinc-fastest, src-zero-order-hold, src-linear, trivial, speex-float-N, speex-fixed-N, ffmpeg. See the documentation of libsamplerate for an explanation for the different src- methods. The method trivial is the most basic algorithm implemented. If you're tight on CPU consider using this. On the other hand it has the worst quality of them all. The Speex resamplers take an integer quality setting in the range 0..9 (bad...good). They exist in two flavours: fixed and float. The former uses fixed point numbers, the latter relies on floating point numbers. On most desktop CPUs the float point resmampler is a lot faster, and it also offers slightly better quality. See the output of dump-resample-methods for a complete list of all available resamplers. Defaults to speex-float-3. The --resample-method command line option takes precedence. Note that some modules overwrite or allow overwriting of the resampler to use.

二次采样的算法=src-sinc-best-quality 最好的声音品质,

src-sinc-medium-quality 一般pc采用的品质

当你采用嵌入式开发蓝牙音箱,那么选择 trivial 比较好,因为对CPU的压力最小.

pulseaudio 是很强大的工具.如果的CPU足够强大,很多算法可以采用.有低音炮的优化......

声音片段的设置

//=======================================================================================================================

查找您的音频设备参数(1/4)

要了解您的声卡缓冲设置是什么,请使用以下命令并滚动输出,直到找到正确的接收器条目。

$ pactl list sinks

Sink#1

状态:RUNNING

名称:alsa_output.pci-0000_00_1b.0.analog立体声

说明:内置音频模拟立体声

驱动程序:module-alsa-card.c

示例规格:s16le 2ch 44100Hz

频道映射:前左,前- 右

所有者模块:7

静音:否

音量:左前:42600/65%/ -11.22 dB,右前:42600/65%/ -11.22 dB

平衡0.00

基本音量:65536/100%/ 0.00 dB

监听源:alsa_output.pci-0000_00_1b.0.analog-stereo.monitor

延迟:70662 usec,配置85000 usec

标志:HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY

属性:

alsa.resolution_bits =“16”

device.api =“alsa”

device.class =“sound”

alsa.class =“generic”

alsa.subclass =“generic-mix”

alsa.name =“ALC283 Analog”

alsa.id =“ALC283 Analog”

alsa.subdevice = “0”

alsa.subdevice_name = “ subdevice#0”

alsa.device =“0”

alsa.card =“1”

alsa.card_name =“HDA Intel PCH”

alsa.long_card_name =“HDA Intel PCH at 0xe111c000 irq 43”

alsa。 driver_name =“snd_hda_intel”

device.bus_path =“pci-0000:00:1b.0”

sysfs.path =“/devices/pci0000 :00/0000:00:1b.0/ sound/card1”

device.bus =“pci “

device.vendor.id =“8086”

device.vendor.name =“Intel Corporation”

device.product.id =“9ca0”

device.product.name =“Wildcat Point-LP High Definition Audio Controller”

device.form_factor =“internal”

device.string =“front:1”

device.buffering.buffer_size =“352800”

device.buffering.fragment_size =“176400”

device.access_mode =“mmap + timer”

device.profile.name =“analog-stereo”

device.profile.description =“Analog Stereo”

device.description =“Built-in Audio Analog Stereo “

alsa.mixer_name =”Realtek ALC283“

alsa.components =”HDA:10ec0283,10ec0283,00100003“

module-udev-detect.discovered =”1“

设备。icon_name =“audio-card-pci”

端口:

模拟输出扬声器:扬声器(优先:10000,不可用)

模拟输出耳机:耳机(优先:9000,可用)

有效端口:模拟输出耳机

格式:

pcm

...

记下相关声卡的值buffer_size和fragment_size值。

以毫秒为单位计算碎片大小(2/4)

PulseAudio的默认采样率和位深度设置为44100Hz@ 16 bits。

使用这种配置,我们需要的比特率是44100* 16= 705600每秒的位数。那就是1411200 bps立体声。

我们来看看我们在上一步中找到的参数:

device.buffering.buffer_size =“352800”=> 352800/1411200 = 0.25 s = 250 ms

device.buffering.fragment_size =“176400”=> 176400/1411200 = 0.125 s = 125 ms

修改PulseAudio的配置文件(3/4)

/etc/pulse/daemon.conf

; default-fragments = X

; default-fragment-size-msec = Y

在上一步中,我们计算了片段大小参数。片段数是简单的buffer_size / fragment_size,在这种情况下(250/125)是2:

/etc/pulse/daemon.conf

; default-fragments = 2

; default-fragment-size-msec = 125

重新启动PulseAudio守护进程(4/4)

$ pulseaudio -k

$ pulseaudio - 启动

//=============================================================================

经过测试 是这个参数导致的卡顿

default-fragment-size-msec

The duration of a single fragment. Defaults to 25ms (i.e. the total buffer is thus 100ms long).

私人翻译如下.

单个片段的持续时间.默认是25ms,因为前面的片段设置是 4个片段,那么这个例子中的片段就是100ms.

个人认为这个就是音频流的缓冲buffer.

不知道为什么这个参数会卡.按照上面的计算方法.设置为2ms(原本是1.25ms)似乎不能设置为小数... ...

但是这样CPU的占用率提高了很多从20%一下子冲到40%.

但是不卡了... ...

pulseaudio daemon.conf 配置翻译 卡顿问题的更多相关文章

  1. idea配置(卡顿、开发环境等配置),code style template

    Tomcat配置VM Options:    -XX:PermSize=512m -XX:MaxPermSize=1024m 1.IDEA卡顿,修改IDEA使用内存 修改idea配置文件 在IDEA的 ...

  2. 【C++】解决vs2015经常卡顿的办法

    VS2015经常性的卡顿,参考了zhihu里问答的办法,编译和使用的时候的确快多了 为什么vs2015经常卡顿? https://www.zhihu.com/question/34911426 感谢z ...

  3. (转)公有云vr客户端tcp连接数太多造成 系统卡顿问题 [bittorrent tracker优化] -公有云常见网络问题及思路

    在公有云服务器 发现使用tcp(http)的tracker连接数太多 用户太多会造成windows系统卡顿 特此发表一下修改配置和路由器的方法 解决卡顿问题 解决方法1(参考内容): 修改 /etc/ ...

  4. 解决ubuntu16.04 USB鼠标键盘使用卡顿

    小米游戏本,键盘突然M建不能用,去了售后换了个键盘. 小米售后真的不想吐槽……入坑 键盘鼠标卡顿由于挂起导致失灵,每次需要激活所以卡顿 解决办法如下: 编辑如下文件配置 sudo vim /etc/l ...

  5. UITableView cell复用出错问题 页面滑动卡顿问题 & 各杂七杂八问题

    UITableView 的cell 复用机制节省了内存,但是有时对于多变的自定义cell,重用时会出现界面出错(例如复用出错,出现cell混乱重影).滑动卡顿等问题,这里只简单敲下几点复用出错时的解决 ...

  6. 解决webstorm卡顿问题

    webstorm强大的功能就不多做介绍了.但是它的缺点也显而易见:吃内存. 电脑配置稍低一点,运行webstorm就特别容易卡顿,特别是项目比较大的时候,那卡顿得不要不要的. 在我的笔记本8g内存 2 ...

  7. ART:Android 摆脱卡顿的希望?

    与 iOS 相比,Android 的用户体验有个相对糟糕的开始.在很长的时间里,界面一直丑小鸭,卡顿也是挥不去的痛.不过,在 Google 的全力推动,以及硬件厂商的响应下,Android 还是跨越各 ...

  8. Apache配置文件httpd.conf内容翻译

      本文已经废弃,现在apache2不依靠httpd.conf来配置. Ubuntu下默认的配置文件是/etc/apache2/sites-available/default 可以修改上面文件来修改a ...

  9. iOS app应用界面加载卡顿的问题

    刚发布版本,忽然发现加载界面需要3-5秒延迟,那么问题来了. 首先,发现问题: 1.看代码,基于之前版本更新都没出问题,还是比较确信不是代码中的bug,以防万一,还是仔细看了下关于界面跳转部分的代码, ...

  10. OAF与Windows 7版本不兼容黑屏卡顿问题

    OAF版本比较原始,在Window7中无法应用配色方案,导致黑屏卡顿问题.(在启动OC4J后,Window7的配色方案还是会还原至原始状态) 修改$JDEV_HOME/jdev/bin/jdev.co ...

随机推荐

  1. 🎀Nginx 安全设置(禁止Iframe跨域访问、隐藏server、限制ip访问)

    1.安装[headers-more-nginx-module]模块,自定义nginx头信息 2.禁止Iframe跨域请求 more_set_headers 'X-Frame-Options SAMEO ...

  2. H5 ios端底部安全距离CSS

    html 头部添加 <meta name="viewport" content="width=device-width, initial-scale=1.0,min ...

  3. el-table-column动态判断显示性别男女

    <el-table-column label="性别" width="60" align="center" prop="ge ...

  4. python处理ppt文件,转换成图片或者pdf文件(获取目录下所有文件信息、文件名称分割、文档操作)

    把PPT每一页截图到公众号里推送可是个体力活,那就用python脚本去分解ppt,保存每一个为一张图片好了 需要用到"win32com.client"库 import win32c ...

  5. 康谋分享 | aiSim5基于生成式AI扩大仿真测试范围(终)

    在前面的几章节中探讨了aiSim仿真合成数据的置信度,此外在场景重建和测试流程闭环的过程中,难免会面临3D场景制作重建耗时长.成本高.扩展性低以及交通状况复杂程度难以满意等问题,当前的主要挑战在于如何 ...

  6. js移动端判断跳转

    js移动端判断跳转,只一行 默默收藏 if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobil ...

  7. sonarqube+gitlab+jenkins+maven集成搭建(三)

    安装JENKINS 关闭防火墙[root@localhost ~]# systemctl stop firewalld[root@localhost ~]# systemctl disable fir ...

  8. chrome “从 Google 获取图片说明”

    右键菜单"从 Google 获取图片说明"多余去掉. 设置-高级-使用硬件加速模式(如果可用)-关闭 在用户使用上firefox完胜chrome,但是firefox的开发人员工具相 ...

  9. AI制作祝福视频,直播礼物收不停,广州塔、动态彩灯、LED表白(附下载链接)

    在追剧的时候经常能看到一些浪漫的告白桥段,男主用圣诞彩灯表白.用城市标志性建筑的LED表白,或者在五光十色的烟花绽放后刻下女主角的名字,充满了仪式感和氛围感~ 现在,这样的表白效果用AI软件就能实现了 ...

  10. c++单例模式总结

    分类 懒汉式:实例对象在第一次被使用时才进行初始化. 饿汉式:实例在定义时就被初始化. 特点 1.构造函数和析构函数私有化,不允许外部创建实例对象. 2.拷贝构造函数和复制运算符重载被delete,不 ...