如何从源码运行和测试 PipeWire

更新时间

PipeWire 是一个面向 Linux 的音视频处理项目,提供低延迟、基于图的处理引擎,目标是同时覆盖 PulseAudio 和 JACK 的使用场景,并支持 ALSA、GStreamer 以及 Flatpak 沙箱应用。如果你想从源码运行和测试它,官方给出的路径是:用 Meson 构建系统编译,然后通过 make run 启动服务器、用 make shell 设置环境变量并运行示例程序。这套流程适合想验证源码构建结果、或在不安装到系统的情况下试用 PipeWire 的开发者。

前提条件

  • 已获取 PipeWire 源码。官方仓库位于 GitLab,克隆命令为:
git clone https://gitlab.freedesktop.org/pipewire/pipewire.git
  • 构建使用 Meson 构建系统。官方提供了一个便捷脚本和 makefile,使构建过程相对直接。
  • 官方建议尽量不要把这种构建安装到系统里。如果确实要安装,唯一开箱即用的 $PREFIX 是 /usr;更推荐的做法是构建自定义发行版包,或者直接从构建目录运行而不安装。

构建步骤

在源码目录中执行:

./autogen.sh --prefix=$PREFIX
make
make install

其中 --prefix 指定安装前缀。如前所述,只有 /usr 能开箱即用,因此更稳妥的方式是跳过 make install,直接从构建目录运行。

运行与测试

启动 PipeWire 服务器

在源码目录中执行:

make run

这会启动 PipeWire 服务器,用于测试。

设置运行环境并运行示例

在另一个终端窗口中执行:

make shell

这一步会设置好环境变量,使你能从构建目录运行示例应用。例如运行视频捕获与显示示例(基于 SDL):

builddir/src/examples/video-play

你也可以尝试其他示例程序。

常见卡点

  • 环境变量未设置:官方特别提醒,必须按上述方式设置正确的环境变量,否则插件和模块将无法被找到,示例程序会运行失败。
  • 安装前缀问题:如果坚持 make install,只有 /usr 前缀能直接工作;其他前缀需要自行处理,因此官方更推荐不安装、直接从构建目录运行。
  • 音频用例默认未启用:PipeWire 的音频支持在多数发行版中已可用,但多数发行版默认并未启用音频部分,需要参考官方文档运行相关示例来验证。

进一步了解

  • 官方文档:PipeWire 的文档页面。
  • 开发者可查看 PipeWire API 文档(官方说明其为不完整状态)。
  • 更多有用页面汇总在 PipeWire wiki 上。

PipeWire 是自由软件,项目也提供了参与开发的入口(Get Involved)。