在HTML5中通过RTSP或RTP进行流式传输

时间:2009-11-14 23:09:25

标签: video html5 streaming rtsp rtp

我正在构建一个应该从服务器 http://lscube.org/projects/feng 回放RTSP / RTP流的Web应用程序。

HTML5视频/音频标签是否支持rtsp或rtp?如果没有,最简单的解决方案是什么?也许可以下载到VLC插件或类似的东西。

9 个答案:

答案 0 :(得分:88)

技术上'是'

(但不是真的......)

HTML 5的<video>标签与协议无关 - 它并不关心。您将协议作为URL的一部分放在src属性中。 E.g:

<video src="rtp://myserver.com/path/to/stream">
    Your browser does not support the VIDEO tag and/or RTP streams.
</video>

或者

<video src="http://myserver.com:1935/path/to/stream/myPlaylist.m3u8">
    Your browser does not support the VIDEO tag and/or RTP streams.
</video>

也就是说,<video>标签的实现是特定于浏览器的。由于HTML 5的早期阶段,我希望经常更改支持(或缺乏支持)。

来自W3C的HTML5规范(The video element):

  

用户代理可能支持任何视频和音频编解码器和容器格式

答案 1 :(得分:50)

我认为,问题的精神并没有得到真正的回答。不,您现在无法使用视频标签播放rtsp流。关于与Chromium guy“never”的链接的另一个答案有点误导,因为链接的帖子/答案并不直接指Chrome通过视频标签播放rtsp。阅读整个链接的线程,特别是最底层的注释和其他线程的链接。

真正的答案是:不,你不能只在html 5页面上放一个视频标签并播放rtsp。您需要使用某种类型的Javascript库(除非您想要使用flash和silverlight播放器进行播放)才能播放流式视频。 {IMHO}按照html 5视频讨论和实施的速度,专有视频标准的各个供应商对帮助这一进展不感兴趣所以不要指望视频标签的承诺易用性,除非浏览器制造商以某种方式解决问题...再次,不太可能。{/ IMHO}

答案 2 :(得分:23)

这是一个古老的问题,但我最近自己必须这样做,并且我已经完成了一些工作(除了像我这样的回复会节省我一些时间): 基本上使用ffmpeg将容器更改为HLS,大多数IPCams流h264和一些基本类型的PCM,所以使用类似的东西:

3

然后使用video.jsHLS plugin这将很好地播放直播流在第二个链接下还有一个jsfiddle示例。)

注意:虽然这不是本机支持,但它并不需要在用户前端添加任何额外内容。

答案 3 :(得分:19)

Chrome绝不会实施支持RTSP流媒体。

至少,用Chromium开发人员here

的话来说
  

我们永远不会为此添加支持

答案 4 :(得分:14)

HTML5中有三种流媒体协议/技术:

直播,低延迟 - WebRTC - Websocket

VOD和直播,高延迟 - HLS

<强> 1。的WebRTC

实际上,WebRTC是SRTP(安全RTP协议)。 因此,我们可以说视频标签通过WebRTC间接支持RTP(SRTP)。

因此,要在Chrome,Firefox或其他HTML5浏览器上获取RTP流,您需要一个WebRTC服务器,它将SRTP流传送到浏览器。

<强> 2。的WebSocket

它基于TCP,但延迟低于HLS。你需要一个Websocket服务器。

第3。 HLS

最受欢迎的VOD高延迟流媒体协议(预先录制的视频)。

答案 5 :(得分:8)

使用VLC,我能够将实时RTSP流(mpeg4)转码为OGG格式的HTTP流(Vorbis / Theora)。质量很差但视频在Chrome 9中有效。 我也在WEBM(VP8)中使用转码进行了测试,但它似乎没有用(VLC有选项,但我不知道它现在是否真的实现了......)

第一个拥有此文档的人应该通知我们;)

答案 6 :(得分:1)

我对HTML 5视频标签和rtsp(rtp)流的观察是,它只适用于konqueror(KDE 4.4.1,Phonon-backend设置为GStreamer)。我只获得了带有H.264 / AAC RTSP(RTP)流的视频(无音频)。

来自http://media.esof2010.org/的流不适用于konqueror(KDE 4.4.1,Phonon-backend设置为GStreamer)。

答案 7 :(得分:1)

Chrome未实施支持RTSP流媒体。 检查WebRTC的一个重要项目。

“WebRTC是一个免费的,开放的项目,通过简单的API为浏览器和移动应用程序提供实时通信(RTC)功能”

支持的浏览器:

Chrome,Firefox和Opera。

支持的移动平台:

Android和IOS

http://www.webrtc.org/

答案 8 :(得分:0)

现在下结论。

我正在尝试无意义地绕过它,因为 rtsp 不能 OOB。如果没有“管理器”来处理流媒体以完善视频标签的工作方式,那么现在是不可能的。

我目前正在研究 android+html(混合)解决方案,以非常邪恶的方式管理它。由于它应该在没有中间服务器的情况下直接从相机播放到 android,我们想出了一个涉及 canvas 标签的解决方案来桥接非 webview 和 webview。