使用 Gstreamer 从二进制图像数据接收 Gstreamer 视频

Gstreamer video sink from Binary image data using Gstreamer

问题与image data as source in gstreamer

中的问题相似

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

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

原因:二进制文件中有多达 32 GB 的数据[这些是压缩为二进制文件的网络摄像头图像],因此将这些数据再次保存为图像格式需要另外 32 GB space开车[并且这种情况一直持续]。由于我们已经有了二进制格式的图像数据,我们需要一种机制将这些二进制数据[在C编程中以缓冲区的形式]直接传递给GStreamer管道源。

注意:gstreamer 1.0 用于 windows OS

您可以write a source element,派生自 BaseSrc。

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

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