我正在尝试模仿使用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这样的想法怎么做呢?
答案 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服务器)。