Записать видео с веб-камеры и сохранить его в Java - PullRequest
0 голосов
/ 09 июня 2019

Моя цель - снять видео с веб-камеры и сохранить его.Я уже могу делать фотографии с помощью веб-камеры.

Поэтому я использую API веб-камеры, предоставляемые sarxos.Теперь я хочу соединить изображения, чтобы получить видео.До сих пор я использовал OpenCV для этой цели.К сожалению, видео кажется ускоренным и имеет синий цвет.

      Runnable recordVideo = () -> {
            final int FPS = 30;
            final int WIDTH = 640;
            final int HEIGHT = 480;

            File output = new File('test.avi');
            webcam.setViewSize(new Dimension(WIDTH, HEIGHT));
            webcam.open();
            Java2DFrameConverter java2DFrameConverter = new Java2DFrameConverter();

            OpenCVFrameRecorder recorder = new OpenCVFrameRecorder(output, WIDTH, HEIGHT);
            recorder.setFrameRate(FPS);
            recorder.setVideoCodec(opencv_videoio.VideoWriter.fourcc((byte) 'M', (byte) 'J', (byte) 'P', (byte) 'G'));


            try {
                recorder.start();

                while (true) {
                    if (Thread.currentThread().isInterrupted()) {
                        break;
                    }
                    BufferedImage image = webcam.getImage();

                    recorder.record(java2DFrameConverter.convert(image));
                    try {
                        Thread.sleep(1000 / (long) FPS);

                    } catch (InterruptedException e) {
                        break;
                    }
                }
                recorder.stop();
                recorder.release();
                log.info("[RecorderService] Video recorded in file: " + output.getAbsolutePath());
                webcam.close();

            } catch (Exception e) {
                e.printStackTrace();
            }
        };

        recordVideoThread = new Thread(recordVideo);
        recordVideoThread.start();

pom.xmlоригинальный цвет?

...