crtmpserver 流媒体服务器集群安装配置详解

red5单机还是比较不错的,但是官方网站没有文档,不知道集群怎么配置,网查找了半天,只有red5 0.8版本有集群配置。以后的版本看了一下,有集群的插件,但是不知道怎么装插件,就算装好了插件,怎么配置集群,还是不知道啊。没文档坑爹。
crtmpserver 流媒体服务器,研究学习,感觉还是不错的,下面说一下,集群配置。

一,crtmpserver下载

https://github.com/j0sh/crtmpserver

二,服务器说明

192.168.10.208 主服务器
192.168.10.202 从服务器

三,主从服务器安装crtmpserver

1,安装相关依赖包
# yum install cmake openssl openssl-devel gcc gcc-c++ make
 
2,安装crtmpserver

# unzip centosinit.zip 
# cd crtmpserver-centosinit 
# chmod +x cleanup.sh 
# sh cleanup.sh 
# cd builders/cmake 
# cmake . 
# make 

3,主服务器208配置

# vim ./crtmpserver/crtmpserver.lua 
 
{      //85行,acceptors加入,rtmp可以使用80端口。如果80有其他用处,就不要这样设置了 
     ip="0.0.0.0", 
     port=80, 
     protocol="inboundRtmp" 
}, 
 
name="proxypublish",    //256行,配置集群的地方 
    description="Application for forwarding streams to another RTMP server", 
    protocol="dynamiclinklibrary", 
    acceptors =     //相当于一个连接池 
    { 
        { 
            ip="0.0.0.0", 
            port=6665,                     //连接池的端口 
            protocol="inboundRtmp"         //添加 
            --protocol="inboundLiveFlv"    //--注释原来的 
        }, 
    }, 
    abortOnConnectError=true, 
    targetServers = 
    { 
        { 
            targetUri="rtmp://192.168.10.208/live/",       //实际rtmp服务器 
            targetStreamType="live", 
            localStreamName="test", 
            keepAlive=true, 
            emulateUserAgent="my master" 
        }, 
        { 
            targetUri="rtmp://192.168.10.202:1935/live/",  //实际的rtmp服务器 
            targetStreamType="live", 
            emulateUserAgent="My user agent", 
            localStreamName="test", 
            keepAlive=true 
        } 
    } 

注意,crtmpserver默认占用8080,8081,有的http会占用这二个端口。端口冲突的话,crtmpserver是启不来的。
4,从服务器默认配置就行了,当然你想做一特殊配置也是可以的。

四,启动主从服务器

 

# ./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua 
//出现以下内容说明启动成功了 
+-----------------------------------------------------------------------------+ 
|                                                                     Services| 
+---+---------------+-----+-------------------------+-------------------------+ 
| c |      ip       | port|   protocol stack name   |     application name    | 
+---+---------------+-----+-------------------------+-------------------------+ 
|tcp|        0.0.0.0| 1112|           inboundJsonCli|                    admin| 
+---+---------------+-----+-------------------------+-------------------------+ 
|tcp|        0.0.0.0|   80|              inboundRtmp|              appselector| 
+---+---------------+-----+-------------------------+-------------------------+ 
|tcp|        0.0.0.0| 1935|              inboundRtmp|              appselector| 
+---+---------------+-----+-------------------------+-------------------------+ 
|tcp|        0.0.0.0| 8081|             inboundRtmps|              appselector| 
+---+---------------+-----+-------------------------+-------------------------+ 
|tcp|        0.0.0.0| 8080|             inboundRtmpt|              appselector| 
+---+---------------+-----+-------------------------+-------------------------+ 
|tcp|        0.0.0.0| 6666|           inboundLiveFlv|              flvplayback| 
+---+---------------+-----+-------------------------+-------------------------+ 
|tcp|        0.0.0.0| 9999|             inboundTcpTs|              flvplayback| 
+---+---------------+-----+-------------------------+-------------------------+ 
|tcp|        0.0.0.0|  554|              inboundRtsp|              flvplayback| 
+---+---------------+-----+-------------------------+-------------------------+ 
|tcp|        0.0.0.0| 6665|              inboundRtmp|             proxypublish| 
+---+---------------+-----+-------------------------+-------------------------+ 
|tcp|        0.0.0.0| 8989|         httpEchoProtocol|            samplefactory| 
+---+---------------+-----+-------------------------+-------------------------+ 
|tcp|        0.0.0.0| 8988|             echoProtocol|            samplefactory| 
+---+---------------+-----+-------------------------+-------------------------+ 
|tcp|        0.0.0.0| 1111|    inboundHttpXmlVariant|                  vptests| 
+---+---------------+-----+-------------------------+-------------------------+ 
/root/crtmpserver-centosinit/sources/crtmpserver/src/crtmpserver.cpp:272 GO! GO! GO! (31278) 
注意,先启动从服务器,这一点很重要。

五,测试crtmpserver集群配置,以下安装在主服务器208

1,安装rpmforge

# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm 
根你的linux版本选择
2,安装ffmpeg
# yum install ffmpeg 

3,利用ffmpeg发布rtmp流

# ffmpeg -re -i "/root/test.flv" -vcodec copy -acodec copy -f flv rtmp://192.168.10.208:6665/live/test   //连接池端口 
ffmpeg version 2.2.1 Copyright (c) 2000-2014 the FFmpeg developers 
 built on Apr 13 2014 13:00:18 with gcc 4.4.6 (GCC) 20120305 (Red Hat 4.4.6-4) 
 configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared --enable-runtime-cpudetect --enable-gpl --enable-version3 --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-vdpau --disable-avisynth --enable-frei0r --enable-libopencv --enable-libdc1394 --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --disable-stripping 
 libavutil      52. 66.100 / 52. 66.100 
 libavcodec     55. 52.102 / 55. 52.102 
 libavformat    55. 33.100 / 55. 33.100 
 libavdevice    55. 10.100 / 55. 10.100 
 libavfilter     4.  2.100 /  4.  2.100 
 libswscale      2.  5.102 /  2.  5.102 
 libswresample   0. 18.100 /  0. 18.100 
 libpostproc    52.  3.100 / 52.  3.100 
Input #0, flv, from '/root/test.flv': 
 Metadata: 
 major_brand     : isom 
 minor_version   : 512 
 compatible_brands: isomiso2mp41 
 encoder         : Lavf55.33.100 
 Duration: 00:22:15.69, start: 0.000000, bitrate: 391 kb/s 
 Stream #0:0: Video: flv1, yuv420p, 320x240, 320 kb/s, 15 tbr, 1k tbn, 1k tbc 
 Stream #0:1: Audio: mp3, 22050 Hz, stereo, s16p, 0 kb/s 
rtmp server sent error 
rtmp server sent error 
Output #0, flv, to 'rtmp://192.168.10.208:6665/live/test': 
 Metadata: 
 major_brand     : isom 
 minor_version   : 512 
 compatible_brands: isomiso2mp41 
 encoder         : Lavf55.33.100 
 Stream #0:0: Video: flv1 ([2][0][0][0] / 0x0002), yuv420p, 320x240, q=2-31, 320 kb/s, 1k tbn, 1k tbc 
 Stream #0:1: Audio: mp3 ([2][0][0][0] / 0x0002), 22050 Hz, stereo, 0 kb/s 
Stream mapping: 
 Stream #0:0 -> #0:0 (copy) 
 Stream #0:1 -> #0:1 (copy) 
Press [q] to stop, [?] for help
 
frame=   23 fps= 15 q=-1.0 size=     131kB time=00:00:01.54 bitrate= 694.1kbits/s    //往rtmp通道传输数据,会不停的变化直接,直到视频结束 

4,接收rtmp流,网上工具好多,就不多说了

rtmp://192.168.10.208:6665/live/test 
rtmp://192.168.10.208/live/test 
rtmp://192.168.10.202:1935/live/test 
以上三个rtmp通道,都可以看ffmpeg发布的视频流

时间: 2024-11-01 04:31:37

crtmpserver 流媒体服务器集群安装配置详解的相关文章

深入分析redis cluster 集群安装配置详解

Redis 集群是一个提供在多个Redis间节点间共享数据的程序集.redis3.0以前,只支持主从同步的,如果主的挂了,写入就成问题了.3.0出来后就可以很好帮我们解决这个问题. 目前redis 3.0还不稳定,如果要用在生产环境中,要慎重. 一,redis服务器说明 192.168.10.219 6379  192.168.10.219 6380  192.168.10.219 6381    192.168.10.220 6382  192.168.10.220 6383  192.168

nginx环境openfire xmpp 集群安装配置详解

openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议.openfire安装和使用都非常简单,并利用Web进行管理.openfire集群,还比较容易配置的,但是没有连接池,这一缺点,我们可以用nginx来弥补. 一,服务器说明 192.168.10.235    //openfire  192.168.10.203    //openfire  192.168.10.208    //openfire    192.168.10.208    //ng

MongoDB集群分片配置详解

创建必要的文件目录 mkdir -p /usr/local/mongo/shard/s0 mkdir -p /usr/local/mongo/shard/s1 mkdir -p /usr/local/mongo/shard/s2 mkdir -p /usr/local/mongo/shard/log mongod --shardsvr --port 20000 --dbpath=/usr/local/mongo/shard/s0 --fork --logpath=/usr/local/mongo

[喵咪MQ(3)]RabbitMQ集群安装配置

[喵咪MQ(3)]RabbitMQ集群安装配置 w-blog博客 在各项生产环境使用中,容灾总是一个很重要的话题,如果单点故障会导致整个系统奔溃或者是丢失数据是不是好气好气的,领导会追着你问这是怎么了?你只能说是我们没有经验什么什么组件故障了,这个是低级玩法,高级玩法是配置好集群容灾,告诉老板死一两台机器宕机了没有事没有影响,所以我们今天就来讲讲RabbitMQ的集群模式... 附上: 喵了个咪的博客:w-blog.cn RabbitMQ官网 :http://www.rabbitmq.com/

Hadoop学习之ZooKeeper理论知识和集群安装配置

ZooKeeper集群安装配置和理论知识 1.   简介:zookeeper是Google的Chubby的一个开源实现,是hadoop的分布式协调服务 2.    Zookeeper(简称zk)包含一个简单的原语集,分布式应用程序可以给予它实现同步服务,配置维护和命名服务等 3.    Zk的设计目标 a)      简单化:通过共享体系的,命名空间进行协调,与文件系统相似,有一些数据寄存器组成,被称为Znode.Zk的数据是放在内存中的,zk可以达到高吞吐量.低延迟. Zk能用在大型.分布式的

ElasticSearch-2.0.0集群安装配置与API使用实践

ElasticSearch是基于全文搜索引擎库Lucene构建的分布式搜索引擎,我们可以直接使用ElasticSearch实现分布式搜索系统的搭建与使用,都知道,Lucene只是一个搜索框架,它提供了搜索引擎操作的基本API,如果要实现一个能够使用的搜索引擎系统,还需要自己基于Lucene的API去实现,工作量很大,而且还需要很好地掌握Lucene的底层实现原理. ElasticSearch是一个完整的分布式搜索引擎系统,它的一些基本特性包括如下: 全文检索 提供插件机制,可以共享重用插件的功能

集群安装配置Hadoop详细图解

集群安装配置Hadoop 集群节点:node4.node5.node6.node7.node8.具体架构: 操作系统为:CentOS release 5.5 (Final) 安装步骤 一.创建Hadoop用户组. 二.安装JDK.下载安装jdk.安装目录如下: 三.修改机器名,修改文件/etc/hosts.如下: 四.安装ssh服务.命令:yum install openssh-server. 五.建立ssh无密码登陆. (一)切换到hadoop用户.su – hadoop (二)创建ssh-k

Redis 对比 Memcached 并在 CentOS 下进行安装配置详解_Redis

Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,本篇文章主要介绍了Redis 对比 Memcached 并在 CentOS 下进行安装配置详解,有兴趣的可以了解一下. 了解一下 Redis Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,使用 ANSI C 编写,并提供多种语言的 API ,它几乎没有上手难度,只需要几分钟我们就能完成安装工作,并让它开始与应用程序顺畅协作.换句话来说,只需投入一小部分时间与精力,大家就能获得立竿

Linux集群服务LVS概述与安装配置详解

LVS项目从成立到现在为止,受到不少关注,LVS集群系统已被应用于很多重负载的站点.安装LVS和配置LVS的工作比较繁杂,读者在配置的过程中需要非常细心和耐心.本文对LVS的应用场景进行了简单介绍,并着重介绍LVS的安装和配置操作. (http://os.51cto.com/art/201011/233146.htm) LVS项目从成立到现在为止,受到不少关注,LVS集群系统已被应用于很多重负载的站点.到目前为止,该系统已在美.英.德.澳等国的几十个站点上正式使用.目前,一些大型LVS应用实例如