海康、大华摄像头chrome高版本实时播放(java集成)

本文介绍了如何在Windows服务器上部署Nginx、ffmpeg,实现RTSP到RTMP的转换,并使用Video.js播放器播放。步骤包括摄像头信息检测、流验证、配置Nginx和FFmpeg,以及集成到Java项目的转码控制。
摘要由CSDN通过智能技术生成

转载自:https://blog.csdn.net/u011877155/article/details/83750651

部署nginx、ffmpeg转为rtmp、利用video.js播放,无需浏览器安装插件

摄像头采用大华的,这里提供一个大华摄像头ip搜索软件(用于检测同一网段下在线摄像头设备信息)

地址:https://download.csdn.net/download/u011877155/10765657

环境:windows 服务器

vcl视频播放器https://download.csdn.net/download/u011877155/10765708

1、查看摄像头信息:首先打开上面ip搜索软件,获取摄像头ip,查看主码流,视频编码等。如果知道摄像头地略过

2、确认提供流是否能够播放:打开vlc播放器【媒体–》打开网络串流,输入流地址】。这里大华提供的rtsp流地址,

【rtsp://账号:密码@IP地址:544/cam/realmonitor?channel=1&subtype=0\】【端口号默认544,通道号channel默认1,主码流为        0(即subtype=0),辅码流为1(即subtype=1)】

3、将nginx、ffmpeg 解压后放置c盘根目录。配置环境变量path:C:\ffmpeg\bin

相关文件地址:https://download.csdn.net/download/u011877155/10765746

4、启动nginx【运行文件中的exe文件,运行一闪之后任务管理器查看nginx.exe进程存在即可】

4、验证是否配置成功:cmd 输入ffmpeg 提示一大段话即可

4、cmd中输入

   ffmpeg -i "rtsp://admin:dsgbridge@192.168.1.102:554//cam/realmonitor?channel=1&subtype=0" -vcodec  h264   -f flv -an "rtmp://localhost/live"

回车后控制台持续打印转流信息

5、打开vcl播放器,播放rtmp://localhost/live,看看是否成功

这样转流步骤就完成了,下面集成进java即可

1、设置项目启动自动启动ngix服务,创建线程,项目启动时启动。建议不要集成,直接在服务器启动一次即可

public class nginx extends Thread {
public void run(){
String cmd = “cmd /c c: && cd nginx && start nginx”;
//String stop =“cmd /c E: && cd nginx && nginx.exe -s quit”;
Runtime run = Runtime.getRuntime();
try {
java.lang.Process process = run.exec(cmd);
InputStream in = process.getInputStream();
System.out.println(cmd);
while (in.read()!=-1){
System.out.println(in.read());
}
in.close();
process.waitFor();
System.out.println(“nginx启动成功”);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}

}
public static void main(String[] args) {
	new nginx().start();
}

}
2、启动转流代码

附上编写好的工具类https://download.csdn.net/download/u011877155/10765835

在javaweb中直接调用

public static Map<String,String> maps= new HashMap<>();
public static FFmpegManager manager = new FFmpegManagerImpl();
//启动视频转码
@RequestMapping(value = “/zhuanma”)
public void zhuanma(String ip,String code,HttpServletResponse response, HttpServletRequest request){

	try {
		 
		Map<String,String> map = new HashMap<>();
		map.put("appName",code);//code为客户端编码
		map.put("input", "\"rtsp://admin:dsgbridge@"+ip+"/cam/realmonitor?channel=1&subtype=0\"");
		map.put("output", "\"rtmp://localhost/live/\"");
		map.put("codec", "h264");
		map.put("fmt", "flv");
		map.put("fps", "25");
		map.put("rs", "640x360");
		map.put("twoPart", "0");

	    //执行任务,id就是appName,如果执行失败返回为null
		String id=manager.start(map);
	   // 将转流放入静态map中用于关转流
		maps.put(code+ip,id);
	  //  manager.stop(id);
		System.out.println(code+ip+"流已开启");
	} catch (Exception e) {
		 e.getStackTrace() ;
	}
}
//关闭转流
@RequestMapping(value = "/guanbi")
public void guanbi(String codeip,HttpServletResponse response, HttpServletRequest request){
	    	
	try {
		manager.stop(maps.get(codeip));
		System.out.println(codeip+"流已关闭");
	} catch (Exception e) {
		 e.getStackTrace() ;
	}
}

后端完成,下面是前端展示

引入js

这是在线的,局域网的话自己百度下载一个 src写入rtmp://localhost/live流即可,code客户端编码可以随意输入,我这了是要区分不同浏览器客户端打开不同ip摄像头的记录,用于关闭对应流,节省资源,记得启用浏览器flash。。。好像flash也要被淘汰,但是目前只能这样

注:暂未将nginx、ffmpeg等文件集成在我提供的jar中,可以将这这2个文件集成到jar,这样只需要一个jar,全部搞定。不过没啥难度,懒得弄了。

下面放上jar的源码。提供大家修改优化。https://download.csdn.net/download/u011877155/10765896

原文链接:https://blog.csdn.net/u011877155/article/details/83750651

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity是一款跨平台的游戏引擎,可以用于开发游戏、虚拟现实和增强现实应用程序。而海康是一家专业的视频监控设备制造商。结合Unity和海康摄像头,开发者可以实现摄像头实时播放的功能。 要实现unity海康摄像头实时播放demo,首先需要下载并安装海康SDK并引入Unity项目中。然后在Unity中创建一个Camera对象,并在脚本中使用海康SDK提供的接口进行摄像头的连接与实时播放配置。 在Unity中,可以监听海康摄像头的视频流数据,并将其渲染到指定的Texture上。通过设置Texture的像素数据,不断更新纹理数据,就能够实现实时播放。同时,可以调整视频的参数、画面的显示大小等等。 在开发过程中,也可以根据需要,添加一些附加功能,比如显示摄像头的画面控制面板、添加音频处理功能等。使用Unity的强大功能,也可以利用物理引擎、光照等特Effect的特性,提升演示效果。 总结来说,通过整合Unity和海康摄像头的SDK,开发者可以实现一个基于Unity的实时摄像头播放demo。这个demo可以用于展示、教学和模拟等各种应用场景。同时,开发者也可以根据需求,添加各种附加功能,进一步丰富和完善demo的功能和体验。 ### 回答2: Unity 是一种跨平台的游戏引擎,可用于开发游戏、虚拟现实和增强现实等应用。 海康摄像头是一种常见的安防监控摄像设备,具备清晰度、远距离监控和实时播放等特点。 在 Unity 中,我们可以使用海康摄像头实时播放的功能来开发监控应用。首先,我们需要将海康摄像头的 SDK 导入 Unity 中,并配置摄像头的 IP 地址、端口和登录信息。 接着,在 Unity 中创建一个场景,添加一个摄像机对象作为预览窗口。通过调用海康摄像头的 API,我们可以初始化摄像头实例并将其绑定到预览窗口中。这样,在游戏运行时,我们就可以看到摄像头实时画面了。 为了实现更多功能,我们还可以在 Unity 中添加一些交互元素,比如在画面上添加按钮,用于控制摄像头的旋转、放大和缩小;或者添加一些图形标识,用于标记特定目标或区域。 此外,我们还可以根据需要,对摄像头实时画面进行处理和分析。比如,通过图像识别算法检测画面中的人脸或车辆;或者通过计算机视觉技术,对画面进行计数、跟踪和行为分析等。 总结来说,通过 Unity 和海康摄像头的结合,我们可以开发出功能强大且具有交互性的实时监控应用。无论是用于安防领域还是其他领域,这种解决方案都能够提供质量的摄像头播放实时图像处理功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值