1 开发意义
使用RTMP技术的流媒体系统有一个非常明显的特点:使用 Flash Player 作为播放器客户端,而Flash Player 现在已经安装在了全世界将近99%的PC上,因此一般情况下收看RTMP流媒体系统的视音频是不需要安装插件的。用户只需要打开网页,就可以直接收看流媒体,十分方便。
目前使用RTMP技术的电视台有如下几个:
香港电视台直播(rtmp://live.hkstv.hk.lxdns.com/live/hks)
RTMP直播协议,是Adobe公司推出的以flash播放器为客户端的实时直播流协议,是一种应用非常广泛的通信协议。而flash直播,也是到目前为止,web页面上最成熟的直播技术。不过,因为flash主要是嵌入到web页面中,因此,RTMP直播,通常也就局限在B/S形式的直播应用。
2 架构分析
使用adobe flash media live encoder类似程序将音视频流打包(类似于FLV格式),发给RTMP服务器(RTMP服务器有商用的,也有开源的),客户端使用flash player或其他工具,基于RTMP协议从RTMP服务器取流,如下图:
3 librtmp
rtmpdump 是一个用来处理 RTMP 流媒体的工具包,支持 rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps:// 等。
下载rtmpdump的代码,你会发现,它是一个地道的linux项目,除了一个简单的Makefile,其他什么都没有。好像librtmp不依赖于系统。
a) 将librtmp的代码导入工程,把openssl、zlib的头文件和librtmp放在一起,把编译好的openssl和zlib的静态库放在一起;
b) 在工程设置中,添加之前编译好的openssl和zlib的库,编译即可。
4 crtmpserver
crtmpserver又称rtmpd是Evostream Media Server(www.evostream.com)的社区版本采用GPLV3授权
其主要作用为一个高性能的RTMP流媒体服务器,可以实现直播与点播功能多终端支持功能,在特定情况下是FMS的良好替代品。
支持RTMP的一堆协议( RTMP,RTMPE, RTMPS, RTMPT, RTMPTE )。
支持iPhone,Android。