zoukankan      html  css  js  c++  java
  • crtmpserver分析与组网

    简单介绍:
    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上也能观看了;

  • 相关阅读:
    java处理图片压缩、裁剪
    List按对象元素自定义排序
    List和数组汉字简单排序(转)
    欢迎访问我的个人博客,部分文章迁移
    Java资源免费分享,每日一更新,找到你心仪的吧
    今年的校招,Java好拿offer吗?
    【拥抱大厂系列】几个面试官常问的垃圾回收器,下次面试就拿这篇文章怼回去!
    2019,我的这一年,在校研究生做到年入20W,另送我的读者2000元现金红包
    深入理解Java虚拟机-如何利用VisualVM对高并发项目进行性能分析
    深入理解Java虚拟机-常用vm参数分析
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10852855.html
Copyright © 2011-2022 走看看