专栏首页流媒体人生crtmpserver流媒体服务器的介绍与搭建

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 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 ./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. {
  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流啦。

更多的配置修改可以去看官方的说明文档。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 代理存根DLL的创建

    源自于一位网友的提问 http://topic.csdn.net/u/20091101/20/10b3651a-7494-44fb-9861-fb2d3c...

    雪影
  • Yate教程1

    From:http://yate.null.ro/pmwiki/index.php?n=Main.CppTutorial1

    雪影
  • ffmpeg控制台上不能输出信息的解决办法

    -mwindows是windows窗口APP所需的参数,而要在控制台下输出信息必须是windows控制台程序。

    雪影
  • Ubuntu编译安装crtmp-server

    gongluck
  • 如何规范有效的进行风险评估?

    信息安全是网络发展和信息化进程的产物,近几年,无论是国家层面,还是企业本身,都对信息安全愈发的重视。风险管理的理念也逐步被引入到信息安全领域,并迅速得到较为广泛...

    FB客服
  • Fetch添加超时和拦截器功能

    Fetch API 提供了一个 JavaScript接口,用于访问和操纵HTTP管道的部分,例如请求和响应。它还提供了一个全局 fetch()方法,该方法提供了...

    治电小白菜
  • 区块链技术将在2018年开辟新领域

    区块链技术的不可改变性,以及它大规模地维护不断增加的信息历史记录的能力,吸引了人们对它的高度关注,并在2017年成为头条新闻。显然,即将上市的公司和成熟的公司终...

    企鹅号小编
  • 区块链技术或将迎来突破性进展,以特币未来生机勃勃

    数字货币的发展已经进行到一个非常关键的阶段,其背后的区块链等技术也得到了更多的关注与讨论。继比特币之后,以特币的“稀缺性”,去中心化,区块链技术,共识主动性参与...

    企鹅号小编
  • 1分钟链圈 | 比特币价将回升至2万美元-华尔街分析师;冰岛首推比特币ATM;菜鸟天猫利用区块链溯源海淘商品

    区块链大本营
  • 区块链的“善”与“恶”:炒币不等于区块链

    镁客网

扫码关注云+社区

领取腾讯云代金券