有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

opencv Java设置视频捕获。设置(CAP_PROP_FOURCC,编解码器值)

我想为VideoCapture设置一个编解码器

我找到了THIS LIST个编解码器。 既然VideoCapture.set(CAP_PROP_FOURCC, double value)需要一个double的编解码器值,而我还没有在JavaCV中找到将编解码器转换为double值的方法,我想知道如何将相关的编解码器传递给VideoCapture.set(CAP_PROP_FOURCC, double value)


共 (1) 个答案

  1. # 1 楼答案

    迟到总比不迟到好

    当我意识到以mpeg流的形式从相机中获取数据时,我会获得更好的性能(默认为YUY2时约10FPS,mpeg时约30FPS),我遇到了同样的问题。 设置FOURCC的诀窍是,首先确定各个FOURCC编解码器所需的“代码”,然后将属性“Videoio.CAP_PROP_FOURCC”设置为所确定的编解码器。对于任何给定的编解码器,可以通过“VideoWriter”类检索相关的“代码”

        int fourcc = VideoWriter.fourcc('M', 'J', 'P', 'G');
        videoCapture.set(Videoio.CAP_PROP_FOURCC, fourcc);
        videoCapture.set(Videoio.CAP_PROP_FRAME_WIDTH, CAP_FRAME_WIDTH);
        videoCapture.set(Videoio.CAP_PROP_FRAME_HEIGHT, CAP_FRAME_HEIGHT);
    

    请记住,在调整帧大小之前,必须设置FourCC,否则将无效。 上面的代码是针对openCV 3.0的。这个页面(虽然是C++的)为我指出了正确的方向:http://answers.opencv.org/question/6805/how-to-get-mjpeg-compression-format-from-webcam/