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

是否存在可强制深度复制GstBuffer的GStreamer元素?

解决GStreamer Tee分支Buffer深度复制的问题

你可以用以下两个轻量元素触发GstBuffer的深度复制,确保每个Tee分支拿到独立的Buffer副本,之后在Pad Probe里修改就不会互相干扰:

  • queue 元素:给queue加上copy-buffers=true参数,它会对经过的每个Buffer执行深度复制。同时queue还能提供线程隔离,适合后续有耗时修改操作的场景。
    示例分支写法:

    t. ! queue copy-buffers=true ! video/x-raw,format=NV12 ! ... 你的Pad Probe和后续处理
    
  • identity 元素:这是专门做透传/Buffer处理的轻量元素,开启copy=true属性就能触发深度复制,开销比queue更小,适合只需要复制Buffer的场景。
    示例分支写法:

    t. ! identity copy=true ! video/x-raw,format=NV12 ! ... 你的Pad Probe和后续处理
    

完整Pipeline示例参考:

v4l2src ! video/x-raw,width=1280,height=720,format=NV12 ! tee name=t
t. ! queue copy-buffers=true ! pad probe(添加覆盖层A) ! autovideosink
t. ! identity copy=true ! pad probe(添加覆盖层B) ! autovideosink

原理很直接:在Tee的每个输出分支最前面加上带复制参数的元素,让每个分支拿到独立的Buffer副本,之后你在Pad Probe里做破坏性修改就不会影响另一个分支的Buffer了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:12:40