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

为什么GStreamer中tee元件搭配udpsrc使用时流水线会发生卡顿?

问题原因
  • 首先是你编写的带tee的udpsrc流水线存在语法错误:tee name=t之后直接拼接queue,缺少GStreamer流水线元素间必须的链接符号!,导致tee的输出没有正确链接到第一个分支的队列元素,整个数据流链路断裂,无法正常运行。
  • 次要的性能风险:你当前的设计是在tee的两个分支分别执行H264解码操作,同一份流重复解码会额外占用CPU资源,低配置设备上可能会出现性能不足导致的卡顿。
修复方案

1. 语法修正版(保留原有分支解码逻辑)

gst-launch-1.0 udpsrc port=5600 do-timestamp=true ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! queue ! rtph264depay ! h264parse ! tee name=t ! queue ! avdec_h264 ! autovideosink t. ! queue ! avdec_h264 ! autovideosink

2. 性能优化版(解码前置,仅做一次解码)

将解码操作放在tee之前, tee直接分发解码后的原始视频帧到两个渲染分支,降低CPU消耗:

gst-launch-1.0 udpsrc port=5600 do-timestamp=true ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! queue ! rtph264depay ! h264parse ! avdec_h264 ! tee name=t ! queue ! autovideosink t. ! queue ! autovideosink

额外适配建议

如果修正语法后仍偶现卡顿,可以调整每个分支queue的缓存阈值,避免队列满阻塞上游数据流:
将分支的queue替换为queue max-size-buffers=0 max-size-time=0 max-size-bytes=0即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:06:03