Springboot、netty实现的http-flv、websocket-flv流媒体服务(可用于直播点播),支持rtsp、h264、h265等、rtmp等多种源,h5纯js播放(不依赖flash),不需要依赖nginx等第三方,自身提供推流服务,测试延迟在2-3秒左右,由于转码原因大部分可在3-5秒波动。
成品下载 链接:https://pan.baidu.com/s/1ZIjZXXKx6-6X0SEvju5e_w 提取码:b9pf
有两种方式播放:
当然也可以通过 autoClose=false 参数,例如
http://localhost:8866/live?url=rtsp://admin:VZCDOY@192.168.2.84:554/Streaming/Channels/102&autoClose=false
通过这种方式也会加入到camera.json
您只需要将{rtsp}替换成您的,然后放播放器里就能看了
http://localhost:8866/live?url={rtsp}
ws://localhost:8866/live?url={rtsp}
例如:
http://localhost:8866/live?url=rtsp://admin:VZCDOY@192.168.2.84:554/Streaming/Channels/102
ws://localhost:8866/live?url=rtsp://admin:VZCDOY@192.168.2.84:554/Streaming/Channels/102
成品运行方式(由于是跨平台的,未做ffmpeg精简,所以包会比较大)
java -jar EasyMedia-0.0.1-SNAPSHOT.jar
//还可以这样改端口 java -jar -Dserver.port=页面端口 -Dmediaserver.port=媒体端口 EasyMedia-0.0.1-SNAPSHOT.jar
可以访问 http://localhost:8888 具体功能参照截图
新增流 http://localhost:8888/add?url={rtsp}&remark={备注}
停止并删除 http://localhost:8888/del?url={rtsp}
停止推流 http://localhost:8888/stop?url={rtsp}
开始推流 http://localhost:8888/start?url={rtsp}
查看保存的流 http://localhost:8888/list
rtmp://58.200.131.2:1935/livetv/ahtv
现在flash已经被抛弃,h5播放的时代,网上实现大多不是特别完整的(比如拿到一个rtsp或者rtmp,也不知道怎么在h5页面直接播放),当然现在直播点播有很多方式,可以通过nginx带flv模块的当rtmp服务、还有srs等流媒体服务,而这里我们通过javacv来处理,事实上javacv在性能足够,底层ffmpeg也是通过c实现,使用java调用c跟使用c++去调用c差不了多少毫秒延迟。java流媒体资料比较少,而此源码目前也比较简单,可读性比较强,有能力者完全能自主改成java分布式流媒体。随着人工智能图像识别的发展,从流媒体获取数据是必要条件,有bug希望你们也能及时提出,也欢迎各位流媒体大佬指点,一起把java流媒体社区壮大。