ZHDA175 June   2026 AM625 , AM625SIP , AM62D-Q1 , AM62L , AM62P

 

  1.   1
  2.   摘要
  3.   商标
  4. 简介
    1. 1.1 主要亮点:
    2. 1.2 基本概念:
      1. 1.2.1 PipeWire 服务器
      2. 1.2.2 PipeWire 客户端
      3. 1.2.3 会话管理器
      4. 1.2.4 节点、端口和链接
    3. 1.3 PipeWire 主要组件
  5. Linux 音频栈
  6. 通过 Yocto 构建支持 PipeWire 的 SDK 映像
    1. 3.1 在主机上运行 Yocto 构版建的步骤
      1. 3.1.1 必要条件(一次性设置)
    2. 3.2 克隆 oe 层设置
    3. 3.3 下载并应用 PipeWire 补丁
    4. 3.4 构建 PipeWire 映像
  7. 在 Sitara 器件上设置 PipeWire
    1. 4.1 硬件
      1. 4.1.1 SK-AM62B-P1
      2. 4.1.2 TMDS62LEVM
      3. 4.1.3 AUDIO-AM62D-EVM
    2. 4.2 配置 EVM 引导模式
      1. 4.2.1 SK-AM62B-P1
      2. 4.2.2 TMDS62LEVM
      3. 4.2.3 AUDIO-AM62D-EVM
    3. 4.3 UART 控制台设置
    4. 4.4 刷写 SD 卡映像
    5. 4.5 使用 SD 卡引导 EVM
  8. 使用 PipeWire
    1. 5.1 检查服务状态
    2. 5.2 启用 PipeWire 和 Wireplumber
    3. 5.3 启动 PipeWire 和 WirePlumber
    4. 5.4 常规 PipeWire 命令
      1. 5.4.1 列出 PipeWire 服务器中当前的所有对象
      2. 5.4.2 仅列出节点
      3. 5.4.3 检查特定对象
    5. 5.5 播放和录制立体声音频
  9. 配置
    1. 6.1 接收端和源端配置
    2. 6.2 WirePlumber 配置
  10. 性能基准测试
    1. 7.1 延迟
    2. 7.2 CPU 和内存使用情况
    3. 7.3 重新采样后的 CPU 和内存使用情况
    4. 7.4 观察结果
  11. 总结
  12. 参考资料
  13. 10重要声明和免责声明

CPU 和内存使用情况

此测试可测量当多个音频流同时使用音频服务器时的 CPU 利用率和内存使用情况。通过更改 PULSE_LATENCY_MSEC,将 PulseAudio 配置为以接近 143ms(PipeWire 的延迟)的延迟工作。

root@<machine>: export PULSE_LATENCY_MSEC=325

root@<machine>: pactl list sinks | grep Latency
Latency: 141702 usec, configured 142500 usec

在 PulseAudio 中,无法使用 PULSE_LATENCY_MSEC 将延迟设置为准确的值,因为它被视为目标而不是严格配置。因此,观察到的延迟可能与请求值有很大差异。实际延迟由内部缓冲区碎片、硬件限制和调度器行为决定。

还有其他方法可以控制延迟,例如直接修改影响延迟的变量(例如片段、片段大小等)。

有关更多详细信息,请参阅 Pulseaudio 文档

表 7-2 CPU 负载(相同延迟)
器件 音频服务器 CPU 利用率(平均)
SK-AM62B-P1PulseAudio约 5%
PipeWire约 1%
TMDS62LEVMPulseAudio约 6%
PipeWire约 1%
AUDIO-AM62D-EVMPulseAudio约 5%
PipeWire约 1%
表 7-3 内存使用情况(相同延迟)
器件 音频服务器 内存使用情况(平均)
SK-AM62B-P1PulseAudio约 22500KB
PipeWire约 46570KB(Wireplumber - 约 22910KB)
TMDS62LEVMPulseAudio约 25000KB
PipeWire大约 33400KB(Wireplumber - 约 30190KB)
AUDIO-AM62D-EVMPulseAudio约 21600KB
PipeWire大约 55000KB(Wireplumber - 约 22990KB)
注: 由于多进程设计,核心守护程序和 WirePlumber 会话管理器独立运行,因此 PipeWire 使用的内存更多。这种分离提供了故障隔离:如果 WirePlumber 崩溃,音频播放将不会中断。PulseAudio 的单进程设计具有更高的内存效率,但对组件故障的恢复能力较差。