我正在制作包含视频流的WinRT应用程序。现在我以VLC作为流媒体服务器和客户端上的MJPEGDecoder库(http://mjpeg.codeplex.com/)来解码视频。VLC和MJPEG解码器流(无效头)
但是,在创建HTTP流并从客户端连接到它之后,MJPEGDecoder说这个头是无效的(它期望多部分流)。 VLC到VLC工作正常。
问题1:如何修复?
问题2:为WinRT创建视频流有什么替代方法?
我正在制作包含视频流的WinRT应用程序。现在我以VLC作为流媒体服务器和客户端上的MJPEGDecoder库(http://mjpeg.codeplex.com/)来解码视频。VLC和MJPEG解码器流(无效头)
但是,在创建HTTP流并从客户端连接到它之后,MJPEGDecoder说这个头是无效的(它期望多部分流)。 VLC到VLC工作正常。
问题1:如何修复?
问题2:为WinRT创建视频流有什么替代方法?
只是为了详细说明您的问题/答案。 发布的答案只是一个例子,但并没有解释它,niether自己做的例子。所以我想完成这个答案,以防其他人绊倒它。
当您定义您的vlc流时,您忘记分享您的问题,您很可能没有指定访问参数http中的任何选项,并将vlc标准模块定义为这样。 (就像我没有当我碰到了同样的问题)
standard{access=http,mux=mpjpeg,dst=<address>:<port>/<path>}
您正在使用VLC创建通过HTTP一个MJPEG流。 感谢osgx在another 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>}
想通了。在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}}
这成功地使VGSion H.264 RTSP相机在Ubuntu上与ZoneMinder一起使用。谢谢! – 2014-06-11 14:36:22