EasyDarwin流媒体服务器RTSP拉模式流媒体转发模块设计
2023-09-14 08:59:59 时间
拉模式转发
拉模式转发,顾名思义就是服务器主动从源端(IPCamera、NVR、或者其他流媒体服务器)通过RTSP/RTP协议将流媒体音视频数据拉取到流媒体转发服务器,再通过内部分发调度机制,分发给请求转发的客户端的过程;
拉模式转发的用途非常广泛:内网直播、服务器级联、NVR等各个方面,结合服务端存储,还可以做成边转发直播、边录像的功能;
EasyDarwin拉模式转发
EasyDarwin的拉模式转发需要做到几点:
- 通用接入:接入市面上大部分的IPCamera及NVR;
- 按需拉取:只有在有用户请求播放数据的时候,EasyDarwin才会向源端获取数据;
- 无请求释放:当某一路转发的用户观看量减少为0时,EasyDarwin需要主动释放对源端的拉取;
- 预配置:拉模式转发模块能够读取预配置的拉模式列表xml配置;
- RESTful接口:EasyDarwin支持RESTful接口调用,增加或者删除拉模式转发;
实现方案
我们为EasyDarwin新增一个模块:EasyRelayModule,在EasyRelayModule中,我们为每一路源的转发都建立一个由live555维护的RTSPClient线程,再由EasyRelayModule对线程进行HashMap维护,启动与停止进行外部干预,从而维护整个EasyDarwin流媒体服务器所有接入的RTSP源;
这里有一个问题需要说明:我们采用live555进行RTSP流媒体数据的获取(支持RTP over TCP || UDP),我们改造了live555通常的RTSP获取流程,直接将live555的sink用simpleRTPSink,直接获取到RTP数据,转发给QTSSReflectorModule进行转发;
EasyDarwin Github
获取更多信息
Copyright © EasyDarwin.org 2012-2016
相关文章
- 服务器显示asp错误,Windows7 IIS+ASP http500内部服务器错误(显示它的本来面目)
- 如何优雅的把Go项目部署到Linux服务器?
- [1169]python编程WSGI服务器wsgiref模块
- Linux服务器密码修改:实现安全登录(linux服务器密码修改)
- 在Linux系统上安装JBoss服务器(jboss安装linux)
- 器MySQL服务器安装指南—快速进入服务器的世界!(怎么安装mysql服务)
- 一次Linux服务器被入侵和删除木马程序的经历
- 网易服务器昨晚瘫痪是什么原因
- 未能连接Redis服务器排查故障方法(redis连接不到服务器)
- Redis装服务器一个快捷而安全的选择(redis 装成服务器)
- Python实现根据指定端口探测服务器/模块部署的方法