一个即拷即用、支持摄像头集中管理、多级路由及h5播放的流媒体服务器。
偶尔和前同事聊天,说到一些小的监控项目需要把IP摄像头集中管理,并提供html播放能力。闲来无事就试着开发一个打发时间,也作为学习 go 语言的一个实践。
在此之前没有流媒体经验,没有go语言项目开发经验。看了一些文档,参考了一些开源项目,主要包括:
- emitter 学习多协议共享端口等网络编程技能
- EasyDarwin 为加深对rtsp协议的理解
- seal rtmp/flv hls 服务的理解
- 基于纯 Golang 开发
- 支持 Windows、Linux、macOS 平台
- 支持 RTSP 推流(主动推送)
- 支持 RTSP 拉流(拉取摄像头或其他流媒体服务器资源)
- 支持 RTSP TCP、UDP、Multicast 播放
- 支持 H264+AAC H5播放,包括:
- WSP: html5_rtsp_player
- Websocket-RTSP(实验): 播放端修改自html5_rtsp_player
- HTTP-FLV
- Websocket-FLV
- HTTP-HLS
- 支持 H265+AAC H5播放(实验,需自行寻找播放软件),包括:
- HTTP-FLV
- Websocket-FLV
- 支持流媒体用户推拉权限管理
- 业务系统集成 RestfulAPI
- 支持 user 和 routetable 提供者插件:仅支持 linux 和 mac