crtmpserver分析与组网

转自:http://blog.chinaunix.net/uid-26000296-id-4273860.html

简介:
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)
          localStreamName="proxytest",            -- 推送到从服务器的流
          keepAlive=true
        },
      },
    },

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

时间: 2024-10-01 06:53:58

crtmpserver分析与组网的相关文章

Linux SNAT/DNAT设置

背景及原理分析 现有组网 外网(即公司大网):10.0.0.0/8 内网(即实验室网络):108.28.194.0/24 网络改造 打通内网和外网有以下几种方法: 内网主机直接连接到外网:网络简单,但改造成本太大 VPN:每台外网主机访问内网时都需要设置VPN NAT:仅需内网增加网关主机同时连接内外网即可,其他主机无需修改. 本文采用NAT的方案:用一台具备多网卡的Linux服务器作为内网网关,本次实践采用SBCX服务器,其网络配置如下: 内网网卡为eth3,地址为108.28.194.1/2

crtmpserver 基本流程分析

近期在研究crtmpserver,这里记录下学习过程,首先我们先分析下基本流程. 1.初始化流程 InitNetworking---初始化网络 Initialize Logger::Init()---初始化日志 lowerCase(extension) == "lua"---载入.lua后缀配置文件 LoadLuaFile Normalize NormalizeLogAppenders 初始化日志配置 NormalizeApplications 初始化监听配置 gRs.pConfigF

crtmpserver组网部署方案

转自:http://blog.chinaunix.net/uid-26000296-id-4273867.html 一.简介 流媒体网站的服务器主要分为两个部分:流服务 与 web服务.流服务器使用常crtmpserver作为原型,为主播提供推流服务,为用户提供拉流服务.流服务分为源管理节点(SM),源节点(SP)以及边缘节点(EP).三种类型的节点为层级关系. 一般主播通过dns获取源节点的ip,向源服务器推流.源服务器收到主播流之后,向源管理上报该主播的流信息(每个主播有唯一的id号).用户

BadVPN详解之--组网原理剖析

这可能是第一篇关于BadVPN原理的中文介绍,所以我恪守职责,希望能将BadVPN的原理阐述清楚,而不仅仅是为了欺世盗名取天下之先. 序:格尔上市 这一段插在这里有点突兀,与BadVPN无关,只是我的一点实感,忽略即可.       明天小小要去厦门演出,今天是什么日子?是小小准备且出发的日子.但是同样在今天,也就是2017年4月21日(写完本文时估计已经到了22日...),上海格尔软件股份有限公司成功上市了.也许你不知道这个公司,确实这公司的业务是很小众,不像BAT布局那般宏大,但这并不意味着

转载:校园网接入认证技术对比与分析

原文作者: 沙捷 费青松 王雁 作者单位:首都体育学院 信息网络中心 北京市海淀区北三环西路 11号 100088 1 概述 Internet网络是一个自助网络,免费使用,一个用户终端配置IP地址即可接入网络.IP网络规模的扩大使得管理问题凸现,而不管是运营商的IP城域网还是校园网都有运营收费的需求,但是 在校园网中引入用户认证技术,有两个目的,一是可以有效的识别上网用户身份,第二是便于对用户的接入权限.业务权限.用户行为等进行有效的控制和管理,包括提供灵活的计费手段.基于IP地址的用户管理显然

无线传感器网络(WSN)在各个领域的应用分析

科技发展的脚步越来越快,人类已经置身于信息时代.而作为信息获取最重要和最基本的技术--传感器技术,也得到了极大的发展.传感器信息获取技术已 经从过去的单一化渐渐向集成化.微型化和网络化方向发展,并将会带来一场信息革命. 传感器节点可以连续不断地进行数据采集.事件检测.事件标识.位置监测和节点控制,传感器节点的这些特性和无线连接方式使得无线传感器网络的应用前景非常广阔,几乎涉及到社会经济活动中的各个领域. (1)军事领域的应用 在军事领域,由于WSN具有密集型.随机分布的特点,使其非常适合应用于恶

2015年我国互联网行业概况及现状分析-转发

互联网是近年来继报纸.广播.电视后新生的另一种媒体.随着社会的发展,电脑在家庭中也越来越普及了.互联网的功能也越来越广泛了.从最初的技术领域应用发展到今天的娱乐休闲应用.网络本身就具有比传统媒体来得更全面的优势.2015年我国互联网行业概况及现状分析如下. 互联网行业概况 1994年4月20日,通过一条64K的国际专线,全功能接入国际互联网,中国互联网时代从此开启.2011-2013年中国网民规模继续增大,互联网市场研究报告数据显示:2011年中国网民规模突破5亿,达到5.13亿,2013年中国

cc2530-----串口透明传输分析

Zigbee协议栈学习之串口透明传输实验(SerialApp)流程分析   第一个功能:协调器的组网,终端设备和路由设备发现网络以及加入网络 //第一步:Z-Stack 由 main()函数开始执行,main()函数共做了 2 件事:一是系统初始化,另外一件是开始执行轮转查询式操作系统 int main( void ) { ....... // Initialize the operating system osal_init_system(); //第二步,操作系统初始化 ...... osa

物联网分析以及总结

物联概念 物联网的概念基于互联网,很多人理解物联网是物和物(Machine to Machine,M2M)的关联,这其实只是物联网作为感知层的解释(物联网分为三个层次,感知层是三层中最终端的一层,这一点下文将会做介绍).互联网的本质是资源互联,那么对于基于互联网的物联网而言,他的本质也是资源互联. 物联网的应用大致包括两部分内容:控制,对于需要现场人工参与控制的场景,可以通过终端进行远程控制,比如海尔智能空调,实现了通过手机终端对空调的远程控制:数据收集,比如能源领域的物联网应用,就是通过在能源