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/
我想为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/