HLS:HTTP Live Streaming,是由苹果公司提出的基于HTT的流媒体网络传输协议。他的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从愈多不同的备用源中以不同的速率下载同样的资源,允许流媒体绘画适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含源数据的extended M3U(m3u8)playlist文件,用于寻找可用的媒体流。
rtmp流属于flv格式只能用flash播放,故需要flash插件支持;但现在flash将被废除,在2020年底,chrome、FireFox等主流浏览器都不支持flash,虽然flash在中国有特供版,但终究不是长久之计。所以我们考虑用hls。其实各大视频现在都采用了hls,并且还使用了blob加密。事实证明,hls比flash安全稳定多了,果然抵不过苹果的真香定律。
2、具体实现
第一步:
1、先下载海康威视的设备网络SDK,根据自己的运行环境选择合适版本。
我下载的是CH-HCNetSDKV6.1.4.42_build20200527_win64,所以解压后是这样的。
可以参考demo示例,编写自己的程序。
2、修改HCNetSDK类中的HCNetSDK地址,改为自己项目的HCNetSDK.dll地址。可以用一个方法来获取项目的HCNetSDK.dll。
/** * 获取项目webapp目录 * @return */publicstatic StringgetWebPath(){ String path=(com.haikang.demo.hk.CommonKit.class.getResource("/").getPath()).replaceAll("%20"," ").substring(1).replace("bin","SDK").replace("/","\\"); System.out.println(path);try{ String DLL_PATH= java.net.URLDecoder.decode(path,"utf-8");}catch(UnsupportedEncodingException e){ e.printStackTrace();}return DLL_P