MyLive--使用JAVA实现的直播RTMP服务器
MyLive 使用JAVA实现的直播RTMP服务器
介绍
MyLive 是一个我用业余时间使用Java实现的RTMP直播服务器,它并不是一个全功能的RTMP实现,也就是说不支持seek和play2命令,支持AMF0编码。
MyLive实现了RTMP的协议的基础功能,RTMP实时转FLV。
为什么我要用Java做一个RTMP服务器呢?一是我个人对直播相关的技术比较感兴趣,想自己研究一下。二是我发现目前还没有java实现的轻量rtmp服务器可以拿来学习参考(大部分都是C实现,或者是nginx的插件,现有java实现的rtmp服务器有red5,比较重量级)。
于是我自己根据rtmp标准自己写了一个。
如果你觉得该项目还不错,欢迎去github上给项目点一个星星。
项目GitHub地址:https://github.com/YuboLong/MyLive
功能
- Rtmp直播流推拉(publish/play)
- 将推到服务器的流保存为FLV格式文件
- 实时Http-FLV支持
- GopCache
架构
Build & Run
mvn package
java -jar mylive.jar
MyLive会读取和mylive.jar在同一个文件夹下的mylive.yaml配置文件。
然后就可以推流到rtmp://127.0.0.1/live/yourstream,
Http-flv流使用 http://127.0.0.1:8080/live/yourstream 访问
FFMPEG 推Rtmp流和VLC player播放Rtmp流已经测试过,HTTP-FLV直播流已经使用bilibili的flv.js测试过
未来计划
- HLS的支持
- 配合FFMPEG支持更多直播形式 (HLS,DASH)和比特率
如果你对该项目有兴趣,请加入QQ群1028728337