# EasyMedia
#### 介绍
Springboot、netty实现的http-flv、websocket-flv流媒体服务(可用于直播点播),支持rtsp、h264、h265等、rtmp等多种源,h5纯js播放(不依赖flash),不需要依赖nginx等第三方,低延迟(支持识别h264、aac编码自动转封装)。
> 距离上次更新已经时隔半年多了,由于业余时间还有其他事要做,此1.x版本到此不再维护了,但是依旧抽空在写2.0版本,重新封装了一下,封装成player这种形式(类似一些播放器api)、对线程、稳定性还有hls做了优化,后续尽快会发布2.0版本。
> 有些人的编码不是h264 aac,强烈建议把视频流换成这个,因为可以转封装,延迟低(1s内)、cpu占用低(几乎不怎么占用)
如果是其他编码比如h265 pcm会进行转码,有些流不是标准rtsp视频协议或者的数据不完整,转码的时候会出现异常,转码会消耗cpu、并且延迟在5s内(最新版的特性延迟更低,本人亲测h265的相机即便转码延迟也就2s)
> 有时候因为网络异常断开,这种情况怎么处理,由于重连是客户端做的事情,所以可以参考 https://blog.csdn.net/Janix520/article/details/119567408
##### 最新成品下载(支持window、linux,mac用户修改pom依赖,自行编译,如需云台,sdk放在jar同级目录即可)
链接: https://pan.baidu.com/s/1pkuaDsosHsuGKR4qZK-3jA 提取码: t32b 复制这段内容后打开百度网盘手机App,操作更方便哦
--来自百度网盘超级会员v5的分享
```
//自行打包
mvn clean package -Dmaven.test.skip=true
```
前端源码也可以从群中获取
QQ交流群 873959305
[前端源码传送门](https://download.csdn.net/download/Janix520/15785632 "前端源码传送门")
#### 构建 基于 Oracle-jdk 8 的 Maven 镜像
```dockerfile
FROM centos:7.9.2009
# java
ARG JAVA_VERSIOIN=1.8.0
SHELL ["/bin/bash", "-c"]
ENV BASH_ENV ~/.bashrc
ENV JAVA_HOME /usr/local/jdk-${JAVA_VERSIOIN}
ENV PATH ${JAVA_HOME}/bin:$PATH
RUN \
# Install JDK
if [ "$JAVA_VERSIOIN" == "1.8.0" ]; \
then \
yum -y remove java-1.8.0-openjdk \
&& curl -fSL https://files-cdn.liferay.com/mirrors/download.oracle.com/otn-pub/java/jdk/8u121-b13/jdk-8u121-linux-x64.tar.gz -o openjdk.tar.gz \
&& mkdir -pv /usr/local/jdk-1.8.0 && tar -zxvf openjdk.tar.gz -C /usr/local/jdk-1.8.0 --strip-components 1 \
&& rm -f openjdk.tar.gz \
&& echo "export JAVA_HOME=/usr/local/jdk-${JAVA_VERSIOIN}" >> ~/.bashrc \
&& echo "export PATH=\"/usr/local/jdk-${JAVA_VERSIOIN}/bin:$PATH\"" >> ~/.bashrc \
&& echo "export JAVA_HOME PATH " >> ~/.bashrc \
&& cat ~/.bashrc \
&& source ~/.bashrc ; \
fi \
# Test install
&& ls -l /usr/local/ \
&& javac -version
ARG MAVEN_VERSION=3.5.3
ENV M2_HOME /opt/apache-maven-$MAVEN_VERSION
ENV JAVA_HOME /usr/local/jdk-${JAVA_VERSIOIN}
ENV maven.home $M2_HOME
ENV M2 $M2_HOME/bin
ENV PATH $M2:$PATH:JAVA_HOME/bin
RUN curl -f -L https://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz | tar -C /opt -xzv \
&& rm -f gradle.zip \
&& echo "export M2_HOME=/opt/apache-maven-${MAVEN_VERSION}" >> ~/.bashrc \
&& echo "export MAVEN_HOME=${M2_HOME}" >> ~/.bashrc \
&& echo "export M2=${M2_HOME}/bin" >> ~/.bashrc \
&& echo "export PATH=\"$M2:$PATH:JAVA_HOME/bin\"" >> ~/.bashrc \
&& echo "export M2_HOME MAVEN_HOME M2 PATH " >> ~/.bashrc \
&& cat ~/.bashrc \
&& source ~/.bashrc \
&& ls -l /opt \
&& mvn -v \
CMD ["mvn","-version"]
```
#### 功能汇总 (不知道怎么使用的可以直接看wiki,简洁明了)
- 支持播放 rtsp、rtmp、http、文件等流……
- pc端桌面投影
- 支持永久播放、按需播放(无人观看自动断开)
- 自动判断流格式h264、h265,自动转封装
- 支持http、ws协议的flv
- 支持hls内存切片(不占用本地磁盘,只占用网络资源)
- 重连功能
- 支持javacv、ffmpeg方式切换
- 云台控制(目前只支持海康、大华待更新)
#### 软件架构
- netty负责播放地址解析及视频传输,通过javacv推拉流存到内存里,直接通过输出到前端播放
- 后端:springboot、netty,集成websocket
- 前端:vue、html5(简单的管理页面)
- 播放器:西瓜播放器 http://h5player.bytedance.com/ (字节跳动家的,不介绍了,抖音视频、西瓜视频都杠杠的,当然只要支持flv的播放器都可以)
- 媒体框架:javacv、ffmpeg
#### 使用教程
> 流媒体服务会绑定两个端口,分别为 8866(媒体端口)、8888(web端口,后续会做简单的管理页面)
您只需要将 {您的源地址} 替换成您的,然后放播放器里就能看了
- 播放地址(播放器里直接用这个地址播放)
```
http://localhost:8866/live?url={您的源地址}
ws://localhost:8866/live?url={您的源地址}
```
**请直接阅读wiki或者doc中文档!!!**
#### 疑问解答
- 在vlc、ffplay等播放器测试存在延迟较高是正常的,是因为他们默认的嗅探关键帧的时间比较长,测延迟建议还是用flv.js播放器测试。
- 是否需要ffmpeg推流,不需要,就是为了简化使用,只需运行一个服务即可。
- 很多人想用文件点播,可以参考截图(目前对文件播放未做优化,可以参考)。
#### 截图
![](https://img-blog.csdnimg.cn/img_convert/5458642d79f2cc7cc8fc9aadb7e71a2c.png)
![](https://img-blog.csdnimg.cn/img_convert/9f70cd21c02bdac7a364eb0214bf6b51.png)
![](https://img-blog.csdnimg.cn/img_convert/e857b7d87ecfcfc968440a1262bf5e38.png)
![](https://img-blog.csdnimg.cn/img_convert/72a466d144092ab6bfba59f4cc86c9f7.png)
#### 源码教程
1. 环境:java8+
2. 标准的maven项目,sts、eclipse或者idea导入,直接运行main方法
#### 更新说明 2022-04-18
- 优化几个常见bug
#### 更新说明 2021-09-17
- 升级javacv1.5.6
- 完善海康云台控制接口
- 修复ffmpeg rtmp播放不了问题
- 优化打包,移除不需要的平台(mac等),目前支持window、linux,包大小到100m内
#### 更新说明 2021-07-16
- 升级javacv1.5.5,解决花屏问题,提升启动运行速度
- 移除camera.json,采用h2数据库,运行jar同级目录会生成emdata文件夹
- 新增jpa自动创建表,mybatis-plus等
- 其他乱七八糟优化
#### 更新说明 2021-06-06
- 新增支持使用ffmpeg推拉流,提高兼容稳定性(流几乎全支持,再无花屏,绿色杠杠啥的)
- 新增“hls内存切片”,不占用本地磁盘读写,速度你懂的,只占用网络资源,目前默认全部转码,延迟在5秒左右,稍微费点cpu
- 优化接口、优化服务、新增其他配置参数
- 新增pc端桌面投影
- 更新前端功能
- 完善项目注释
- 新增启动logo
#### 更新说明 2021-05-21
- 支持转复用或转码,h264的流支持自动转封装,超低延迟
#### 更新说明 2021-05-18
- 解决大华等带有参数的地址解析问题
#### 更新说明 2021-03-14
- 新增简单的web页面管理
- 优化自动断开
- 新增服务端自动重连
- 支持本地文件点播
- 支持启动服务自动推流
- 支持音频转码
- 启动服务前初始化资源(防止第一次启动慢)
- 新增保存数据到同级目录的camera.json
#### 更新说明 2021-02-20
- 移除原有spring websocket,采用高性能的netty作为http、ws服务。
- 完善关闭流逻辑,没人看时会自动断开。
- 由于替换netty,考虑到视频文件需要上传到服务器,所以暂时移除本地文件支持。
#### 关于LICENSE
有人问这个能否商用,能,本软件采用MIT宽松协议,但是注意软件里面应
没有合适的资源?快使用搜索试试~ 我知道了~
基于netty的http-flv推流demo
共131个文件
java:39个
dll:30个
lib:7个
需积分: 0 1 下载量 150 浏览量
2022-09-23
20:08:59
上传
评论
收藏 24.88MB ZIP 举报
温馨提示
基于netty的http-flv推流demo
资源详情
资源评论
资源推荐
收起资源包目录
基于netty的http-flv推流demo (131个子文件)
mvnw.cmd 6KB
chunk-vendors.c470e980.css 204KB
chunk-5966d100.79d1b1c9.css 446B
chunk-42abfb43.79d1b1c9.css 446B
camera.mv.db 24KB
PlayCtrl.dll 4.27MB
libmmd.dll 3.1MB
HCCore.dll 2.15MB
HCGeneralCfgMgr.dll 2.07MB
GdiPlus.dll 2.07MB
hlog.dll 2.01MB
libeay32.dll 1.6MB
HCIndustry.dll 1.58MB
HWDecode.dll 1.54MB
HCCoreDevCfg.dll 1.45MB
HCNetSDK.dll 1.19MB
HCDisplay.dll 1.19MB
HCPreview.dll 1.13MB
HCVoiceTalk.dll 986KB
libiconv2.dll 965KB
HCAlarm.dll 916KB
HCPlayBack.dll 907KB
StreamTransClient.dll 825KB
NPQos.dll 610KB
YUVProcess.dll 532KB
OpenAL32.dll 453KB
SystemTransform.dll 433KB
AudioIntercom.dll 413KB
MP_Render.dll 397KB
ssleay32.dll 355KB
EagleEyeRender.dll 300KB
AnalyzeData.dll 269KB
SuperRender.dll 248KB
hpr.dll 147KB
AudioRender.dll 139KB
Dockerfile 804B
.dockerignore 79B
ClientDemo.exe 19.23MB
.gitignore 395B
ws.html 2KB
index.html 1KB
testHls.html 1KB
testFlv.html 892B
favicon.ico 4KB
favicon.ico1 4KB
jna.jar 985KB
jna.jar 777KB
examples.jar 283KB
examples.jar 283KB
maven-wrapper.jar 50KB
HCNetSDK.java 180KB
MediaTransferFlvByJavacv.java 16KB
MediaTransferFlvByFFmpeg.java 16KB
MediaConvert.java 10KB
FlvHandler.java 9KB
MediaService.java 7KB
CloudCtrlController.java 6KB
StreamController.java 5KB
MavenWrapperDownloader.java 5KB
HlsController.java 5KB
InitServer.java 4KB
MediaTransferHls.java 4KB
MediaServer.java 4KB
LoginPlay.java 3KB
AjaxResult.java 3KB
HlsService.java 3KB
CloudCode.java 2KB
CacheMap.java 2KB
Main.java 2KB
Control.java 2KB
EasyMediaApplication.java 2KB
FileStaticConfig.java 1KB
TempData.java 1KB
MyNativeLong.java 1KB
CameraDto.java 1KB
MediaTransfer.java 1KB
CtrlSessionListener.java 1KB
Camera.java 954B
MybatisPlusConfig.java 801B
GlobalExceptionHandler.java 654B
MediaConstant.java 587B
FMSGCallBack.java 472B
MediaStreamReader.java 464B
CameraVo.java 410B
ClientType.java 402B
CameraCtrl.java 251B
CameraMapper.java 237B
EasyMediaApplicationTests.java 201B
TransferCallback.java 146B
chunk-vendors.1c6d0c81.js 844KB
chunk-189cbde2.4be8273d.js 484KB
chunk-5966d100.aed15b3d.js 301KB
chunk-42abfb43.5eae0f08.js 13KB
app.ea1e6c95.js 6KB
chunk-2d0d5c31.d040fb8c.js 5KB
GdiPlus.lib 211KB
HCCore.lib 210KB
HCNetSDK.lib 206KB
PlayCtrl.lib 89KB
HCGeneralCfgMgr.lib 46KB
共 131 条
- 1
- 2
mio!!
- 粉丝: 8
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 三菱PLC(Mitsubishi)通讯协议的C#实现,支持FX、Q系列的ASCII-3E、BIN-3E、FX串口格式
- 五一建模20242024
- rainy-day.jpg
- IMG_20240501_171218.jpg
- Swift-内购封装swift版本
- 经典CNN网络之ResNet 图像分类网络实战项目:7种小麦叶片病害分类(迁移学习)
- Java毕设之ssm010基于ssm的新能源汽车在线租赁管理系统+vue.rar
- Java毕设之ssm009毕业生就业信息统计系统+vue.rar
- Java毕设之ssm008医院门诊挂号系统+jsp.rar
- Java毕设之ssm007亚盛汽车配件销售业绩管理统+jsp.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0