22

是否有一种轻量、免费且可靠的方式在跨浏览器环境中显示 MJPEG?我正在尝试在我正在开发的网站上显示来自Axis 2120 IP 摄像机的 MJPEG 流,我发现这在当前版本的 Firefox 中非常可靠。但是,经过一些测试,我发现 IE、Opera 和 Chrome 在执行此操作时都有不同程度的问题(没有 Mac 访问权限,所以我不确定 Safari)。Internet Explorer 不支持 MJPEG,根本无法使用。在发送初始 GET 后,Opera 需要 10-15 秒才能显示任何内容。Chrome 可以完美运行,直到<div>包含<img>标签的内容被隐藏然后再次显示。

作为参考,我使用<img>标签来显示流,如下所示:

<img src="http://my.ip.addr/axis-cgi/mjpg/video.cgi/?resolution=352x240" alt="real-time video feed" />

我考虑过使用转播服务器来收集 MJPEG 流并即时对其进行转码,但这种解决方案似乎太难看了。那里有更好的建议吗?

4

2 回答 2

11

几个月前,我刚刚提出了一个解决方案。它是跨平台的,不需要第三方插件,例如 Flash 或 Java。

基本上,它是一个 node.js 代理,它解析 m-jpeg 边界并在定义的时间间隔内传递图像。

在https://github.com/rodowi/Paparazzo.js分叉它

于 2012-10-19T02:22:42.553 回答
6

这是一个基于 Java 小程序的解决方案,可用于任何浏览器(或仅用于不支持 MJPEG 的浏览器): http: //www.charliemouse.com/code/cambozola/

至于 MJPEG 的其他错误,我发现您应该在尝试删除“img”标签之前将“img”标签的“src”属性设置为 MJPEG 之外的其他内容。例子:

<img src="#" />

如果您不这样做,Firefox 将继续下载 MJPEG 流,即使它不应该这样做。

于 2011-04-29T16:37:00.907 回答