直播推流涉及多协议,多端技术栈和知识点,,想要做好并不容易,经过几年时间的迭代,终于小有成就,聚集了媒体服务器,实时会议sfu,远控kvm等功能。可以做一个音视频应用的瑞士小军刀。主要开发语言采用了go c c++ 及原生js。
这个系统来源于误听别人说音视频领域是一个可以养老的技术,学会了可以吃穿不愁,但可惜了两年来头发都快掉光了,也没有看到可以养老的可能性,不过我把自己心目中的音视频系统也做得七七八八了,至少可以见人了,拿出来也不会太丢人。
功能如下,请各位指教:
1.多端互通,涉及服务器端,网页端,移动app端,微信小程序端,嵌入式设备端,各端的框架代码都是我无数个昼夜,辛苦构思,敲出来的。
2.基于发布定阅模式的设备管理,信令调度,实现边缘分布式级联服务,部署方案可内网,可外网或混合模式多点组网,服务器和设备的功能大部分融合一体,可实现强大的流管理和超低延迟的音视频及数据的相互转发,系统柔性拓展可极速实现。
3.支持多协议多编码接入,目前支持rtsp,rtmp gb28181 webrtc的按需拉流,拉流逻辑完全由客户端实现,可以做到端到端的自加密传输,支持annexb rtp h265 h264等视频的传输和播放,支持aac ,pcmua opus等音频的传输和播放,无插件支持h265浏览器播放,数据完全自主可控,方便接入tensorflow.js实现ai模型应用。
4.支持对讲,群组通话,可无缝实现嵌入式设备低延迟音视频应用,可以综合集成应用,自成体系,方便融入iot系统,几乎零维护和低部署成本。
5.桌面采集远控,可通过hdmi in或者gdi dxgi nvfbc wgc等进行桌面采集,利用vpu 或者gpu实现硬编码,深度优化游戏串流技术。
6.采用dma mmap大通量文件存储,支持多通道h264/h265 aac音视频同步,占用cpu资源极少,写入效率高,落盘策略可控,可以自由实现硬盘写入频次和缓存时间控制,达到延长硬盘或sd卡擦写年限的目的。
7.多行业应用,可以适用于教育,卫生,楼宇管理,工业控制等众多多系统数据融合领域,支持mqtt,时序数据管理
8.接口简洁,函数式调用,灵活且可深度嵌入已有系统,可定向开源策略,保证代码质量和长期稳定迭代。