Pandakik 2022-06-01 15:54 采纳率: 50%
浏览 284
已结题

Gstreamer用tee的多线程中appsink使管道帧率降低严重怎么办??soos!

Gstreamer-tee-appsink,filesink,rtspsink

我是使用Gstreamer对摄像头的源(30帧)接入三个分支:appsink,filesink,rtspsink,
appsink用于输出每一帧
filesink用于保存视频
rtsp用于推流

这是我的管道拓扑图

img

问题描述

我遇到的问题是加入appsink会导致整个管道的输出帧率降低,没有appsink,仅有推流和保存视频是正常的
并且很奇怪的地方是在上面的图片中显示管道间的帧率正常,到输出到文件和网页上不正常,仅有7帧

希望能帮我看看是什么问题,有没有解决方案,困扰我一个星期了55
  • 写回答

1条回答 默认 最新

  • maskerJT 2022-06-03 12:00
    关注

    你是想用appsink从gstreamer里面取数据用来实时处理吧。我也碰到过这个问题,原因是你用的处理线程和gstreamer管道它们是处于不同的虚拟内存下的,gstreamer默认分配用于推流的memory是没法给你自己的处理线程cache的。网上推荐的做法我貌似只看到有说修改并重新编译gstreamer的源码,开启该memory的cache,否则基本无解(或者你再查查别人有什么解决办法,我之前没找到)。我自己的解决办法是抛弃gstreamer,使用v4l2框架改自己的程序,这是一套成熟的东西,到处都是v4l2采集视频的demo,在demo中使用V4L2_MEMORY_USERPTR(一共有四种方式)即可。
    https://github.com/biotrump/v4l-capture/blob/master/demo.c
    https://community.nxp.com/t5/i-MX-Processors/Why-is-access-to-V4L2-buffers-slower-than-other-memory/m-p/146640

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月17日
  • 已采纳回答 6月9日
  • 修改了问题 6月2日
  • 修改了问题 6月1日
  • 展开全部

悬赏问题

  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据