如何使用HTML5读取Red5(RTMFP)流?
答案 0 :(得分:20)
Red5支持不同类型的流*,所以我不知道你的意思是哪种流式传输:
*来源:Red5 on Google Code。
您可能希望使用HTML5 Video Tag和/或HTML5 Audio Tag来“播放”该流。因此,您需要进行一些转换。
新技术,很多浏览器,还没有支持通用编解码器。
请参阅浏览器+编解码器,它支持*:
FireFox 3.6+
Safari 5+
Chrome 6
Opera 10.5+
Internet Explorer 9 (beta)
*来源:Native Audio in the browser。
目前正在讨论HTML5 Video Codec,Ogg Theora和H.264之间的问题。因此,转换为其中一种格式。我推荐使用H.264,因为看起来Red5将实现H.264支持in the future。
与音频和视频一样..新技术,很多浏览器,还没有通用编解码器支持。请参阅以下列表:HTML5 Video on Wikipedia。
检查视频和音频标签支持的最简单方法是使用脚本动态创建一个或两个,并检查函数是否存在:
var hasVideo = !!(document.createElement('video').canPlayType);
这个简单的代码行将动态创建一个视频元素并检查canPlayType()
函数是否存在。通过使用!! operator
,结果将转换为布尔值,指示是否可以创建视频对象。
您可以使用Flash后备服务提供2个流:
<video src="video.ogg">
<object data="videoplayer.swf" type="application/x-shockwave-flash">
<param name="movie" value="video.swf"/>
</object>
</video>
默认使用视频标签,如果不支持,浏览器将使用flashplayer。
我现在看到Red5 supports H.264 (Live Stream Publishing)。请在此处阅读HTML5 video tag with the H.264 codec
的使用方法您还可以查看:Adobe's Video Player Widget。
答案 1 :(得分:3)
一个简短的回答:你做不到。浏览器不支持RTMP(RTMFP),RTP或UDP上的流。您的流必须通过HTTP发送才能访问(实际上您必须模拟服务器上的静态文件)。
WebM 也值得一提。 2010年5月,谷歌宣布了针对HTML5副作用的免版税编解码器。截至目前,替代浏览器(Mozilla,Opera,Chrome)的最新版本具有播放它的能力。只有那些为H.264投入了大量资金的大人物抵抗。
现在有几家媒体服务器支持WebM。我想第一个是Flumotion来实现它。我还有自己的GPL软件,用于实时流媒体WebM stream.m。这是一个非常早期的版本,但如果你想尝试一下,我不会阻止任何人。 :)
答案 2 :(得分:1)
RTMFP 和 HTML5(WebRTC或Websocket)协议
因此,您可以将 RTMFP 流发布到服务器,并使用Chrome(WebRTC),Firefox(WebRTC)或iOS Safari浏览器(Websocket)播放此流。
Red5 不支持 RTMFP 。
RTMFP是一种点对点设计的协议,但服务器可以像RTMFP对等一样使用,因此它就像RTMP一样简单的客户端 - 服务器连接Flash-Server。