既然优雅草已经和甲方确定了要开始直播私有化,方案语言以及开源库中间件的选择也是尤为重要的,以下是卓伊凡认为收集起来可以做学习参考的。
针对Go、Node.js、Python、PHP、Java五种语言的直播推流相关开源库及商业方案推荐,包含仓库介绍和能力分析:
LiveGo
GitHub地址: https://github.com/gwuhaolin/livego
功能特点:
纯Go实现的轻量级RTMP/HLS/HTTP-FLV服务器
支持GOP缓存实现秒开,跨平台部署
提供Docker镜像快速部署
适用场景:中小规模自建直播集群,最高支持2000并发
Monibuca
GitHub地址: https://github.com/Monibuca/engine
功能特点:
插件化流媒体框架,支持WebRTC扩展
内置JitterBuffer抗网络抖动
提供集群部署方案
阿里云直播SDK:按流量计费(0.36元/GB起),提供全球加速和AI降噪等增值功能
Node-Media-Server
GitHub地址: https://github.com/illuspas/Node-Media-Server
功能特点:
支持RTMP/HTTP-FLV/WebSocket-FLV协议转换
内置MP4录制和HLS切片功能
单进程可承载3000+并发
个人来说比较偏向喜欢node ,曾经clam 一己之力 用node 手搓了 实时音视频 交付了一个鹰国客户。
billd-live-server
GitHub地址: https://github.com/galaxy-s10/billd-live
功能特点:
基于SRS+WebRTC的完整直播系统
包含打PK、礼物系统等业务模块
支持多平台转推(如B站、虎牙)
腾讯云TRTC:连麦服务0.016元/分钟/路,含1080P高清支持
FFmpeg-python
GitHub地址: https://github.com/kkroening/ffmpeg-python
功能特点:
封装FFmpeg命令实现推流控制
支持硬件加速(NVIDIA/Intel QSV)
示例代码可直接对接OBS
PyAV
GitHub地址: https://github.com/PyAV-Org/PyAV
功能特点:
直接调用FFmpeg的Python接口
支持帧级精确控制
适用于AI视频分析场景
有时候真的觉得FFmpeg好能打
AWS Elemental MediaLive:按转码时长计费($0.03/分钟起)
xiaosongshu/rtmp_server
GitHub地址: https://github.com/xiaosongshu/rtmp_server
功能特点:
纯PHP实现的RTMP服务器
支持FLV拉流和WS协议
延迟可控制在1秒内
我真的很期待 php的精彩表现,但是可惜这个库已经被关闭了
HDphp3 Aliyun组件
GitHub地址: https://github.com/houdunwang/hdphp3
功能特点:
封装阿里云直播API
支持推流地址生成和播放统计
这个库没什么用,这个库等于用阿里云了,基本就不是私有化,可以pass
七牛云直播PHP SDK:基础功能免费,增值服务按需付费
MyLive
GitHub地址: https://github.com/YuboLong/MyLive
功能特点:
轻量级RTMP服务器实现
支持GOP缓存和FLV录制
基于Netty的高性能网络层
JavaCV
GitHub地址: https://github.com/bytedeco/javacv
功能特点:
封装FFmpeg/OpenCV的Java接口
支持Android摄像头推流
提供硬件编码优化
java 始终还是java ,真的有多年的历史积累。
但是 这些东西 也有点不敢用啊,只能参考看看,这个库有6年没更新了
声网Agora SDK:按分钟计费($3.99/1000分钟起)
语言
推荐开源方案
最大并发支持
典型延迟
适用场景
Go
LiveGo + Monibuca
5000+
100-300ms
高并发私有化部署
Node.js
Node-Media-Server
3000
1-2s
快速原型开发
Python
FFmpeg-python + PyAV
500
1-3s
算法结合型直播
PHP
xiaosongshu服务器
200
2-5s
小型内网应用
Java
JavaCV + MyLive
1000
500ms-1s
Android集成/企业级系统