首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

crtmpserver流媒体服务器的引见与搭建

2013-03-04 
crtmpserver流媒体服务器的介绍与搭建前言Adobe的FMS(Flash Media Server)是很好用。但对应着分级授权的是m

crtmpserver流媒体服务器的介绍与搭建
前言      Adobe的FMS(Flash Media Server)是很好用。但对应着分级授权的是money和有限功能开放。商业的东西既然用不起,也阻碍了我们的技术进步,那就只能求助于开源社区了。而crtmpserver就是FMS的替代者之一
1. crtmpserver简介    crtmpserver的功能总来说:

  • 支持推送给它的rtmp流的接收与播放器请求的分发;
  • rtmp流媒体服务器树状网络集群的构建;
  • 支持iPhone,Android。

        下面是官网首页的功能与应用介绍(http://www.rtmpd.com/)

        crtmpserver it is a high performance streaming server able to stream (live or recorded) in the following technologies:

    • To and from Flash (RTMP,RTMPE, RTMPS, RTMPT, RTMPTE)
    • To and from embedded devices: iPhone, Android
    • From surveillance cameras
    • IP-TV using MPEG-TS and RTSP/RTCP/RTP protocols

          Also, crtmpserver can be used as a high performance rendes-vous server. For example, it enables you to do:

      • Audio/Video conferencing
      • Online gaming
      • Online collaboration
      • Simple/complex chat applications2. crtmpserver流媒体服务器的搭建(linux平台)        它的编译与build环境要求先安装一些linux工具2.1 cmake的安装    下载最新的cmake(http://www.cmake.org/)。
      • #tar -zxvf cmake-2.8.7.tar.gz
      • #cd cmake-2.8.7
      • #./bootstrap
      • #gmake
      • #make install2.2 openssl的安装    下载openssl-0.9.8版(crtmpserver暂只支持这个版本,我用的是openssl-0.9.8t。http://www.openssl.org/)
      • #tar -zxvf openssl-0.9.8t.tar.gz
      • #cd openssl-0.9.8t
      • #./Configure
      • #make .
      • #make install2.3 crtmpserver的编译与安装
      • #svn co --username anonymous --password "" https://svn.rtmpd.com/crtmpserver/branches/1.0 crtmpserver
      • #cd crtmpserver
      • #sh ./cleanup.sh
      • #cd builders/cmake
      • #cmake .
      • #make
      • #./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua   NOTE:   A. 如果make成功,       最后一行命令“#./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua”       意思是:使用“./crtmpserver/crtmpserver.lua”为配置脚本,启动“crtmpserver"服务。   B. 最后一行命令的目录是在"builders/cmake"下。
        2.4 测试流的接收与分发    最后一行命令执行后,可以看到默认脚本配置下启动的服务和对应的端口。如“RTMP”协议对应的是“1935”端口。    如下所示:--- --------------- ----- ------------------------- -------------------------|tcp|       0.0.0.0 |1935|       inboundRtmp   |            appselector|--- --------------- ----- ------------------------- -------------------------推送:         可以使用Adobe 的FMLE(Flash Media Live Encoder)给这个服务器推送rtmp流。成功后会有相应的log信息提示。     也可以使用ffmpeg给这个服务器推送rtmp流。成功后会有相应的log信息提示。但是请注意,ffmpeg推送rtmp流给它一定要使用"librtmp"才能成功。使用ffmpeg自带的rtmp推送会导致失败。原因应该是ffmpeg自带的rtmp程序不完整,解析不了第二次握手时服务发送来的包信息。观看:     推送成功后,用户端就可以用flash播放器或能播放rtmp流的播放器(如http://flv-player.us/index_mdv.php)看你推送的节目啦。    也可以使用像rtmpdump的软件将rtmp流录成文件。  3. 简单的配置修改    有时服务器会对某些端口做限制,这时就需要自己指定端口,如"80"端口。这个需求可以通过修改它的配置脚本“crtmpserver/crtmpserver.lua”来实现。     如要添加“80”端口的"rtmp"服务,可以给“crtmpserver/crtmpserver.lua”添加如下代码。(包含“port=80"的第一层大括号的代码是要添加的)
        1. default=true, 
        2. acceptors = 

        3.   { 
        4.     ip="0.0.0.0", 
        5.     port=80, 
        6.     protocol="inboundRtmp" 
        7.    }, 
        8.    { 
        9.      ip="0.0.0.0", 
        10.      port=1935, 
        11.      protocol="inboundRtmp" 
        12.    },
        13.    ...
        14.   }
        15. }
          重启服务就可以看到端口生效,就可以从“80“接收rtmp流啦。   更多的配置修改可以去看官方的说明文档。

热点排行