2017-04-21 246 views
0

我想在JOGL(用于OpenGL的Java绑定)中使用JavaCV录制视频。JavaCV VideoWriter无法打开

这是打开的视频文件中的代码:

VideoWriter wv; 
wv.open("video.avi", CV_FOURCC_DEFAULT, 30 , new Size(width, height), true); 

的问题是,wv.isOpened()始终返回false并没有创建视频文件。

事情我已经尝试:

  • 更改 “video.avi” 到 “video.mp4”
  • 变化CV_FOURCC_DEFAULT为-1
  • 更改宽度,高度,FPS值

任何人都做到了这一点?

我的机器正在运行一个带有JavaCV v1.3.2和JOGL v2.3.2的Ubuntu 14.04 LTS。

+0

@aarelovich我想记录什么JOGL在我的电脑屏幕上绘制。我用'glReadPixels()'获得每帧的像素。关于这个决议,我已经尝试过我的屏幕1920x1080的分辨率和'reshape()'返回的1855x1056。 – dxb

回答

0

当使用OpenCV的与C++,我不得不定义这个常量:

const int VIDEO_CODEC_FOURCC = CV_FOURCC('M','J','P','G'); 

尝试使用CV_FOURCC功能和使用.avi文件扩展名,你原本做的事情。另外,请尝试确保相机的框架尺寸与您在宽度和高度上传递的尺寸相同。

+0

我已经使用该行,但我得到:_incompatible类型:可能有损转换从char到byte_。这可以通过铸造轻松修复。我通过CV_FOURCC((字节)'M',(字节)'J',(字节)'P',(字节)'G')改变了'CV_FOURCC_DEFAULT',现在创建了该文件。谢谢你的帮助! – dxb

+0

欢迎您光临!我已经为此付出了很多努力,所以我知道它的感觉 – aarelovich