问题类似于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”! jpegdec! autovideosink
** 在“图像”文件夹下,存储有.jpg文件,其名称以1.jpg,2.jpg等开头。 %d将从路径起始索引从1到最高值计数的图像(连续编号的图像)
一切都很好,直到这里。现在的要求是跳过步骤2,即我们不需要将要存储在物理驱动器路径中的图像二进制数据转换为图像文件。相反,我们正在寻找类似将二进制文件中提取的二进制数据作为源程序直接传递到GStreamer管道的方法。这可能吗 ?如果是这样,我应该如何为管道编写源焊盘?
原因:二进制文件中有多达32 GB的数据[这些是在二进制文件中压缩的网络摄像头图像],因此,将这些数据再次保存为图像格式是驱动器中又需要32 GB的空间[并且继续等等]。由于我们已经具有二进制格式的图像数据,因此我们需要一种机制将这些二进制数据(以C编程中的缓冲区形式)直接传递到GStreamer管道源。
注意:Windows操作系统中使用了gstreamer 1.0
答案 0 :(得分:0)
您可以write a source element,源自BaseSrc。
答案 1 :(得分:0)
第一个问题是为什么您不以视频文件格式保存视频数据-正是出于这个目的。
您可以使用appsrc
编写GStreamer应用程序。然后,您将必须像在应用程序中的步骤2)中一样解析数据,并通过appsrc
将图像块馈送到jpegdec
。