通过HTML5中的RTSP或RTPstream式传输

我正在build立一个networking应用程序,应该从服务器http://lscube.org/projects/feng播放RTSP / RTPstream。

HTML5video/audio标签是否支持rtsp或rtp? 如果不是,最简单的解决scheme是什么? 也许下降到一个VLC插件或类似的东西。

技术上'是'

(但不是真的…)

HTML 5的<video>标记是协议不可知的 – 它不关心。 您将协议放置在src属性中作为URL的一部分。 例如:

 <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规范( video元素 ):

用户代理可以支持任何video和audio编解码器和容器格式

我想,这个问题的精神并没有得到真正的答复。 不,你不能使用video标签来播放rtspstream。 关于链接到Chromium的人“从不”的其他答案是有点误导,因为链接的线程/答案不是直接指Chrome浏览器通过video标签播放rtsp。 阅读整个链接的线程,尤其是最底部的注释和其他线程的链接。

真正的答案是这样的:不,你不能只在HTML5页面上放一个video标签,并播放rtsp。 您需要使用某种types的Javascript库(除非您想用Flash和Silverlight播放器进行播放)来播放stream式video。 随着HTML5video讨论和实施的进行,专有video标准的各个供应商对帮助这一进展不感兴趣,所以不要指望video标签的使用方便,除非浏览器制造商采取它自己以某种方式解决问题…再次,不太可能。{/恕我直言}

Chrome将永远不会实现支持RTSPstream媒体。

至less,用铬开发人员的话来说:

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

这是一个古老的问题,但最近我必须自己做,所以我做了一些工作(除了像我这样的反应会节省我一些时间):基本上使用ffmpeg将容器更改为HLS,大部分IPCamsstreamh264和一些PCM的基本types,所以使用类似的东西:

 ffmpeg -v info -i rtsp://ip:port/h264.sdp -c:v copy -c:a copy -bufsize 1835k -pix_fmt yuv420p -flags -global_header -hls_time 10 -hls_list_size 6 -hls_wrap 10 -start_number 1 /var/www/html/test.m3u8 

然后使用HLS插件 video.js这将播放实况stream很好还有一个jsfiddle例子下的第二个链接)。

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

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

直播,低延迟 – WebRTC – Websocket

VOD和直播,高延迟 – HLS

1. WebRTC

其实WebRTC是SRTP(安全RTP协议)。 因此我们可以说video标签通过WebRTC间接支持RTP(SRTP)。

因此,要在您的Chrome,Firefox或其他HTML5浏览器上获得RTPstream,您需要一个WebRTC服务器,它将SRTPstream传送到浏览器。

2. Websocket

它基于TCP,但比HLS的延迟更低。 再次,你需要一个WebSocket服务器。

3. HLS

用于VOD的最stream行的高延迟stream媒体协议(预录video)。

使用VLC,我可以将实时RTSPstream(mpeg4)转换为OGG格式(Vorbis / Theora)的HTTPstream。 质量差,但video在Chrome 9中工作。我也testing了在WEBM(VP8)中的转码,但它似乎并没有工作(VLC有select,但我不知道现在是否真的实施。 。)

首先有一个文件应该通知我们;)

我对HTML 5video标签和rtsp(rtp)stream的观察是,它只适用于konqueror(KDE 4.4.1,Phonon-backend设置为GStreamer)。 我只有一个H.264 / AAC RTSP(RTP)stream的video(没有audio)。

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

Chrome不支持RTSPstream媒体。 WebRTC是一个重要的项目。

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

支持的浏览器:

Chrome,Firefox和Opera。

支持的移动平台:

Android和IOS

http://www.webrtc.org/