使用GStreamer创建MJPEG流

4

我想模仿使用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个回答

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

2

为此,您需要编写一个(迷你)HTTP服务器。您可以查看例如Gnome上的UPnP服务器rygel。


1
我需要使用测试数据流视频源,这样我就可以从IP摄像头上进行图像处理工作。 - Fuxi
请问您能否提供更多关于您的环境的详细信息?对于某些测试,您应该可以从包含示例视频的目录中运行一个简单的httpd(只需搜索Python mini httpd服务器)。 - ensonic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接