VLC 和 MJPEG 解码器流式传输(无效标头)
Posted
技术标签:
【中文标题】VLC 和 MJPEG 解码器流式传输(无效标头)【英文标题】:VLC and MJPEG Decoder streaming (invalid header) 【发布时间】:2013-02-02 03:18:24 【问题描述】:我正在制作一个包含视频流的 WinRT 应用程序。现在我在 VLC 作为流媒体服务器和客户端上的 MJPEGDecoder lib (http://mjpeg.codeplex.com/) 来解码视频。
但是在创建 HTTP 流并从客户端连接到它之后,MJPEGDecoder 说标头无效(它需要多部分流)。 VLC-to-VLC 工作正常。
问题 1:如何解决?
问题 2:为 WinRT 创建视频流的替代方法有哪些?
【问题讨论】:
【参考方案1】:想通了。在http://tumblr.martinml.com/post/2108887785/how-to-broadcast-a-mjpeg-stream-from-your-webcam-with的帮助下
VLC 具有设置 mime 类型和边界的选项。来自链接的配置示例
:sout=#transcodevcodec=MJPG,vb=400,width=640,height=480
:duplicatedst=stdaccess=httpmime=multipart/x-mixed-replace;
boundary=--7b3cc56e5f51db803f790dad720ed50a,mux=mpjpeg,dst=:1234/webcam.mjpg
【讨论】:
这成功地使 VGSion H.264 RTSP 相机在 Ubuntu 上与 ZoneMinder 一起工作。谢谢!【参考方案2】:只是为了进一步详细说明您的问题/答案。 发布的答案仅链接到一个示例,但没有解释它,也没有示例本身。所以我想完成这个答案,以防其他人偶然发现它。
当您定义您的 vlc 流时,您忘记在您的问题中分享您很可能没有从访问参数 http 中指定任何选项,并且已经定义了 vlc 标准模块。 (就像我遇到同样问题时所做的那样)
standardaccess=http,mux=mpjpeg,dst=< address >:< port >/< path >
您正在使用 VLC 创建通过 http 传递的 mjpeg 流。 感谢osgx 回复another question,这里是描述MPJEG over HTTP 的***链接。基本上:
M-JPEG over HTTP 使用带有参数 boundary=*
**** 的特殊 mime 类型 multipart/x-mixed-replace 通知客户端*,您将发送一系列由 分隔的 JPEG 图像。
适用于
混合替换媒体类型在***article on MIME中有解释
由于您放置的示例包含通过 http 流式传输的媒体内容的 mime 定义,因此可以将其定义为 http 访问定义的可选参数。
standardaccess=httpmime=multipart/x-mixed-replace;boundary=--myboudary,mux=mpjpeg,dst=< address >:< port >/< path >
【讨论】:
以上是关于VLC 和 MJPEG 解码器流式传输(无效标头)的主要内容,如果未能解决你的问题,请参考以下文章