各位EasyDarwin开源项目的爱好者,您好,这篇博客的年限有点老了,目前EasyDarwin已经采用全新的云平台架构,详细可以参考博客:http://blog.csdn.net/xiejiashu/article/details/51581003,您也可以直接访问EasyDarwin开源项目的官网:www.easydarwin.org,获取最新EasyDarwin项目信息;


系统功能介绍

系统基于RTSP协议和Darwin Streaming Server(以下简称DSS)实现,具有设备接入和控制、分布式流媒体服务器部署、流媒体转发与负载均衡、实时音视频控制等功能,同时支持视频直播与点播功能,整套系统可跨平台运行(Windows/Linux)。

系统功能模块

1、CMS:中心管理服务器,全局唯一运行。中心管理服务器接入来自设备端的注册连接、其他服务节点的连接(如流媒体服务器、回放点播服务器等)、客户端的请求连接。所有关于设备连接的维护与管理、控制命令的下发、设备信息上报解析,客户端请求控制,负载均衡等控制均由中心管理服务器进行。
2、EasyDarwin:流媒体服务器,可分布式多点部署。流媒体服务器作为整套系统的流媒体服务节点单元,可多点、分布式部署于多个网络环境中,以实现具体的流媒体直播转发、点播回放等需求。
3、EasyCamera:设备模拟器(For Win32)。模拟系统设备,连接并保活至中心管理服务器,接收来自CMS的控制命令。采集Windows摄像头视频与MicroPhone音频输入,分别利用x264和FAAC进行H264及AAC编码,再通过RTSP和RTP,将实时音视频数据推送到流媒体服务器,并由流媒体服务器进行转发和分发,实现直播。

系统设计框架

系统设计的思路最早源于我的一篇博客:http://blog.csdn.net/xiejiashu/article/details/8739509,如今已在这个思路上面做了许多修改,能够分布式接入多个流媒体转发服务器,并且能够均衡地将转发的压力分配到多个流媒体服务器上去,框架图如是:

系统演示下载

本系统后续开发及更新为:EasyDarwin开源云视频平台,最新演示版本下载地址www.easydarwin.org,后续更新也将在博客中发布。

系统主要配置
1、CMS/CMS.xml
rtsp_port:配置CMS对rtsp的监听端口,所有的设备、流媒体服务器、客户端统一由此端口接入,默认为554端口。

2、EasyDarwin/EasyDarwin.xml
rtsp_port:流媒体转发端口,设备端推送流媒体的端口,默认8554。
cms_addr:中心管理服务器的IP地址(尽量不要用本地回环地址127.0.0.1,除非CMS、EasyDarwin、EasyCamera、客户端都在一台机器上)。
cms_port:中心管理服务器rtsp监听端口,也就是上面CMS中配置的端口,如554端口。

3、EasyCamera/config.ini
server:中心管理服务器CMS的域名或者IP。
port=554:中心管理服务器rtsp的监听端口,也就是1中配置的端口,如554端口。
device=live:设备ID,不可重复,否则设备无法注册到CMS。
suffix=sdp:不变即可。

系统部署
1、CMS:运行start.bat,以Debug模式运行CMS。
2、EasyDarwin:运行start.bat,以Debug模式运行EasyDarwin。
3、运行easyCamera.exe(注:需要配备USB摄像头)。

获取视频
用VLC、CorePlayer等请求网络串流:rtsp://[CMS_IP]:[CMS_Port]/[Device_ID].sdp,例如:服务器地址192.168.1.3,端口554,设备ID为live,请求地址为:rtsp://192.168.1.3:554/live.sdp

注意!
服务器注意设置端口例外或者关闭防火墙

运行效果

演示图1:流媒体服务器与设备live分别注册到中心管理服务器

演示图2:EasyDarwin流媒体服务器运行

演示图3:Windows设备模拟器连接到中心管理服务器

演示图4:用vlc请求设备[live]的实时视频

演示图5:用vlc请求设备[live]的实时视频

用Windows模拟器演示,实时视频延时在1s左右,延时原因在模拟器采集编码端,经过测试,用专门的编码芯片设备发布实时视频,无延时感觉,后面将继续修复Win32模拟器此问题。

后续更新
未完待续……

------------------------------------------------------------

本文转自www.easydarwin.org,更多开源流媒体解决方案,请关注我们的微信:EasyDarwin 

基于Darwin实现的分布式流媒体直播服务器系统的更多相关文章

  1. 分布式流媒体直播服务器系统 For Linux

    在之前的一篇<基于Darwin实现的分布式流媒体直播服务器系统>中,我们配置了在Win32下面的流媒体直播系统,今天我们分享一下在Linux下面EasyDSS分布式直播服务器系统的配置. ...

  2. day122:MoFang:OSSRS流媒体直播服务器&基于APICloud的acLive直播推流模块实现RTMP直播推流

    目录 1.docker安装OSSRS流媒体直播服务器 2.基于APICloud的acLive直播推流模块实现RTMP直播推流 3.直播流管理 1.docker安装OSSRS流媒体直播服务器 1.OSS ...

  3. 流媒体直播服务器:Bull-Live-Server

    Bull Live Server 简称 BLS ,旨在使用C++语言提供强大功能和高性能的流媒体直播服务器. 为何要写 BLS ? 1.simple rtmp server https://githu ...

  4. 收藏:视频网站(JavaEE+FFmpeg)/Nginx+ffmpeg实现流媒体直播点播系统

    FFmpeg安装(windows环境)http://www.cnblogs.com/xiezhidong/p/6924775.html 最简单的视频网站(JavaEE+FFmpeg)http://bl ...

  5. 【原创+史上最全】Nginx+ffmpeg实现流媒体直播点播系统

    #centos6.6安装搭建nginx+ffmpeg流媒体服务器 #此系统实现了视频文件的直播及缓存点播,并支持移动端播放(支持Apple和Android端) #系统需要自行安装,流媒体服务器配置完成 ...

  6. 基于libRTMP的流媒体直播之 AAC、H264 推送

    这段时间在捣腾基于 RTMP 协议的流媒体直播框架,其间参考了众多博主的文章,剩下一些细节问题自行琢磨也算摸索出个门道,现将自己认为比较恼人的 AAC 音频帧的推送和解析.H264 码流的推送和解析以 ...

  7. 【基于libRTMP的流媒体直播之 AAC、H264 推送】

    这段时间在捣腾基于 RTMP 协议的流媒体直播框架,其间参考了众多博主的文章,剩下一些细节问题自行琢磨也算摸索出个门道,现将自己认为比较恼人的 AAC 音频帧的推送和解析.H264 码流的推送和解析以 ...

  8. 【基于libRTMP的流媒体直播之 AAC、H264 解析】

    前文我们说到如何在基于 libRTMP 库的流媒体直播过程中推送 AAC .H264 音视频流.本文以上文为基础,阐释如何对 RTMP 包进行解析.重组得到原始的 AAC 音频帧以及 H264 码流. ...

  9. 基于nginx的rtmp直播服务器(nginx-rtmp-module实现)

    首先,在搭建服务之前先了解下目前主流的几个直播协议: 1.RTMP: 实时消息传输协议,Real Time Messaging Protocol,是 Adobe Systems 公司为 Flash 播 ...

随机推荐

  1. ASP.NET MVC创建静态页

    1.在MVC下新建一个类:StaticPageHelper public class StaticPageHelper { /// <summary> /// 根据View视图生成静态页面 ...

  2. (0)git安装

    windows安装 https://blog.csdn.net/sishen47k/article/details/80211002

  3. python第三方库安装-多种方式

    第一种方式:安装whl文件 pip install whatever.whl   第二种方式:安装tar.gz文件 一般是先解压,然后进入目录之后,有setup.py文件 通过命令 python se ...

  4. SpringBoot整合MyBatisPlus配置动态数据源

    目录 SpringBoot整合MyBatisPlus配置动态数据源 SpringBoot整合MyBatisPlus配置动态数据源 推文:2018开源中国最受欢迎的中国软件MyBatis-Plus My ...

  5. Xamarin XAML语言教程将XAML设计的UI显示到界面

    Xamarin XAML语言教程将XAML设计的UI显示到界面 如果通过XAML将UI设计好以后,就可以将XAML中的内容显示给用户了,也就是显示到界面上.由于创建XAML文件方式的不同,所以将XAM ...

  6. vs2013 x64 编译汇编代码

    x64不再支持__asm, 只能单独放在一个.asm中. xxx.asm--------属性 应用    会出现 自定义生成工具.  下面黑体是我们修改的内容.

  7. Jenkins配置git进行构建失败:Error cloning remote repo 'origin'的解决思路

    说明:这个没有实际的解决方法,只提供一个思路去解决. 操作系统:windows 背景:在配置的节点之后,由于是windows的系统,运行git克隆地址,使用的是SSH协议地址.出现如下的错误: Err ...

  8. 基于WPF系统框架设计(7)-TextBox/PasswordBox在ViewModel中支持回车命令

    应用场景 我现在做一个系统登录功能,要求在PasswordBox上输完密码后回车,能够响应Enter事件,并执行ViewModel中对应的方法.如果登录成功则隐藏当前窗口显示主窗体,登录失败则焦点返回 ...

  9. Android 日期对话框DatePickerDialog

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@ ...

  10. cocos2dx 2.x新建项目

    举例: cocos2d-x-2.2.6/tools/project-creator 进入 这个文件夹 chmod 777 project-cereator.py ./create_project.py ...