VLC和MJPEG解码器流(无效标头)

时间:2013-02-17 17:07:43

标签: windows-runtime video-streaming vlc mjpeg

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

但是在创建HTTP流并从客户端连接到它之后,MJPEGDecoder表示标头无效(它需要多部分流)。 VLC到VLC工作正常。

问题1:如何解决?

问题2:为WinRT创建视频流的替代方案是什么?

2 个答案:

答案 0 :(得分: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}}

答案 1 :(得分:3)

再详细说明你的问题/答案。 已发布的答案仅链接到一个示例,但不解释它,示例本身就是其中之一。所以我想完成这个答案,以防其他人偶然发现它。

当您定义了您忘记在问题中共享的vlc流时,您很可能没有从访问参数http中指定任何选项,并且已将vlc标准模块定义为此类。 (就像我遇到同样的问题时那样)

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

您正在使用VLC创建通过http传递的mjpeg流。 感谢osgx中的another question回复,以下是描述MPJEG over HTTP的维基百科链接。基本上是:

  

HTTP上的M-JPEG使用特殊的mime类型 multipart / x-mixed-replace 通过参数 boundary = * &lt;来通知客户端边界&gt; *****,您将发送由&lt;分隔的一系列JPEG图像。边界&gt;

适用于&lt;的规则边界&gt; 已在this post中说明 RFC {{p>

中定义了Gumbo和其他一些指南,可能现在已被新的指南淘汰了。

维基百科article on MIME

中解释了混合替换媒体类型

正如您所放置的示例所包含的,通过http流式传输的媒体内容的mime定义可以定义为具有http访问定义的可选参数。

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