You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用libpipewire捕获桌面视频?修改示例代码未生效求助

解决PipeWire video-play示例从摄像头切换到桌面捕获的问题

只把代码里的Camera替换成Screen无法生效,是因为PipeWire的设备匹配逻辑需要更精准的属性过滤,而非单纯修改名称关键词。以下是具体修改步骤:

  • 修正设备过滤条件
    打开video-play.c文件,找到构建设备过滤规则的代码段(对应原第469行附近的pw_filter_add_filter调用),将原匹配摄像头的条件:
SPA_KEY_NODE_NAME, "*Camera*",

替换为匹配桌面捕获设备的属性,推荐用更可靠的设备类别匹配:

SPA_KEY_DEVICE_CATEGORY, "Display",

如果系统中桌面捕获设备的名称包含Screen,也可以直接替换名称匹配:

SPA_KEY_NODE_NAME, "*Screen*",
  • 重新编译示例程序
    进入PipeWire项目的src/examples目录,重新编译video-play:
make video-play

若使用Meson构建系统,在项目根目录执行:

ninja -C build
  • 验证运行效果
    运行编译后的video-play程序,此时应该会自动选择桌面捕获设备,窗口显示屏幕内容。

注意:确保系统已安装xdg-desktop-portal及对应桌面环境的后端(如Wayland下的xdg-desktop-portal-wlr,GNOME下的xdg-desktop-portal-gnome),PipeWire的桌面捕获功能依赖这些组件。

内容的提问来源于stack exchange,提问作者ibse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 16:04:50