2013-02-17 235 views
2

我正在制作包含视频流的WinRT应用程序。现在我以VLC作为流媒体服务器和客户端上的MJPEGDecoder库(http://mjpeg.codeplex.com/)来解码视频。VLC和MJPEG解码器流(无效头)

但是,在创建HTTP流并从客户端连接到它之后,MJPEGDecoder说这个头是无效的(它期望多部分流)。 VLC到VLC工作正常。

问题1:如何修复?

问题2:为WinRT创建视频流有什么替代方法?

回答

3

只是为了详细说明您的问题/答案。 发布的答案只是一个例子,但并没有解释它,niether自己做的例子。所以我想完成这个答案,以防其他人绊倒它。

当您定义您的vlc流时,您忘记分享您的问题,您很可能没有指定访问参数http中的任何选项,并将vlc标准模块定义为这样。 (就像我没有当我碰到了同样的问题)

standard{access=http,mux=mpjpeg,dst=<address>:<port>/<path>} 

您正在使用VLC创建通过HTTP一个MJPEG流。 感谢osgxanother question的回复,这里是维基百科链接描述MPJEG over HTTP。基本上:与参数边界= * <边界>

M-JPEG通过HTTP通知使用特殊的mime类型的multipart /客户端X - 混合替换 *****,你将发送由<分界线>分隔的一系列JPEG图像。

适用于<边界>已经this post通过 Gumbo和其他一些指导,也许现在由新的一个废弃已陈述的规则,是在RFC2046中定义

混合更换介质类型在维基百科中进行了解释article on MIME

作为您放置的示例,已包括通过http传输的媒体内容的MIME定义可以定义为可选参数,其中http a连接定义。

standard{access=http{mime=multipart/x-mixed-replace;boundary=--myboudary},mux=mpjpeg,dst=<address>:<port>/<path>} 
3

想通了。在http://tumblr.martinml.com/post/2108887785/how-to-broadcast-a-mjpeg-stream-from-your-webcam-with的帮助下

VLC有设置MIME类型和边界的选项。来自链路的配置示例

:sout=#transcode{vcodec=MJPG,vb=400,width=640,height=480} 
:duplicate{dst=std{access=http{mime=multipart/x-mixed-replace; 
boundary=--7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=:1234/webcam.mjpg}} 
+0

这成功地使VGSion H.264 RTSP相机在Ubuntu上与ZoneMinder一起使用。谢谢! – 2014-06-11 14:36:22