文档章节

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

f
 ffredy
发布于 2015/07/12 15:06
字数 918
阅读 363
收藏 1

前言

      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. #./config --prefix=/usr/local/ssl shared

  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安装到其他目录下,需要修改编译的过程

cmake -DCMAKE_BUILD_TYPE=Release -DCRTMPSERVER_INSTALL_PREFIX=<install-dir>
make
make install

我把它安装到/usr/local/rtmp下,下面有4个子目录etc,lib,man,sbin

安装过程不完善,需要到源码的/builders/cmake/applications/appselector目录下把证书拷走
cp server.key server.crt /usr/local/rtmp/lib/crtmpserver/applications/appselector/

 

修改配置文件
cd /usr/local/rtmp/etc
cp crtmpserver.lua.sample crtmpserver.lua
vi crtmpserver.lua
把applications中的rootDirectory改成绝对路径
rootDirectory="/usr/local/rtmp/lib/crtmpserver/applications"

 

启动




© 著作权归作者所有

f
粉丝 6
博文 48
码字总数 37775
作品 0
浦东
私信 提问
crtmpserver分析与组网

简介: crtmpserver是一款不错的开源流媒体服务器,用c++语言编写,跨平台。 官方介绍crtmpserver不仅支持adobe rtmp协议,还支持其它常用的协议: . To and from Flash (RTMP,RTMPE, RTMPS, R...

ffredy
2015/07/13
0
0
crtmpserver的安装及使用

crtmpserver又称rtmpd是Evostream Media Server(www.evostream.com)的社区版本采用GPLV3授权。其主要作用为一个高性能的RTMP流媒体服务器,可以实现直播与点播功能多终端支持功能,在特定情...

张旭0512
2014/12/17
0
1
RTMP流媒体服务器--crtmpserver

crtmpserver又称rtmpd是Evostream Media Server(www.evostream.com)的社区版本采用GPLV3授权 其主要作用为一个高性能的RTMP流媒体服务器,可以实现直播与点播功能多终端支持功能,在特定情...

匿名
2013/01/18
20.1K
1
可能是目前市面上唯一能够支持全平台的RTMP推流组件:Windows、Linux、Android、iOS、ARM

EasyRTMP是什么? EasyRTMP是一套RTMP直播推送功能组件,内部集成了包括:基本RTMP协议、断线重连、异步推送、环形缓冲区、推送网络拥塞自动丢帧、缓冲区关键帧检索、事件回调(断线、音视频数...

xiejiashu
2018/01/05
0
0
CentOS7下安装配置流媒体服务器Red5

背景:因工作需要,要研究一些流媒体服务器相关的技术,主要是为了搭建直播所用的服务器,本文是基于CentOS7搭建Red5流媒体服务器,利用OBS推流工具可实现简单的直播、观看功能。 本文主要介...

botaozhao
2017/07/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Webpack打包优化:使用外链与拆包模式

一、发现问题 这是一个基于 vue-cli 的管理后台项目,由于依赖较多,打包结果如下 二、查找原因 为什么 vendor 体积这么大? 引用的库太多时,vendor的体积会很大,借助 Webpack 的分析工具,...

AI考拉
44分钟前
2
0
MSSQL-最佳实践-Always Encrypted

author: 风移 摘要 在SQL Server安全系列专题月报分享中,往期我们已经陆续分享了:如何使用对称密钥实现SQL Server列加密技术、使用非对称密钥实现SQL Server列加密、使用混合密钥实现SQL S...

阿里云云栖社区
45分钟前
9
0
ES 集群上,业务单点如何优化升级?

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! ES 基础 ES 集群 ES 集群上业务优化 一、ES 基础 ES 的安装下载,网上一大片,我这...

泥瓦匠BYSocket
今天
8
0
input accept属性限制文件上传格式

上传文件的类型;具体做法如下所示: 注意:accept属性可以限制上传格式,其有兼容性如下 《1》上传.csv格式的 <input text="file" accept=".csv" /> 《2》上传.xls格式 <input text="file"......

Jack088
今天
3
0
使用scp命令在多个Linux系统间进行文件复制

一,什么是scp scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。scp命令可以在linux服务器之间复制文件和目录.scp使用ssh安全协议传输数据,具有和ssh一样的验证机制,从而安全的远...

老孟的Linux私房菜
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部