由于opencv对Java的跨平台兼容性不友好,javacv的作者为了方便跨平台编写opencv相关的代码,就有了集成opencv的javacv产生。
录制视频VideoCapture capture = new VideoCapture(0); //参数0是默认的摄像头
VideoWriter vw = new VideoWriter(); //videowrite是负责写每一帧视频
double fps = capture.get(CAP_PROP_FPS); //获取你的摄像头支持的最大fps
int fourcc = VideoWriter.fourcc((byte) 'M', (byte) 'J', (byte) 'P', (byte) 'G'); //视频的编码格式
double width = capture.get(CAP_PROP_frame_WIDTH);
double height = capture.get(CAP_PROP_frame_HEIGHT); // 视频的宽和高
vw.open("test001.avi", fourcc, fps, new Size((int) width, (int) height), true); //读取视频,参数一:视频名称,参数二:编码格式,参数三:fps,参数四:视频的宽高,参数五:没搞懂,设为false会怎样没实验
Mat frame = new Mat(); //每一帧图片,cv的拍照是读取一个frame,录制视频则要循环获取frame
// 录制10s视频,格式是avi,当有空帧直接跳出循环
for (int i = 0; i < fps * 11; i++) {
boolean f = capture.read(frame);
if (frame.empty()) break;
vw.write(frame);
}
//释放摄像头
capture.release();
注意事项
视频名称格外注意,要求有编号,如果想用时间格式,需要设置为:HH-mm-ss,中间有‘-’的才可以,至于为什么,不知,本人试验过了,不带‘-’会报错的,num...



