当前位置: 首页 > article >正文

Gstreamer中,appsink、appsrc、fakesink与第三方交互

gstreamer中,有多种方式和第三方交互,其中比较推荐的有appsink、appsrc,其实还有fakesink。

  • appsink和appsrc即可以成对使用,也可以单独使用。
  • appsink和fakesink用于将gst管道的数据发送出去,appsrc可以接收数据。
  • 类似opencv那种,做了封装,可以运行gst管道,可以直接运行gst管道使用appsink将数据传输到opencv。
  • appsrc是用于在一个程序中将数据从第三方传递回gstreamer管道进行进一步使用,也可以接收appsink数据,但是不能接收fakesink的数据。
  • fakesink,可以通过信号,将数据传递给第三方,没有appsrc去接。
appsrc使用

第三方向appsrc传送数据的方法有多种:

  • gst_app_src_push_buffer,需要提前设置appsrc的caps。除了gst_app_src_push_buffer,还有gst_app_src_push_buffer_list,gst_app_src_push_sample等

    // 创建 GStreamer 管道
    std::string pipeline_str = "appsrc name=source caps=\"video/x-raw,format=BGR,width=640,height=480\" ! videoconvert ! xvimagesink name=vsink2";
    
    GstElement* pipeline = gst_parse_launch(pipeline_str.c_str(), NULL);
    // 获取 appsrc 元素
    GstElement* appsrc = gst_bin_get_by_name(GST_BIN(pipeline), "source");
    
    // ...
    
    // 创建 GStreamer 缓冲区
    GstBuffer* buffer = gst_buffer_new_allocate(NULL, frame.total() * frame.elemSize(), NULL);
    GstMapInfo info;
    
    gst_buffer_map(buffer, &info, GST_MAP_WRITE);
    memcpy(info.data, frame.data, frame.total() * frame.elemSize());
    gst_buffer_unmap(buffer, &am

http://www.kler.cn/a/412501.html

相关文章:

  • mysql in查询大数据量业务无法避免情境下优化
  • qt 读写文本、xml文件
  • day01
  • IC数字后端实现之大厂IC笔试真题(经典时序计算和时序分析题)
  • 全网最早Towards Generalizable Multi-Object Tracking—通用跟踪器的点跟踪CVPR2024
  • 【系统架构设计师】真题论文: 论数据访问层设计技术及其应用(包括解题思路和素材)
  • Web富文本编辑器 wangeditor 解决 XSS 攻击方法
  • 同步时序电路——描述
  • Tomcat中如何开启gzip压缩?
  • OkHttp3 - 2. OkHttp的核心组件与架构
  • 数据结构C语言描述5(图文结合)--队列,数组、链式、优先队列的实现
  • 【一篇搞定配置】网络分析工具WireShark的安装与入门使用
  • Shell脚本实践练习
  • 简单的TCPSocket客户端使用案例(已入OPCommon)
  • 40分钟学 Go 语言高并发:Select多路复用
  • 【python量化教程】如何使用必盈API的股票接口,获取最新实时交易数据
  • 机器学习模型——线性回归
  • 数据链路层(一)-使用点对点信道的数据链路层
  • Edge浏览器保留数据,无损降级退回老版本+禁止更新教程(适用于Chrome)
  • 深度理解进程的概念(Linux)
  • 【C#设计模式(15)——命令模式(Command Pattern)】
  • 数据结构——排序算法第二幕(交换排序:冒泡排序、快速排序(三种版本) 归并排序:归并排序(分治))超详细!!!!
  • MQ高级1:消息可靠性问题、生产者可靠性
  • STM32F4系列单片机新玩法---Micropython--pyBoard
  • PHP实现终端表格提取
  • Three.js 和其他 WebGL 库 对比