使用GStreamer创建MJPEG流

时间:2011-10-05 23:19:45

标签: streaming gstreamer mjpeg

我正在尝试模仿使用MJPEG的IP摄像头。 此时在命令行中接收流我正在使用:

gst-launch -v souphttpsrc location=http://IP:PORT/video.mjpg is-live=true user-id=USER user-pw=PASSWD ! multipartdemux ! jpegdec ! ffmpegcolorspace ! ximagesink

但我不知道如何恢复过程

gst-launch -v videotestsrc ! ??? ! ...

没有像souphttpsink这样的想法怎么做呢?

2 个答案:

答案 0 :(得分:2)

编写CGI脚本(Perl,C / C ++)并通过提供cgi可执行权限和设置正确的Web服务器配置,放置在Apache或Lighttpd等服务器的Web服务器cgi-bin / cgi_bin目录中。查看此示例以在Perl http://www.perlmonks.org/?node_id=18565中查看jpeg图像。由于mjpeg流只不过是一系列jpeg,而不是从磁盘中查看图像帧,所以你需要做的就是从内存中获取图像(这可能是你从网络摄像头或磁盘上收到的jpeg帧。你可以压缩使用libjpeg的未压缩帧,并将代码放在while循环中,用于一系列图像。这成为你的mjpeg流。 MIME类型显然是images / jpeg。

答案 1 :(得分:1)

为此你需要写一个(迷你)http服务器。你可以看看,例如rygel(gnome上的upnp服务器)。