首页 > 其他 > 详细

crtmpserver分析与组网

时间:2019-05-12 17:25:26      阅读:202      评论:0      收藏:0      [点我收藏+]
简单介绍:
crtmpserver是一款不错的开源流媒体server,用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能够分散开从从server上拉媒体流。
例如以下图所看到的:
技术分享图片
详细配置示比例如以下:
改动主server的crtmpserver.lua
? ? {
? ? ? name="proxypublish",
? ? ? description="Application for forwarding streams to another RTMP server",
? ? ? protocol="dynamiclinklibrary",
? ? ? acceptors =
? ? ? {
? ? ? ? {
? ? ? ? ? ip="0.0.0.0",
? ? ? ? ? port=6665, ? ? ? ? ? ? ? ? ? ? ? ? ? ? -- 主server接收RTMP流的端口
? ? ? ? ? --protocol="inboundLiveFlv"
? ? ? ? ? protocol="inboundRtmp"
? ? ? ? },
? ? ? },
? ? ? abortOnConnectError=true,
? ? ? targetServers =
? ? ? {
? ? ? ? {
? ? ? ? ? targetUri="rtmp://192.168.1.115/live", ? -- 从server的URL
? ? ? ? ? targetStreamType="live", -- (live, record or append)
? ? ? ? ? localStreamName="proxytest", ? ? ? ? ? ?-- 推送到从server的流
? ? ? ? ? keepAlive=true
? ? ? ? },
? ? ? },
? ? },
?
启动主,多server;这样,推送到主server的流“proxytest",在从server上也能观看了;

crtmpserver分析与组网

原文:https://www.cnblogs.com/mqxnongmin/p/10852855.html

(0)
(0)
   
举报
评论 一句话评论(0
分享档案
最新文章
教程昨日排行
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!