技术研究之JavaCV
前沿
这里我使用的是 javacv + ffmpeg 进行操作
1.截图
传入一个 rtmp 流地址,然后借助于 FFmpeg 进行截图,代码如下:
1 | /** |
参考文章:
【1】.java拉rtmp视频流录制视频
【2】.javacv实现实时视频截图和录像服务easyCV Video recorder and snapshot(video image capture) library,based on javaCPP & javaCV & FFmpeg. 基于javaCV的跨平台视频录像和快照(视频截图)库,开箱即用。
【3】.实时视频流 javacv截图实现流程
【4】.javacv ffmpeg直播流拉取空帧 这里有直接连接读取 rtmp 流的方法。
【5】.使用JavaCV实现读取视频信息及自动截取封面图 这里用到了 OpenCVFrameConverter.ToIplImage converter = new OpenCVFrameConverter.ToIplImage();
【6】.Java,图像处理,OpenCV,JavaCV,BufferedImage与Mat格式转换 org.opencv.core.Mat与
org.bytedeco.javacpp.opencv_core.Mat,两种Mat格式,两者不互通,导入的依赖包也不同,Mat格式转换先将org.opencv.core.Mat转化为java.awt.image.BufferedImage,再将BufferImage转化为org.bytedeco.javacpp.opencv_core.Mat格式。
【7】. javaCV实现视频帧转码保存为图片 Java2DFrameConverter converter = new Java2DFrameConverter(); log.info(“开始转换图片”); bufferedImage = converter.convert(frame);
【8】.Java opencv把mat还原成图片
【1】.java拉rtmp视频流录制视频
【2】.javacv实现实时视频截图和录像服务easyCV Video recorder and snapshot(video image capture) library,based on javaCPP & javaCV & FFmpeg. 基于javaCV的跨平台视频录像和快照(视频截图)库,开箱即用。
【3】.实时视频流 javacv截图实现流程
【4】.javacv ffmpeg直播流拉取空帧 这里有直接连接读取 rtmp 流的方法。
【5】.使用JavaCV实现读取视频信息及自动截取封面图 这里用到了 OpenCVFrameConverter.ToIplImage converter = new OpenCVFrameConverter.ToIplImage();
【6】.Java,图像处理,OpenCV,JavaCV,BufferedImage与Mat格式转换 org.opencv.core.Mat与
org.bytedeco.javacpp.opencv_core.Mat,两种Mat格式,两者不互通,导入的依赖包也不同,Mat格式转换先将org.opencv.core.Mat转化为java.awt.image.BufferedImage,再将BufferImage转化为org.bytedeco.javacpp.opencv_core.Mat格式。
【7】. javaCV实现视频帧转码保存为图片 Java2DFrameConverter converter = new Java2DFrameConverter(); log.info(“开始转换图片”); bufferedImage = converter.convert(frame);
【8】.Java opencv把mat还原成图片
2.录屏
录屏的代码也是挺简单的,就是使用一个空的 recorder 进行处理。
1 | /** |
参考文章:
【1】.javacv利用ffmpeg实现录屏和录音,输出为mp4文件
【2】.javacv实现屏幕录制(一) 用FFmpegFrameGrabber创建屏幕录制采集,将采集到的帧数据追加到FrameGrabber,用FrameGrabber做视频输出。。。按照这个思路,你也能把数据采集改成摄像头采集。
【1】.javacv利用ffmpeg实现录屏和录音,输出为mp4文件
【2】.javacv实现屏幕录制(一) 用FFmpegFrameGrabber创建屏幕录制采集,将采集到的帧数据追加到FrameGrabber,用FrameGrabber做视频输出。。。按照这个思路,你也能把数据采集改成摄像头采集。