java视频监控二次开发
工具环境:
- SADP设备网络搜索软件:改密,查询海康设备参数型号,访问地址等
- VLC mdeia player网络视频流测试工具
如果不知道摄像头网段(或ip)如何找回
可以使用[Wireshark](http://www.wireshark.org的软件,可以抓取数据包进行解析,启动软件开始抓包了。抓包前最好把摄像头直接用网线和电脑网口连接,排除其它设备的干扰,也好对抓包结果进行分辨,主机IP随便设置都行。摄像头和电脑连接好后,看到指示灯亮,偶尔有规律的闪烁,说明有数据传输,就可以开始了,如果没有重启下摄像头,通电时会进行通信。
参考:https://www.mydigit.cn/thread-399479-1-1.html
总结
视频设置有两种一种通过硬盘录像机管理所有单个录像摄像头进行直播,二是单个摄像头进行直播流设置
RTSP端口
查看登陆设备:高级->网络->端口->RTSP
应用:
1 2
| ffmpeg -rtsp_transport tcp -i rtsp://admin:12345@192.0.0.63:554/h264/ch1/main/av_stream -vcodec copy -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 704x576 -q 10 -f flv rtmp://127.0.0.1:1935/hls/video1
|
SDK 端口/服务端口
高级->网络->端口->SDK端口或服务端口
硬盘录像机:服务端口,应用hikvision_port=2004
其中2004为服务端口(也叫sdk端口)
摄像头:sdk端口,应用hikvision_video_username_password2 = 34,192.168.1.193,8000,admin,12345
其中8000为服务端口(也叫sdk端口)
控制原理
dvr视频录像机统一 做直播预览与回放
1 2 3 4 5 6 7 8 9 10 11 12
|
rtsp://admin:12345@192.168.1.195:5555/Streaming/tracks/101?starttime=20180911t063812z&endtime=20180911t064816z
rtsp://admin:12345@192.168.1.195:5555/Streaming/Channels/
ffmpeg -rtsp_transport tcp -i "rtsp://admin:12345@192.168.1.195:5555/Streaming/tracks/101?starttime=20180911t063812z&endtime=20180911t064016z" -max_muxing_queue_size 10240 -vcodec copy -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 -f flv "rtmp://127.0.0.1:1935/hls/video7"
|
回放下载
回访下载,然后实时播放增长的文件,可以用vlc播放,但是ckplayer播放不了,需要解码,可以用ffmpeg命令,因此做实施解码相对比较麻烦
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| NativeLong hPlayback; String filename=sFileName+".mp4"; String flvfilename=sFileName+".flv"; String savePath=recordStore+filename;
File file=new File(savePath); logger.info("创建目录:"+file.getParentFile()); if (!file.getParentFile().exists()) { boolean result = file.getParentFile().mkdirs(); if (!result) { logger.info("创建失败"); } }
if (file.exists()){ logger.info("已经在下载了"); return; }
if( (hPlayback = hCNetSDK.NET_DVR_GetFileByName(nUserId, sFileName, savePath)).intValue() < 0 ){ logger.error( "GetFileByName failed. error[%d]\n"+hCNetSDK.NET_DVR_GetLastError()); return; }
if(!hCNetSDK.NET_DVR_PlayBackControl_V40(hPlayback, hCNetSDK.NET_DVR_PLAYSTART, null,0,null,null)) { logger.error("play back control failed [%d]\n"+hCNetSDK.NET_DVR_GetLastError()); return; }
if (!ExecuteCodecs.exchangeToFlv(ffmpegBin, savePath,recordStore+ flvfilename)){ logger.error("mp4 to flv \n"); }
|
2012年之前的设备支持老的取流格式,之后的设备新老取流格式都支持。
【老URL,小于64路的NVR或混合录像机的IP通道从33开始;大于等于64路的NVR的IP通道从1开始】
rtsp://username:password@<ipaddress>/<videotype>/ch<number>/<streamtype>
详细描述:
举例说明:
DS-9016HF-ST的IP通道01主码流:
rtsp://admin:12345@172.6.22.106:554/h264/ch33/main/av_stream
DS-9016HF-ST的模拟通道01子码流:
rtsp://admin:12345@172.6.22.106:554/h264/ch1/sub/av_stream
【新URL,通道号全部按顺序从1开始】
详细描述:
rtsp://username:password@<address>:<port>/Streaming/Channels/<id>(?parm1=value1&parm2-=value2…)
举例说明:
DS-9632N-ST的IP通道01主码流,:
rtsp://admin:12345@172.6.22.234:554/Streaming/Channels/101
DS-9632N-ST的IP通道01子码流:
rtsp://admin:12345@172.6.22.234:554/Streaming/Channels/102