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

功能

  1. Rtmp直播流推拉(publish/play)
  2. 将推到服务器的流保存为FLV格式文件
  3. 实时Http-FLV支持
  4. GopCache

架构

MyLive Architecture

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测试过

未来计划

  1. HLS的支持
  2. 配合FFMPEG支持更多直播形式 (HLS,DASH)和比特率

如果你对该项目有兴趣,请加入QQ群1028728337