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