在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:EasyMedia开源软件地址:https://gitee.com/52jian/EasyMedia开源软件介绍:EasyMedia介绍Springboot、netty实现的http-flv、websocket-flv流媒体服务(可用于直播点播),支持rtsp、h264、h265等、rtmp等多种源,h5纯js播放(不依赖flash),不需要依赖nginx等第三方,延迟大部分在1-5秒内(已经支持转复用,h264的流自动转封装,超低延迟。PS:当然还有种更低延迟的不用flv方案没时间写了,但是主要是flv比较大众,这个一般也够用了)。 链接:https://pan.baidu.com/s/1kx3pwYVG_HfAt8JmQti86g提取码:kvuj--来自百度网盘超级会员V4的分享 PS:项目里已经集成最新版编译好的前端,由于前端只是个demo,这里是没有hls功能的版本,hls前端播放比较简单,我就懒得上传了 功能汇总 (不知道怎么使用的可以直接看wiki,简洁明了)
软件架构
使用教程
http://localhost:8866/live?url={您的源地址}ws://localhost:8866/live?url={您的源地址}例如rtsp:http://localhost:8866/live?url=rtsp://admin:[email protected]:554/Streaming/Channels/102ws://localhost:8866/live?url=rtsp://admin:[email protected]:554/Streaming/Channels/102文件(支持格式参照ffmpeg支持的格式):http://localhost:8866/live?url=d:/flv/testVideo.mp4ws://localhost:8866/live?url=d:/flv/testVideo.mp4电脑桌面投影(url改成desktop即可):http://localhost:8866/live?url=desktopws://localhost:8866/live?url=desktop
永久播放还有一种捷径,就是在播放地址后面加上autoClose=false参数,也会加入到json中。例如:http://localhost:8866/live?url=rtsp://admin:[email protected]:554/Streaming/Channels/102&&&autoClose=falsews://localhost:8866/live?url=rtsp://admin:[email protected]:554/Streaming/Channels/102&&&autoClose=false###hls播放例子:(注意:hls为http端口8888,并且不支持url后面参数,开启切片后可以播放)http://localhost:8888/hls?url=rtsp://admin:[email protected]:554/Streaming/Channels/102
参数加在播放地址url最后面,使用 [&&&] 符号例如:http://localhost:8866/live?url=rtsp://admin:[email protected]:554/Streaming/Channels/102&&&autoClose=false&&&ffmpeg=truews://localhost:8866/live?url=rtsp://admin:[email protected]:554/Streaming/Channels/102&&&autoClose=false&&&ffmpeg=true###autoClose=false 设置为永久播放ffmpeg=true 使用ffmpeg方式,提高兼容稳定性(不支持的流可以试试这个参数)//hls=true(目前还不支持此参数,只能api或者网页端控制开启)
目前支持海康相机,大华待更新http://localhost:8888/hk/ctrl?ip=192.168.2.120&op=left&username=admin&password=VZCDOYip 相机ipop 操作,up、down、left、right、left_up、left_down、right_up、right_down、big、smallusername 相机用户名password 相机密码port 控制端口(可不传)
可以访问 http://localhost:8888具体功能参照截图
新增流 http://localhost:8888/add?url={您的源地址}&remark={备注}停止并删除 http://localhost:8888/del?url={您的源地址}停止flv推流 http://localhost:8888/stop?url={您的源地址}开启flv推流 http://localhost:8888/start?url={您的源地址}开启hls切片 http://localhost:8888/startHls?url={您的源地址}停止hls切片 http://localhost:8888/stopHls?url={您的源地址}查看保存的流 http://localhost:8888/list
java -jar EasyMedia-x.x.x-SNAPSHOT.jar还可以这样改端口java -jar -Dserver.port=页面端口 -Dmediaserver.port=媒体端口 EasyMedia-x.x.x-SNAPSHOT.jar 疑问解答
截图源码教程
更新说明 2021-09-17
更新说明 2021-07-16
更新说明 2021-06-06
更新说明 2021-05-21
更新说明 2021-05-18
更新说明 2021-03-14
更新说明 2021-02-20
关于LICENSE有人问这个能否商用,能,本软件采用MIT宽松协议,但是注意软件里面应用了一些其他库javacv、ffmpeg等均是GPL协议,需要遵循此协议,只要不修改javacv、ffmpeg等具有GPL协议的软件,其他都能任意改,也可任意商用。 网上找的测试地址 安徽卫视,建议用自己内网的,公开的可能速度就比较慢 (有时候会失效,尽量用自己的)
为什么要写个这个现在flash已经被抛弃,h5播放的时代,网上实现大多不是特别完整的(比如拿到一个rtsp或者rtmp,也不知道怎么在h5页面直接播放),当然现在直播点播有很多方式,可以通过nginx带flv模块的当rtmp服务、还有srs等流媒体服务,而这里我们通过javacv来处理,事实上javacv性能足够,底层ffmpeg也是通过c实现,使用java调用c跟使用c++去调用c差不了多少毫秒延迟。java流媒体资料比较少,但从应用层来说,java有着庞大的生态优势,配合netty写出的流媒体性能可想而知,而此源码目前也比较简单,可读性比较强,有能力者完全能自主改成java分布式流媒体。随着人工智能图像识别的发展,从流媒体获取图像数据是必要条件,有bug希望你们也能及时提出。 最后感谢eguid的javacv文档,https://eguid.blog.csdn.net/ 后续计划
|
请发表评论