Skip to content

GB28181/EasyDarwinCpp

 
 

Repository files navigation

EasyDarwin Cpp版本#

当前仓库仅保存EasyDarwin的Cpp版本,同步主仓库,可能会merge其他开发者的新增feature,并保留项目相关的介绍。

EasyDarwin说明

EasyDarwin是由国内开源流媒体团队维护和迭代的一整套开源流媒体视频平台框架,从2012年12月创建并发展至今,包含有单点服务的开源流媒体服务器,和扩展后的流媒体云平台架构的开源框架,开辟了诸多的优质开源项目,能更好地帮助广大流媒体开发者和创业型企业快速构建流媒体服务平台,更快、更简单地实现最新的移动互联网(安卓、iOS、H5、微信)流媒体直播与点播的需求,尤其是安防行业与互联网行业的衔接,EasyDarwin流媒体技术,助力传统行业升级转型!

EasyDarwin开源项目(7Project)

EasyDarwin开源项目至今包括有:EasyDarwin(开源流媒体服务器)、EasyCMS(中心管理服务器)、EasyCamera(云摄像机服务)、EasyClient(云平台客户端)、EasyAACEncoder(开源音频编码项目)、EasyAudioDecoder(开源音频解码项目)、EasyProtocol(开源云平台协议)等多个项目,完整地构架了一套开源流媒体云平台方案:

  1. EasyCMS 开源的设备接入与管理服务,支持多设备、多客户端接入,能非常快速地帮助大家实现稳定的设备接入服务,可以根据自己的需求进行服务功能拆分(例如用户接入服务与设备接入服务拆分等),具体见https://github.com/EasyDarwin/EasyDarwin/tree/master/EasyCMS

  2. EasyDarwin 核心流媒体服务!RTSP开源流媒体直播服务,高效、稳定、可靠、功能齐全,支持RTSP流媒体协议,支持安防行业需要的摄像机流媒体转发功能、支持互联网行业需要的多平台(PC、Android、IOS)RTSP直播(H264/MJPEG/MPEG4、AAC/PCMA/PCMU/G726)功能,底层(Select/Epoll网络模型、无锁队列调度)和上层(RESTful接口、WEB管理、多平台编译)、关键帧索引(秒开画面)、远程运维等方面优化,这些都是全代码完全开源的,具体接口调用方法和流程见:https://github.com/EasyDarwin/EasyDarwin/tree/master/EasyDarwin

  3. EasyCamera 设备端(摄像机、移动设备、桌面程序)对接EasyDarwin平台的方案,跨平台,支持Windows、Linux、ARM,其中EasyDarwin摄像机是我们定制的一款摄像机硬件与EasyDarwin平台进行对接的方案,摄像机采用海思3518E方案,支持RTSP、Onvif、WEB管理、配套SDK工具,作为开发和演示硬件工具,我们提供了全套完备的程序和文档,既可以用于流媒体学习,又可以用于方案移植参考,更可以直接用于项目中,用户可以将摄像机定制的部分替换成自己摄像机的硬件SDK,具体接入方法见https://github.com/EasyDarwin/EasyCamera

  4. EasyClient 是EasyDarwin开源流媒体云平台的客户端实现,项目地址:https://github.com/EasyDarwin/EasyClient,功能包含:Windows、Android、iOS、H5(支持微信)四个部分,其主要功能包括:

    • 云平台设备列表获取;
    • 设备实时码流请求与播放;
    • 设备云台控制;
    • 设备语音对讲;
  5. EasyAACEncoder 是一套简单、高效、稳定的开源音频编码库,支持将各种音频数据(G.711A/PCMA、G.711U/PCMU、G726、PCM)转码成AAC(with adts)格式,其中aac编码部分采用的是业界公认的faac库,EasyAACEncoder支持Windows、Linux、ARM等多种平台,能够广泛应用于各种移动终端设备、嵌入式设备和流媒体转码服务器!项目地址:https://github.com/EasyDarwin/EasyAACEncoder

  6. EasyAudioDecoder 是一套应用于移动端的简单、高效、稳定的开源音频解码库,能够将G.711A/PCMA、G.711U/PCMU、G726、AAC等音频格式转码到Linear PCM,再提供给流媒体播放器进行音频播放,EasyAudioDecoder支持跨平台,支持Android & iOS,目前已稳定应用于EasyPlayer、EasyClient等多个开源及商业项目!项目地址:https://github.com/EasyDarwin/EasyAudioDecoder

  7. EasyProtocol 是EasyDarwin开源流媒体服务器和开源平台使用的一套开源json协议,具有合理的结构设计、完善的层次逻辑以及简单精炼的调用接口,非常易于使用和扩展,不仅长期应用于EasyDarwin的服务器及平台中,而且能够快速扩展用户的自定义需求,非常好用!项目地址:https://github.com/EasyDarwin/EasyProtocol

EasyDarwin RTSP流媒体服务器完全开源,EasyDarwin RTSP流媒体服务器在Darwin Streaming Server基础上做的优化和迭代,完全开源!后续也将继续扩展的录像、回放等多种服务和工具集,各个功能单元既可以独立使用于项目,又可以整体使用,形成一个完整、简单、易用、高效的流媒体解决方案!

EasyDarwin的商业项目(8Project)

同时,EasyDarwin开源团队也开发了很多流媒体方面的商业项目,包括有:

  1. EasyPlayer 是一款精炼、高效、稳定的流媒体播放器,分为RTSP版和Pro版本,EasyPlayer RTSP版本支持Windows(支持多窗口、包含ActiveX,npAPI Web插件)、Android、iOS多个平台,EasyPlayerPro支持Android、iOS,支持各种各样的流媒体音视频直播/点播播放,项目地址:https://github.com/EasyDarwin/EasyPlayer

  2. EasyPusher 是一款简单、高效、稳定的一款标准RTSP/RTP协议直播推送库,支持将H.264/G.711/G.726/AAC等音视频数据推送到RTSP流媒体服务器进行低延时直播或者视频通信,支持Windows、Linux、ARM、Android、iOS等平台,EasyPusher配套EasyDarwin流媒体服务器、EasyPlayer RTSP播放器适用于特殊行业的低延时应急指挥需求!项目地址:https://github.com/EasyDarwin/EasyPusher

  3. EasyNVR 摄像机(通用RTSP、Onvif摄像机)接入服务,EasyNVR能够通过简单的摄像机通道配置、存储配置、云平台对接配置、CDN配置等,将统监控行业里面的高清网络摄像机IP Camera、NVR、移动拍摄设备接入到EasyNVR,EasyNVR能够将这些视频源 的音视频数据采集到设备端,进行全平台终端直播、录像存储、录像检索和录像回放。并且EasyNVR能够将视频源的直播数据对接到第三方视频平台、CDN网络,实现互联网直播分发,具体接入方法见https://github.com/EasyDarwin/EasyNVR

  4. EasyIPCamera 是一套精炼、高效、稳定的RTSP服务器组件,调用简单灵活,轻松嵌入部署到IPCamera中,并发性能属于行业领先水平,广泛应用于IPCamera RTSP服务、Android/Windows投屏/同屏直播服务,例如课堂教学同屏、会议同屏、广告投放同屏等!项目地址:https://github.com/EasyDarwin/EasyIPCamera

  5. EasyRTMP 是一套调用简单、功能完善、运行高效稳定的RTMP功能组件,经过多年实战和线上运行打造,支持RTMP推送断线重连、环形缓冲、智能丢帧、网络事件回调,支持Windows、Linux、arm(hisiv100/hisiv200/hisiv300/hisiv400/etc..)、Android、iOS平台,支持市面上绝大部分的RTMP流媒体服务器,包括Red5、Ngnix_rtmp、crtmpserver等主流RTMP服务器,能够完美应用于各种行业的直播需求,手机直播、桌面直播、摄像机直播、课堂直播等等方面!项目地址:https://github.com/EasyDarwin/EasyRTMP

  6. EasyRTSPClient 是一套简单、稳定、高效、易用的RTSPClient工具库,支持Windows、Linux、ARM、Android、iOS等几乎所有平台,支持RTP Over TCP/UDP,支持断线重连,能够接入市面上99%以上的IPC,调用简单且成熟稳定,能广泛应用于播放器、NVR、流媒体系统级联等产品中!项目地址:https://github.com/EasyDarwin/EasyRTSPClient

  7. EasyHLS 是一套简单、可靠、高效、稳定的HLS直播切片SDK,能够将实时的H.264视频和AAC音频流实时切片成可供WEB、Android、iOS、微信等全平台客户端观看的HLS(m3u8+ts)直播流,搭配EasyRTSPClient、EasyAACEncoder等项目,可将大部分的安防摄像机对外进行HLS直播发布,同时也可灵活集成在各种流媒体服务中!项目地址:https://github.com/EasyDarwin/EasyHLS

  8. EasyRMS 是一套基于HLS协议的录像与回放服务器,EasyRMS能够将RTSP源获取到本地进行本地存储或者存储到阿里云对象存储OSS云存储等第三方存储平台,同时EasyRMS提供录像的检索与查询接口,检索出录像的HLS地址进行录像回放!项目地址:https://github.com/EasyDarwin/EasyRMS

EasyDarwin云平台

EasyDarwin云平台是一套由EasyDarwin、EasyCMS、EasyCamera、EasyClient、nginx、redis构成的完整云平台架构,支持分布式、跨平台、多点部署,流媒体服务器支持负载均衡,按需直播,非常适用于互联网化的安防、智能家居、幼教平台、透明厨房、透明家装等多个行业应用:

平台架构

平台协议

EasyDarwin Protocol

平台端口

  • EasyCMS:接口服务端口,10000
  • EasyDarwin:接口服务端口,10008
  • EasyDarwin:RTSP服务端口,10554
  • EasyDarwin:HTTP后台管理端口,10080
  • EasyNVR:接口服务端口,10010
  • EasyNVR:后台管理端口,10080

平台演示

EasyClient Android

EasyClient iOS

EasyDarwin从发展至今,从最初单纯的流媒体服务器EasyDarwin,已经发展成为一个非常丰富的流媒体开源社区了,目前EasyDarwin Github所有的开源项目,有EasyDarwin开源团队开发,也有外部开发者贡献给EasyDarwin社区的,并由原始作者和EasyDarwin开源团队一起进行后续的开发和维护;

About

EasyDarwin 的Cpp版本,推荐使用Go版本

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 98.2%
  • Makefile 0.9%
  • C 0.9%
  • Shell 0.0%
  • M4 0.0%
  • Objective-C 0.0%