CRtmpServer分析与应用

官方地址:http://www.rtmpd.com/

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分析与应用的更多相关文章

  1. crtmpserver 基本流程分析

    近期在研究crtmpserver,这里记录下学习过程,首先我们先分析下基本流程. 1.初始化流程 InitNetworking---初始化网络 Initialize Logger::Init()--- ...

  2. crtmpserver系列(二):搭建简易流媒体直播系统

    crtmpserver简介 我们在第一章的时候已经简要说明了crtmpserver,crtmpserver是一个由C++语言编写的开源的RTMP流媒体服务器,与其对应的商业产品自然是Adobe公司的F ...

  3. crtmpserver配置文件详解

    Configuration file配置文件 The configuration file is actually a lua script which must contain an object ...

  4. CrtmpServer支持Android与IOS进行RTMP直播遇到的_checkbw问题

    在进行移动端视频直播项目时遇到的问题.手机端在推的流时的是没问题的,主要如今是IOS和安卓连接CRtmpServer后进行播放时checkBW过不了,出现异常:NetConnection.Call.F ...

  5. alias导致virtualenv异常的分析和解法

    title: alias导致virtualenv异常的分析和解法 toc: true comments: true date: 2016-06-27 23:40:56 tags: [OS X, ZSH ...

  6. 火焰图分析openresty性能瓶颈

    注:本文操作基于CentOS 系统 准备工作 用wget从https://sourceware.org/systemtap/ftp/releases/下载最新版的systemtap.tar.gz压缩包 ...

  7. 一起来玩echarts系列(一)------箱线图的分析与绘制

    一.箱线图 Box-plot 箱线图一般被用作显示数据分散情况.具体是计算一组数据的中位数.25%分位数.75%分位数.上边界.下边界,来将数据从大到小排列,直观展示数据整体的分布情况. 大部分正常数 ...

  8. 应用工具 .NET Portability Analyzer 分析迁移dotnet core

    大多数开发人员更喜欢一次性编写好业务逻辑代码,以后再重用这些代码.与构建不同的应用以面向多个平台相比,这种方法更加容易.如果您创建与 .NET Core 兼容的.NET 标准库,那么现在比以往任何时候 ...

  9. UWP中新加的数据绑定方式x:Bind分析总结

    UWP中新加的数据绑定方式x:Bind分析总结 0x00 UWP中的x:Bind 由之前有过WPF开发经验,所以在学习UWP的时候直接省略了XAML.数据绑定等几个看着十分眼熟的主题.学习过程中倒是也 ...

随机推荐

  1. 用JAVA捕获屏幕、屏幕录像、播放

    http://blog.csdn.net/njchenyi/article/details/447554 用JAVA捕获屏幕.屏幕录像.播放 标签: javaexceptionimageimportn ...

  2. Tickets 基础DP

    Tickets Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  3. Fox And Names

    Description Fox Ciel is going to publish a paper on FOCS (Foxes Operated Computer Systems, pronounce ...

  4. Contaminated Milk

    Contaminated Milk 题目描述 Farmer John, known far and wide for the quality of the milk produced on his f ...

  5. CSS Font-family常用设置

    font-family: "Avenir Next", Avenir, "Helvetica Neue", Helvetica, "Lantinghe ...

  6. ibatis resultMap 的用法

    先看个具体的例子: <resultMap id=”get-product-result” class=”com.ibatis.example.Product”> <result pr ...

  7. Codeforces#364Div2

    A题: 题意:给定一些数,然后每两个组成一对,要求每对的和的大小相同,输出这样的组合 分析:直接模拟就行 #include <iostream> #include <cstdio&g ...

  8. [python]小练习__创建你自己的命令行 地址簿 程序

    创建你自己的命令行 地址簿 程序. 在这个程序中,你可以添加.修改.删除和搜索你的联系人(朋友.家人和同事等等)以及它们的信息(诸如电子邮件地址和/或电话号码). 这些详细信息应该被保存下来以便以后提 ...

  9. jquery刷新iframe页面的方法(兼容主流)

    1,reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet])   参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取 ...

  10. 位图文件(BMP)格式以及Linux下C程序实现(转)

    源:位图文件(BMP)格式以及Linux下C程序实现 说到图片,位图(Bitmap)当然是最简单的,它是Windows显示图片的基本格式,其文件扩展名为*.BMP.由于没有经过任何的压缩,故BMP图 ...