图像数据作为gstreamer中的来源

时间:2014-03-25 03:51:27

标签: c++ c gstreamer

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

1 个答案:

答案 0 :(得分:2)

multifilesrc应该可以完成工作。

  

描述

     

从顺序命名的文件中读取缓冲区。如果与一起使用   图像解码器,需要使用“caps”属性或capsfilter来实现   强制包含帧率的大写字母。否则图像解码器发送   EOS之后的第一张照片。我们还需要一个videorate元素来设置   按照第一个缓冲区后的所有缓冲区上的时间戳   帧率。

     

通过使用索引替换“%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管道并不是那么复杂。