【问题标题】:Gstreamer video sink from Binary image data using Gstreamer使用 Gstreamer 从二进制图像数据获取 Gstreamer 视频接收器
【发布时间】:2018-10-15 07:38:33
【问题描述】:

问题类似于image data as source in gstreamer中的问题

这是我的要求:
1.有一个二进制文件[认为它是任何扩展名],其中包含多个图像数据[比如说一个二进制文件中有10个图像数据]
2. 提取二进制文件并将图像数据以 .jpg 格式保存到 windows 中的文件夹位置
3. 对于视频显示,我使用了以下管道 gst-launch-1.0 multifilesrc location=":/Images/%d.jpg" caps="image/jpeg,framerate=10/5" ! JPEG格式! autovideosink
          ** 在Images文件夹下,存储有名称以1.jpg、2.jpg等开头的.jpg文件。 %d 将从路径起始索引中获取图像,从 1 到值的最高计数 [连续编号的图像]

到这里为止一切看起来都很好。现在的要求是跳过第 2 步,即我们不需要将要存储在物理驱动器路径中的图像二进制数据转换为图像文件。相反,我们正在寻找类似将从二进制文件中提取的二进制数据直接作为源填充传递到 GStreamer 管道的方法。这可能吗 ?如果是这样,我应该如何编写管道的源垫?

原因:二进制文件中有多达 32 GB 的数据[这些是以二进制文件压缩的​​网络摄像头图像],因此将这些数据再次保存为图像格式是驱动器中需要另外 32 GB 的空间[这样继续下去等]。由于我们已经有了二进制格式的图像数据,我们需要一种机制将这些二进制数据[在 C 编程中以缓冲区的形式] 直接传递给 GStreamer 管道源。

注意:gstreamer 1.0 用于 windows 操作系统

【问题讨论】:

    标签: jpeg gstreamer gstreamer-1.0


    【解决方案1】:

    第一个问题是您为什么不以视频文件格式保存视频数据 - 正是出于这个目的..

    您可以使用 appsrc 编写 GStreamer 应用程序。然后,您必须像在应用程序中的步骤 2) 中那样解析数据,并通过 appsrc 将图像块提供给 jpegdec

    【讨论】:

    • 完全相同的问题。价值 32GB 的图像,然后将其流式传输到视频中。为什么不将其保存为视频格式本身?
    • 感谢您的快速回复。所以让我在数据部分更清楚地说明这一点。 32 GB 的数据来自不同的来源 [来自监控摄像头]。说 32 GB,这是存储卡中可用的最大数据。所以基本上我们只是试图提取存储卡中可用的图像以视频格式显示。回答您为什么不使用视频数据,因为设备在存储卡中捕获视频数据是有限制的。
    • @Florian,Zwoch,我也遇到了 appsrc,需要进一步挖掘以理解这个概念,因为我对 gstreamers 不是很熟悉。是的,我已经使用文件对象解析了文件,我有图像数据为二进制数组。那么,是否可以像循环一样将大块二进制数据发送到appsrc??
    • 您基本上将数据块包装到 GstBuffer 对象中,然后通过 appsrc api 将其推送到管道中。您需要决定是否要将 appsrc 运行到推送或拉取模式。但是一旦您阅读了上面的文档,您应该知道该怎么做。
    • 我会接受@Florian Zwoch 的回答,但是我还没有实现它。通过 Gstreamer appsrc 文档,我发现这可能是我正在寻找的[使用字节数据的推/拉模式]。因此,接受这个答案将有助于其他有类似问题的人尝试实现自己的要求。我将很快发布我将使用 apsrc 实现的示例。
    【解决方案2】:

    你可以write a source element,从 BaseSrc 派生。

    【讨论】:

    • 谢谢@micha137,有很多理论要读懂。所以让我通过 BaseSrc 了解详细信息。
    • 我真的不确定写入源板是否是合适的答案(同样,可能是由于我缺乏 Gstreamer 专业知识)。阅读文档中以下 2 行内容时,我感到有些困扰/困惑 [这让我没有再进一步 :) ]:1。 GStreamer 提供了两个基类:用于基本源功能的 GstBaseSrc 和 GstPushSrc ,它是非字节精确源基类。 2. GstBaseSrc 可能并不适用于所有情况;它有局限性:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多