我在java中使用opencv3.1.0。我想把视频保存到文件中,但是录影器不能打开。我的代码如下:
Size size = new Size(capture.get(Videoio.CAP_PROP_FRAME_WIDTH), capture.get(Videoio.CAP_PROP_FRAME_HEIGHT));
double fps = capture.get(Videoio.CAP_PROP_FPS);
VideoWriter vw = new VideoWriter("/home/sify/1.mp4", VideoWriter.fourcc('X', '2', '6', '4'), fps, size, true);vw.isOpened()返回false。没有创建任何文件。
我怀疑四‘s是不是出了什么问题。
我尝试使用H 264/XVID/FMP4 4/MPEG,并尝试将第二个参数替换为(int)capture.get(Videoio.CAP_PROP_FOURCC),也不起作用。
发布于 2019-07-11 18:59:36
openCV下载包含动态链接库文件opencv_ffmpeg343_64.dll中的mp4编解码器。要使JVM看到这一点,请在打开VideoWriter之前运行如下行。
System.setProperty("java.library.path", "C:\pathToFolderContainingDLL")
val fieldSysPath = ClassLoader::class.java.getDeclaredField("sys_paths")
fieldSysPath.isAccessible = true
fieldSysPath.set(null, null)
//next time path is accessed, the new path will be imported
System.loadLibrary("opencv_ffmpeg343_64")发布于 2017-10-09 13:56:10
问题是编解码,试试这个。
int fourcc = VideoWriter.fourcc('m','j','p','g');
Size frameSize = new Size((int) videoCapture.get(Videoio.CAP_PROP_FRAME_WIDTH),(int) videoCapture.get(Videoio.CAP_PROP_FRAME_HEIGHT));
VideoWriter videoWriter = new VideoWriter("testfile.avi", fourcc, 20, frameSize, true);
if (videoCapture.read(frame))
videoWriter.write(frame);https://stackoverflow.com/questions/36041735
复制相似问题