pulseaudio daemon.conf 配置翻译 卡顿问题
由于公司蓝牙音箱的项目用到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 配置翻译 卡顿问题的更多相关文章
- idea配置(卡顿、开发环境等配置),code style template
Tomcat配置VM Options: -XX:PermSize=512m -XX:MaxPermSize=1024m 1.IDEA卡顿,修改IDEA使用内存 修改idea配置文件 在IDEA的 ...
- 【C++】解决vs2015经常卡顿的办法
VS2015经常性的卡顿,参考了zhihu里问答的办法,编译和使用的时候的确快多了 为什么vs2015经常卡顿? https://www.zhihu.com/question/34911426 感谢z ...
- (转)公有云vr客户端tcp连接数太多造成 系统卡顿问题 [bittorrent tracker优化] -公有云常见网络问题及思路
在公有云服务器 发现使用tcp(http)的tracker连接数太多 用户太多会造成windows系统卡顿 特此发表一下修改配置和路由器的方法 解决卡顿问题 解决方法1(参考内容): 修改 /etc/ ...
- 解决ubuntu16.04 USB鼠标键盘使用卡顿
小米游戏本,键盘突然M建不能用,去了售后换了个键盘. 小米售后真的不想吐槽……入坑 键盘鼠标卡顿由于挂起导致失灵,每次需要激活所以卡顿 解决办法如下: 编辑如下文件配置 sudo vim /etc/l ...
- UITableView cell复用出错问题 页面滑动卡顿问题 & 各杂七杂八问题
UITableView 的cell 复用机制节省了内存,但是有时对于多变的自定义cell,重用时会出现界面出错(例如复用出错,出现cell混乱重影).滑动卡顿等问题,这里只简单敲下几点复用出错时的解决 ...
- 解决webstorm卡顿问题
webstorm强大的功能就不多做介绍了.但是它的缺点也显而易见:吃内存. 电脑配置稍低一点,运行webstorm就特别容易卡顿,特别是项目比较大的时候,那卡顿得不要不要的. 在我的笔记本8g内存 2 ...
- ART:Android 摆脱卡顿的希望?
与 iOS 相比,Android 的用户体验有个相对糟糕的开始.在很长的时间里,界面一直丑小鸭,卡顿也是挥不去的痛.不过,在 Google 的全力推动,以及硬件厂商的响应下,Android 还是跨越各 ...
- Apache配置文件httpd.conf内容翻译
本文已经废弃,现在apache2不依靠httpd.conf来配置. Ubuntu下默认的配置文件是/etc/apache2/sites-available/default 可以修改上面文件来修改a ...
- iOS app应用界面加载卡顿的问题
刚发布版本,忽然发现加载界面需要3-5秒延迟,那么问题来了. 首先,发现问题: 1.看代码,基于之前版本更新都没出问题,还是比较确信不是代码中的bug,以防万一,还是仔细看了下关于界面跳转部分的代码, ...
- OAF与Windows 7版本不兼容黑屏卡顿问题
OAF版本比较原始,在Window7中无法应用配色方案,导致黑屏卡顿问题.(在启动OC4J后,Window7的配色方案还是会还原至原始状态) 修改$JDEV_HOME/jdev/bin/jdev.co ...
随机推荐
- 揭秘AI编排爆火真相:从"人工智障"到"真正智能"的关键一跃
当行业还在追捧大模型参数竞赛时,领先团队早已转向新战场: AI编排(Agent Orchestration)-- 这个方向是 AI 技术"从聊天到做事"的关键突破口. 1.为什么说 ...
- (倍增)LCA学习笔记+做题记录
LCA学习笔记 LCA指最长公共子序列,可以使用倍增的方法求解(复杂度较优) 步骤 (1) 预处理 a. 求深度: 对于每个结点 \(dfs\) 预处理出结点深度; b. 求倍增祖先: 计算出每个结点 ...
- 容器镜像基础(nydus)
" 包括 nydus 的基本概念.架构和容器镜像加速使用方法. 1. nydus 1.1 存在的问题 对于容器镜像使用者 问题一:启动容器慢:容器启动慢的情况普遍发生在当用户启动一个很大的容 ...
- hadoop部署安装(二)hdfs
2.1 解压Hadop包 2.2 配置hadoop-env.sh文件 [root@master ~]# cd /usr/local [root@master local]# tar xf hadoop ...
- C#基础——不可变集合
参照:https://mp.weixin.qq.com/s/NFBc2bNeHpdadh89T44Lpg 在 .NET Core 中就存在着这三大 IReadOnlyList,IReadOnlyDic ...
- django笔记(3)-数据库操作
一:路由系统 url 1.url(r'^index/', views.index),url(r'^home/',views.Home.as_view()), 一个url对应一个函数或一个类 ...
- 一文速通Python并行计算:10 Python多进程编程-进程之间的数据共享-基于共享内存和数据管理器
一文速通 Python 并行计算:10 Python 多进程编程-进程之间的数据共享-基于共享内存和数据管理器 摘要: Python 多进程通信中,共享内存通过 Value 和 Array 实现高效数 ...
- odoo备份数据库无法还原问题解决:Command 'pg_dump' not found.
背景景:ubuntu20.04 上用命令安装postgresql后,odoo备份数据库报如下错误 安装命令:sudo apt-get install postgresql 默认安装:14版本的pg 错 ...
- Java基于线程池和AQS模拟高并发
概述 <手写高并发下线程安全的单例模式>主要介绍使用枚举类实现JAVA单例模式,以及在高并发环境下验证此单例模式是线程安全的.本文借助ReentrantLock.CountDownLa ...
- 【2020.11.14提高组模拟】无尽之前 (game) 题解
[2020.11.14提高组模拟]无尽之前 (game) 题解 有趣的题面 题目背景 雏见泽,一个和平的,或者说本应和平的小村庄,却因连续四年的怪死事件而蒙上了阴 影. 无一例外,每年的事件都发生在棉 ...