2

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

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

问题1:如何解决?

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

4

2 回答 2

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}}
于 2013-02-17T17:35:02.900 回答
3

只是为了进一步详细说明您的问题/答案。发布的答案仅链接到一个示例,但没有解释它,也没有示例本身。所以我想完成这个答案,以防其他人偶然发现它。

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

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

您正在使用 VLC 创建通过 http 传递的 mjpeg 流。感谢osgx另一个问题中的回复,这里是描述MPJEG over HTTP的维基百科链接。基本上:

M-JPEG over HTTP 使用特殊的 mime 类型multipart/x-mixed-replace和参数boundary=* < 边界 > ***** 通知客户端,您将发送一系列由< 边界分隔的 JPEG 图像>

适用于<boundary>的规则已由 Gumbo这篇文章中说明,而其他一些准则(现在可能已被较新的准则淘汰)在 RFC2046 中定义

混合替换的媒体类型在关于 MIME 的维基百科文章中进行了解释

由于您放置的示例包括通过 http 流式传输的媒体内容的 mime 定义,因此可以将其定义为带有 h​​ttp 访问定义的可选参数。

standard{access=http{mime=multipart/x-mixed-replace;boundary=--myboudary},mux=mpjpeg,dst=< address >:< port >/< path >}
于 2013-06-27T00:14:19.573 回答