方式一:web3.0
此方式跟海康后台原理一样,安装WebComponentsKit插件,flash方式,推流稳定。支持H264和H265.缺点,只支持IE
下载路径
方式二:rtsp-web-converter-master
项目GitHub上找的,支持rtsp H.264推送,H.265不稳定
个人觉得是JavaAC哪里设置问题,贴出核心代码,希望懂的大佬,抚照一二
//grabber.setImageHeight(720);//grabber.setImageWidth(1280);stream = new ByteArrayOutputStream();recorder = new FFmpegFrameRecorder(stream, grabber.getImageWidth(), grabber.getImageHeight(),grabber.getAudioChannels());recorder.setInterleaved(true);recorder.setVideoOption("preset", "ultrafast");recorder.setVideoOption("tune", "zerolatency");recorder.setVideoOption("crf", "28");recorder.setPixelFormat(avutil.AV_PIX_FMT_YUVJ420P);recorder.setFrameRate(15);recorder.setGopSize(60);if (grabber.getAudioChannels() > 0) {recorder.setAudioChannels(grabber.getAudioChannels());recorder.setAudioBitrate(grabber.getAudioBitrate());recorder.setAudioCodec(avcodec.AV_CODEC_ID_AAC);}recorder.setFormat("flv");recorder.setVideoBitrate(2000000);recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);recorder.start();if (headers == null) {headers = stream.toByteArray();stream.reset();writeResponse(headers);}while (runing) {// 抓取一帧Frame f = grabber.grab();if (f != null) {try {// 转码recorder.record(f);} catch (Exception e) {}if (stream.size() > 0) {byte[] b = stream.toByteArray();stream.reset();writeResponse(b);if (outEntitys.isEmpty()) {log.info("没有输出退出");break;}}}Thread.sleep(5);}
方式1&2 下载地址
/download/zjy660358/12883451
方式三:rtsp_to_rtmp
本服务负责将各个监控设备的实时视频rtsp协议流,转换为rtmp协议流,推送给nginx的rtmp服务,
然后由nginx的rtmp模块将流切片,转换为m3u8+ts格式片断,然后由nginx对外提供web访问m3u8和ts片段的服务,供页面呈现
Gitee
试了一下,只支持H.264
时间紧迫,项目中监控采用方式一,但是其他效果IE不支持。硬件解决。分个屏幕单独看监控