如何使用 HTML5 读取 Red5 (RTMFP) 流?
3 回答
Red5支持不同类型的流媒体*,所以我不知道你指的是哪种流媒体:
- 流媒体视频(FLV、F4V、MP4)
- 流式音频(MP3、F4A、M4A)
- 录制客户端流(仅限 FLV)
*来源:Google Code 上的 Red5。
您可能希望使用HTML5 视频标签和/或HTML5 音频标签来“播放”流。因此,您需要进行一些转换。
音频流
新技术,很多浏览器,还没有通用编解码器支持。
请参阅它支持的浏览器 + 编解码器*:
FireFox 3.6+
- 奥格·沃尔比斯
- 波形
Safari 5+
- MP3
- WAV
Chrome 6
- 奥格·沃尔比斯
- MP3
Opera 10.5+
- 奥格·沃尔比斯
- WAV
Internet Explorer 9 (beta)
- MP3
- WAV
*来源:浏览器中的原生音频。
视频流
目前在Ogg Theora和H.264之间正在讨论关于HTML5 Video Codec的讨论。因此,请转换为其中一种格式。我会推荐 H.264,因为看起来 Red5 将来会实现 H.264支持。
与音频和视频一样。新技术,许多浏览器,还没有通用编解码器支持。参见列表:维基百科上的 HTML5 视频。
转换后
检查是否支持视频和音频标签的最简单方法是使用脚本动态创建一个或两个并检查函数是否存在:
var hasVideo = !!(document.createElement('video').canPlayType);
这个简单的代码行将动态创建一个视频元素并检查该canPlayType()
函数是否存在。通过使用!! operator
,将结果转换为布尔值,该值指示是否可以创建视频对象。
或者
您可以使用 Flash Fallback 提供 2 个流:
<video src="video.ogg">
<object data="videoplayer.swf" type="application/x-shockwave-flash">
<param name="movie" value="video.swf"/>
</object>
</video>
默认使用 video 标签,如果不支持,浏览器将使用 flashplayer。
编辑:
我现在看到Red5 支持 H.264 (Live Stream Publishing)。在此处阅读如何将HTML5 视频标签与 H.264 编解码器一起使用
您可能还想看看:Adobe 的视频播放器小工具。
一个简短的回答:你不能。浏览器将不支持 RTMP (RTMFP)、RTP 或 UDP 流。您的流必须通过 HTTP 发送才能访问(实际上您必须在服务器上模拟一个静态文件)。
WebM也值得多说几句。2010 年 5 月,Google 宣布了一种用于 HTML5 副目的的免版税编解码器。截至目前,最新版本的替代浏览器(Mozilla、Opera、Chrome)已经能够播放它。只有在 H.264 上投入大量资金的大公司才会抵制。
现在有几个媒体服务器支持 WebM。我想第一个是Flumotion来实现它。我也有自己的 GPL 软件,用于直播 WebM,称为stream.m。这是一个非常早的版本,但如果你想尝试一下,我不会阻止任何人。:)
WCS4支持RTMFP和HTML5(WebRTC 或 Websocket)协议
因此,您可以将RTMFP流发布到服务器并使用 Chrome(WebRTC)、Firefox(WebRTC) 或 iOS Safari 浏览器 (Websocket) 播放此流。
Red5不支持RTMFP。
RTMFP 是一种点对点设计的协议,但是服务器可以像 RTMFP 对等体一样使用,因此它会像 RTMP 一样是简单的客户端-服务器连接 Flash-Server。