文档章节

crtmpserver分析与组网

f
 ffredy
发布于 2015/07/13 16:06
字数 503
阅读 158
收藏 6

简介:
crtmpserver是一款不错的开源流媒体服务器,用c++语言编写,跨平台。
官方介绍crtmpserver不仅支持adobe rtmp协议,还支持其它常用的协议:
. To and from Flash (RTMP,RTMPE, RTMPS, RTMPT, RTMPTE)
. To and from embedded devices: Android, IP cameras, Hardware encoders
. From iOS devices
. IP-TV using MPEG-TS and RTSP/RTCP/RTP protocols

一、结构图
crtmpserver从生产环境使用的情况来看,每天都在用,从几十M到上百M的流量不等,运行几个月无宕机,
CPU, 内存各方面性能指标稳定,还是比较满意的。
当然官方还提示有改进的商业版的版本“EvoStream”,如果不差钱,可以买商业版,也算支持作者辛苦的付出。
日常使用,开源版本已经足够。

下图1是我整理的画的crtmpserver结构图,按层次划分。分为以下几大部分:
. 网络层: 操作系统的网络模型相关, Linux平台epoll, FreeBSD平台kqueue, Windows平台select
. 协议层: RTMP,SIP SDP,HTTP,TS, RTP等协议的处理
. 媒体层: 处理媒体的codec, 如mp3, mp4, flv, aac H.264等
. 应用层: 一系列应用,如admin, http/https, liveflv, dns等,
我们也可以扩展自己的协议,如图中应用层红色模块部分所示:


二、组网
crtmpserver还支持简单的负载集群,只需要把配置文件中配置主从关系,
推到主上的媒体流自然从上面也有,Viewer可以分散开从从服务器上拉媒体流。
如下图所示:

具体配置示例如下:
修改主服务器的crtmpserver.lua
    {
      name="proxypublish",
      description="Application for forwarding streams to another RTMP server",
      protocol="dynamiclinklibrary",
      acceptors =
      {
        {
          ip="0.0.0.0",
          port=6665,                             -- 主服务器接收RTMP流的端口
          --protocol="inboundLiveFlv"
          protocol="inboundRtmp"
        },
      },
      abortOnConnectError=true,
      targetServers =
      {
        {
          targetUri="rtmp://192.168.1.115/live",   -- 从服务器的URL
          targetStreamType="live", -- (live, record or append)

          targetStreamName="stream1", 

          localStreamName="proxytest",            -- 推送到从服务器的流
          keepAlive=true
        },
      },
    },

启动主,多服务器;这样,推送到主服务器的流“proxytest",在从服务器上也能观看了;

© 著作权归作者所有

f
粉丝 6
博文 48
码字总数 37775
作品 0
浦东
私信 提问
crtmpserver的安装及使用

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

张旭0512
2014/12/17
0
1
crtmpserver流媒体服务器的介绍与搭建

前言 Adobe的FMS(Flash Media Server)是很好用。但对应着分级授权的是money和有限功能开放。商业的东西既然用不起,也阻碍了我们的技术进步,那就只能求助于开源社区了。而crtmpserver就是F...

ffredy
2015/07/12
0
0
RTMP流媒体服务器--crtmpserver

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

匿名
2013/01/18
20.1K
1
exchange 2010 server内网邮箱突然不能收发外网邮件的问题分析解决办法

环境是,域控+exchange2010server+edge边缘服务器的邮件系统。 故障现象:某个内网邮箱以前可以收发外网邮件,现在突然不能收发外网邮件了。 故障分析:分析最近对服务器做了那些操作。 解决...

wangbing83
2015/07/03
0
0
组软网cojoinsoft.com注册送话费活动(线上活动)

组软网 cojoinsoft.com 是一家真正意义上的软件智能共享开发网站,在这里不仅仅是程序员可以共享他们成功执行的代码或功能模块,而且行业专家可以在需求分析方面共享他们的行业经验、设计师可...

北京瑞富恩杰科技公司
2018/05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
3
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
3
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
3
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部