zoukankan      html  css  js  c++  java
  • crtmpserver流媒体服务器的介绍与搭建

    http://blog.chinaunix.net/uid-26000296-id-3085921.html


    crtmpserver流媒体服务器的介绍与搭建2012-02-29 11:28:31

    分类: 云计算

    前言
          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 applications

    2. 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 install

    2.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 install

    2.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"的第一层大括号的代码是要添加的)

    default=true,

    acceptors =

    {

      {

        ip="0.0.0.0",

        port=80,

        protocol="inboundRtmp"

       },

       {

         ip="0.0.0.0",

         port=1935,

         protocol="inboundRtmp"

       },

       ...

      }

    }

      重启服务就可以看到端口生效,就可以从“80“接收rtmp流啦。 
      更多的配置修改可以去看官方的说明文档。


  • 相关阅读:
    Java 几个权限关键字
    Java变量的定义
    Hibernate反射DAO模式
    BroadcastReceiver与Notification的综合应用自定义Action的调用方式
    SEO优化技术之关键字
    中软国际助力四所高校建设国家级大学生校外实践教育基地
    讲师团队的培养
    IT与学习
    程序员,你的粮草何在?
    如何更好的学好Linux操作系统
  • 原文地址:https://www.cnblogs.com/mull/p/4477842.html
Copyright © 2011-2022 走看看