码迷,mamicode.com
首页 > 其他好文 > 详细

crtmpserver流媒体服务器的介绍与搭建

时间:2015-07-13 06:45:08      阅读:338      评论:0      收藏:0      [点我收藏+]

标签:

前言

      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/)。

  1. #tar -zxvf cmake-2.8.7.tar.gz

  2. #cd cmake-2.8.7

  3. #./bootstrap

  4. #gmake

  5. #make install

2.2 openssl的安装

    下载openssl-0.9.8版(crtmpserver暂只支持这个版本,我用的是openssl-0.9.8t。http://www.openssl.org/

  1. #tar -zxvf openssl-0.9.8t.tar.gz

  2. #cd openssl-0.9.8t

  3. #./Configure

  4. #make .

  5. #make install

2.3 crtmpserver的编译与安装

  1. #svn co --username anonymous--password "" https://svn.rtmpd.com/crtmpserver/branches/1.0 crtmpserver

  2. #cd crtmpserver

  3. #sh ./cleanup.sh

  4. #cd builders/cmake

  5. #cmake .

  6. #make

  7. #./crtmpserver/crtmpserver./crtmpserver/crtmpserver.lua

   NOTE:

   A. 如果make成功,最后一行命令是以“./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.   {

  5.     ip="0.0.0.0",

  6.     port=80,

  7.     protocol="inboundRtmp"

  8.    },

  9.    {

  10.      ip="0.0.0.0",

  11.      port=1935,

  12.      protocol="inboundRtmp"

  13.    },

  14.    ...

  15.   }

  16. }

  重启服务就可以看到端口生效,就可以从“80“接收rtmp流啦。


crtmpserver流媒体服务器的介绍与搭建

标签:

原文地址:http://my.oschina.net/u/1983790/blog/477554

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!