HTML5能否提供实时媒体流服务?

7

我听说HTML5有很多有趣的特性,

但它能否从网络摄像头提供实时媒体流服务呢?

6个回答

1

HTML5视频只是一个看起来像的标签

<video src="movie.mp4" controls="controls">
    Your browser doesn't support the video tag.
</video>

(参考 这里

movie.mp4 实际包含的内容由底层服务器决定,只要格式本身支持流媒体,就可以作为流媒体内容进行传输。例如 h.264 的扩展配置文件和可扩展高级配置文件都支持视频流传输。


1

HTML5视频是一个标签吗?你能详细说明一下吗? - user198729
http://www.html5video.org/ http://www.w3schools.com/html5/tag_video.asp http://www.youtube.com/html5 - nebkat
谢谢!但是我该如何将摄像头流转换为rtp/rtsp格式? - user198729
我不确定。我只是举了一个例子。那是完全不同的问题,所以我建议你另外问一下。 - nebkat

1

我几天前已经证明了这一点。答案是肯定的和否定的。是的,XMLHttpRequest允许您在数据从相机流式传输时访问数据。但不是所有浏览器都支持。

在XMLHttpRequest中,当异步完成时,您可以从对象获取状态消息。问题在于每个浏览器处理方式略有不同。最大的问题是,即使Internet Explorer支持状态更新,如果您尝试在状态3中访问数据,它也会出现错误。有关更多信息,请参阅link

如果您的相机可以发送标准媒体类型的视频流,就像其他海报所说的那样,那将是您最好的选择。也许在IE 9发布后,XMLHttpRequest将按预期工作。


你有没有一个好的解决方案,可以将实时摄像头视频转换成rtp/rtsp格式? - user198729
假设我们仍在讨论HTML/JavaScript。 RTP/RTSP使用的端口与HTTP不同。其中一些元数据是明文的,其余部分则不是。在你的XMLHttpRequest中更改请求地址以包括一个端口,“rtp://someAddress:1024/whatever”,然后你可以尝试通过RTP请求数据。然而,RTP传输是UDP,这可能会成为浏览器的问题。你需要解码接收到的所有数据并发送RTSP上的状态更新。如果你可以选择任何浏览器,请使用IE,构建一个Windows表单控件,并尝试查找能够为你解码的库。 - QueueHammer

1

0

这实际上与HTML 5无关。在HTML中,您只需将浏览器指向资源,指定其为视频即可。如果您的相机以浏览器能够呈现的格式发出流,则应该可以正常工作。尽管根据我的经验,许多相机产生MJPEG,并且直接在浏览器中支持它的能力似乎非常有限。


0

您可以使用ffmpeg将摄像机格式(MJPEG等)的视频实时转换,然后在生成文件时访问转换后的文件。 MP4容器将一些信息存储在文件末尾,这会阻止流式传输,因此除非您使用不同的容器(ogg,mkv等),否则您需要使用qt-faststart之类的工具来生成实时兼容的MP4文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接