前言

      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流媒体服务器的介绍与搭建的更多相关文章

  1. [FMS]FMS流媒体服务器onStatus介绍说明

    在FlashCom中的Camera, Microphone, LocalConnection, NetConnection,NetStream和 SharedObject对象都提供了事件响应,onst ...

  2. Windows环境搭建Red5流媒体服务器指南(转)

    Windows环境搭建Red5流媒体服务器指南 Windows环境搭建Red5流媒体服务器指南 测试环境:Windows 7 一.   下载安装程序 red5-server 下载地址 https:// ...

  3. 搭建直播服务器,使用nginx与nginx-rtmp-module搭建流媒体服务器;

    现在,一起学习一下如何自己搭建一个流媒体服务器吧! 本次搭建流媒体使用的环境是centos 7.0+nginx: 让我们一起开始奇妙的流媒体之旅吧! 1.下载nginx-rtmp-module: ng ...

  4. nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器[转]

    转 :http://redstarofsleep.iteye.com/blog/2123752 Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个n ...

  5. nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器

    参照网址: [1]http://blog.csdn.net/redstarofsleep/article/details/45092147 [2]HLS介绍:http://www.cnblogs.co ...

  6. 基于 Red5 的流媒体服务器的搭建和应用

    http://www.ibm.com/developerworks/cn/opensource/os-cn-Red5/ Red5 是一个采用 Java 开发的开源免费 Flash 流媒体服务器.Red ...

  7. Ubuntu下使用nginx和nginx-rtmp-module搭建流媒体服务器的正确姿势

    之前在使用nginx和nginx-rtmp-module搭建流媒体服务器的时候遇到一个很尴尬的问题,就是在把nginx-rtmp-module模块添加到nginx中去的时候,我最开始采取的做法是先卸载 ...

  8. nginx搭建rtmp协议流媒体服务器总结

    最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx ...

  9. 流媒体技术学习笔记之(一)nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器

    参照网址: [1]http://blog.csdn.net/redstarofsleep/article/details/45092147 [2]HLS介绍:http://www.cnblogs.co ...

随机推荐

  1. 【HDOJ】【3709】Balanced Bumber

    数位DP 题解:http://www.cnblogs.com/algorithms/archive/2012/09/02/2667637.html dfs的地方没太看懂……(也就那里是重点吧喂!)挖个 ...

  2. uva 10771

    思路题 K的人数只能以2减少 #include <cstdio> #include <cstdlib> #include <cmath> #include < ...

  3. 15个实用的jQuery技术

    JQuery是目前最流行的JavaScript框架之一,可以显著的提高用户与网络应用的交互. 今天为大家介绍50有用的jQuery技术: 1.移动Box 2.滑动框和标题 3.数据的可视化:使用HTM ...

  4. 如果使用得当,MySQL 也可以化身 NoSQL

    [编者按]随着互联网和移动互联网的发展,各个机构都需要支撑远超过以往的数据.而在这个需求的刺激下,IT 领域出现了大量数据处理技术,其中之一就是 NoSQL .灵活的数据类型,高效的处理能力,让 No ...

  5. Class Object

    java.lang Class Object java.lang.Object public class Object Class Object is the root of the class hi ...

  6. **PHP随机数算法

    <?php $tmp = range(1,30);print_r(array_rand($tmp,10));?> 输出: Array( [0] => 6 [1] => 8 [2 ...

  7. oracle的全文索引

    1.查看oracle的字符集 SQL> select userenv('language') from dual; USERENV('LANGUAGE') ------------------- ...

  8. 如何在Mininet中修改host的IP地址

    how to update virtual host's IP in mininet? I got it! do like this: mininet> py h1.setIP('10.0.0. ...

  9. 李洪强iOS开发之【零基础学习iOS开发】【01-前言】02-准备

    在上一讲中,介绍了什么是iOS开发.说简单一点,iOS开发,就是开发运行在iPhone或者iPad上的软件.这么一说完,应该有很多人就会产生一些疑惑,比如学习iOS开发是不是一定要买iPhone?需不 ...

  10. Minimum_Window_Substring两种方法求解

    题目描述: Given a string S and a string T, find the minimum window in S which will contain all the chara ...