图像数据作为源在gstreamer

image data as source in gstreamer

本文关键字:gstreamer 数据 图像      更新时间:2023-10-16

我想制作一个GStreamer应用程序,它将图像数据作为源而不是文件位置。我的目的是显示通过tcp接收的图像。当tcp获得图像数据(字节数组)时,它应该将数据直接传递给gstreamer插件,而不是将其保存在本地。

应该由multifilesrc来完成。

描述

从顺序命名的文件中读取缓冲区。如果与an一起使用图像解码器,需要使用"caps"属性或capsfilter来强制到包含帧率的上限。否则图像解码器发送EOS后第一张照片。我们还需要一个可视元素来设置在第一个缓冲区之后的所有缓冲区上设置时间戳帧速率。

文件名是通过将"%d"替换为索引来创建的printf () .

示例启动行

gst-launch-1.0 multifilesrc location="img.%04d.png" index=0 caps="image/png,framerate=(fraction)12/1" ! 
    pngdec ! videoconvert ! videorate ! theoraenc ! oggmux ! 
    filesink location="images.ogg"

这个管道创建一个视频文件"images "。Ogg"名称为img.0000.png、img.0001.png等的PNG文件

来源:http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-multifilesrc.html

因此,如果您通过命令行使用gstreamer,这应该可以达到目的。您只需要指定文件,并在收到文件时对文件进行"循环"。

否则,编写一个使用multifilesrc作为源文件的gstreamer管道就不那么复杂了。