Java设置VideoCapture.set(CAP_PROP_FOURCC,编解码器值)

Java setting VideoCapture.set(CAP_PROP_FOURCC, codec value)

我想为VideoCapture设置编解码器。

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

迟到总比不到好...

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

    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/