搞视频监控的都知道,流媒体协议这块挺烦人的。
GB28181、RTSP、RTMP、HLS……光是把这些协议互相转换就够喝一壶的。
摄像头推过来的流格式五花八门,播放端要求的协议又各不相同,中间还要处理鉴权、集群、延时控制……
最近挖到一个开源神器,看着很强 !Github上有1500人关注。
AKStream,一套全功能的软NVR接口平台
传统NVR都是硬件设备,价格不便宜,功能也相对固定。
AKStream不一样,它是软件定义的网络视频录像机,专门用来管理和处理视频流媒体。
它把流媒体处理中最繁琐的协议转换、集群管理、接口封装都做好了。
经常和视频监控、流媒体打交道的开发者,这个工具太省心了。
先看几张实际效果。
设备列表界面,所有接入的设备一目了然
在线设备列表,实时看到哪些设备在线
设备预览界面,直接播放实时视频流
界面看着挺清爽的,下面看看它有哪些硬核功能。
支持全协议互相转换。
它支持H265、H264、AAC、G711、OPUS等音视频编码格式,可以把推拉流转换成RTSP、RTMP、HLS、HTTP-FLV、WebSocket-FLV、GB28181、HTTP-TS、WebSocket-TS、HTTP-fMP4、WebSocket-fMP4、MP4等几乎全协议。
简单说,不管你的摄像头用什么协议推流,也不管你的播放端需要什么协议,AKStream都能在中间做转换。
内置GB28181国标支持。
如果你有一批支持GB28181国标协议的摄像头,需要把视频流推送到Web页面播放。
传统做法要自己搭流媒体服务器,还要处理协议转换、鉴权、集群管理等一系列问题。
用AKStream的话,它内置了GB28181的SIP信令网关,支持GB28181-2016标准,可以直接接收摄像头的RTP推流,然后转换成Web能播放的HTTP-FLV或WebSocket-FLV格式。
整个过程只需要调用它提供的Restful API接口就能搞定。
设备激活界面,支持GB28181设备的快速接入
延时最低能到100毫秒。
AKStream支持画面秒开,极低延时可以控制在500毫秒内,最低能达到100毫秒。
这个性能对实时监控场景太重要了,毕竟谁也不想看到监控画面延迟好几秒。
支持集群管理,横向扩展。
AKStream集成了ZLMediaKit作为流媒体服务器,并且支持集群管理。
通过AKStreamKeeper这个流媒体治理组件,可以把分布在不同服务器上的多个ZLMediaKit实例集群起来,统一管理和调度。
当你的视频流规模扩大时,可以通过增加服务器来横向扩展,而不是被单机性能卡住。
流媒体服务管理列表,可以查看和管理多个流媒体服务器实例
多种拉流方式,几乎支持所有格式。
除了GB28181推流,AKStream还支持多种拉流方式。
内置的流代理器可以拉取HTTP、RTSP、RTMP等协议的流,支持H264、H265、AAC、G711编码。
如果遇到一些特殊格式,还可以用ffmpeg流代理器来处理,几乎支持所有格式的拉流和转码。
这个能力让AKStream不仅能接入摄像头,还能接入各种第三方视频源。
技术栈主流,部署简单。
项目使用.Net6框架,采用C语言编写。数据库部分使用开源项目freeSql,支持SQLite、MSSQL、MySQL等多种数据库。 部署方面,AKStream支持Linux、macOS、Windows系统,可以运行在x86_64和ARM架构上。
有网友还制作了Docker容器版本,包含了AKStreamWeb、AKStreamKeeper、ZLMediaKit、AKStreamWebNVR,基本可以开箱即用。
另外AKStream本身是一个接口平台。
它提供了几乎所有NVR管理能力的API接口。
虽然有配套的UI界面,但那只是Demo,主要用来演示如何调用接口。
要是在自己的业务中使用,还是需要根据API文档开发前端界面和业务逻辑。
看到这你想装上试试?
项目基于MIT协议开放,在保留版权信息的情况下可以自由应用于商业和非商业项目。
你可以从GitHub下载源码,按照Wiki文档部署。
安装好了配置好数据库和流媒体服务器,调用Restful API就能开始处理视频流了。
感兴趣的朋友可以抓紧试试。
开源地址:https://github.com/chatop2020/AKStream最后,欢迎随手点赞、在看、转发,也可以给我个星标,我们下期见!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!