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 ...
随机推荐
- Semaphore.release()方法的底层原理
一.release() 方法代码解析 当调用 release() 方法时,实际调用的是 AQS 的 releaseShared(1) 方法.以下是其详细工作流程: public final boole ...
- Condition的await()方法底层源码
一.Condition的await()方法底层源码 以下是 ConditionObject 中 await 方法的源码及其详细分析: public final void await() throws ...
- springboot整合log4j
一.默认名log4j2-spring.xml,就省下了在application.yml中配置 <console name="Console" target="SYS ...
- Asp.net mvc基础(三)View的查找
1.指定转到的视图 View("指定的视图名称"); 优先于寻找Action方法名称可以创建的视图的文件夹,如果没有,就去View文件夹下的Shared文件夹寻找指定的视图名称. ...
- Traefik,想说爱你不容易:一场动态反向代理的心累之旅
前言:技术选型的初心 在微服务盛行.容器部署逐渐常态化的今天,"动态反向代理"显得尤为重要. Traefik 凭借其原生支持 Docker.自动生成路由.集成 Let's Encr ...
- 解决宝塔环境composer报错:TypeError: Return value of Symfony\Component\Process\Process::close
问题: 解决宝塔环境安装运行composer时报错:TypeError: Return value of Symfony\Component\Process\Process::close 不熟悉的人看 ...
- MaxKB中如何选择向量模型?
MaxKB内置的向量模型不足? 在MaxKB中知识文档Emdeding是很重要的一环,而这个过程就必须依赖向量模型.目前MaxKB内置的向量模型为text2vec-base-Chinese,一个针对中 ...
- 【记录】Prompt模板|作为甲方怎么清晰专业地描述自己的需求(又名“乙方,给你的甲方扔个GPT解放自己吧”)
这篇Prompt摘抄并修改自朋友送给我的书的第49页5.2.3让ChatGPT构建提示,质量挺不错,支持一下她的博客:[好书推荐2]AI提示工程实战:从零开始利用提示工程学习应用大语言模型. 书长这样 ...
- 一些 DP 思维题
最单纯的思维题就是想出来思路就会做,几乎没有实现难度的题.这种题 CF 与 Atcoder 比较多,这里集中记录一下. 对于 DP 而言,思维题只需要想出转移方程即可. CF1174E Ehab an ...
- QtWidget项目-仿腾讯QQ音乐
本博客主要介绍本人写的个人项目 - QtWidget5 仿腾讯QQ音乐项目. 效果演示 项目详情 源码 Gitee地址:https://gitee.com/run-little-peach/my-qq ...