系统功能介绍:
系统基于RTSP协议和Darwin Streaming Server(以下简称DSS)实现,具有设备接入和控制、分布式流媒体服务器部署、流媒体转发与负载均衡、实时音视频控制等功能,同时支持视频直播与点播功能,整套系统可跨平台运行(Windows/Linux)。
系统功能模块:
1、CMS:中心管理服务器,全局唯一运行。中心管理服务器接入来自设备端的注册连接、其他服务节点的连接(如流媒体服务器、回放点播服务器等)、客户端的请求连接。所有关于设备连接的维护与管理、控制命令的下发、设备信息上报解析,客户端请求控制,负载均衡等控制均由中心管理服务器进行。2、EasyDarwin:流媒体服务器,可分布式多点部署。流媒体服务器作为整套系统的流媒体服务节点单元,可多点、分布式部署于多个网络环境中,以实现具体的流媒体直播转发、点播回放等需求。3、EasyIpCamera:设备模拟器(For Win32)。模拟系统设备,连接并保活至中心管理服务器,接收来自CMS的控制命令。采集Windows摄像头视频与MicroPhone音频输入,分别利用x264和FAAC进行H264及AAC编码,再通过RTSP和RTP,,将实时音视频数据推送到流媒体服务器,并由流媒体服务器进行转发和分发,实现直播。
系统设计框架:
系统设计的思路最早源于我的一篇博客:,如今已在这个思路上面做了许多修改,能够分布式接入多个流媒体转发服务器,并且能够均衡地将转发的压力分配到多个流媒体服务器上去,框架图如是:
系统演示下载:
系统主要配置:1、CMS/CMS.xmlrtsp_port:配置CMS对rtsp的监听端口,所有的设备、流媒体服务器、客户端统一由此端口接入,默认为554端口。2、EasyDarwin/EasyDarwin.xmlrtsp_port:流媒体转发端口,设备端推送流媒体的端口,默认8554。cms_addr:中心管理服务器的IP地址(尽量不要用本地回环地址127.0.0.1,除非CMS、EasyDarwin、EasyIpCamera、客户端都在一台机器上)。cms_port:中心管理服务器rtsp监听端口,也就是上面CMS中配置的端口,如554端口。3、EasyIpCamera/config.iniserver:中心管理服务器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、运行easyIpCamera.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]的实时视频
后续更新:未完待续……
勇敢的冷静的理智的去接受失败,有时不但是必要的,而且是很有必要的。