当我尝试使用 VideoWriter 编写帧时,它不起作用。我已经尝试了很多 FOURCC 代码,例如 defaul、h264、mjpg、divx、xvid 等。是的,我已经安装了具有所有必要配置的 ffmpeg(--enable-shared、--enable-libx264、... ) 并且 opencv 安装支持 ffmpeg。
我已经在谷歌上搜索了很多,而我发现的所有内容都几乎没有解决这个问题,这在 OpenCV 中经常出现。该代码可能是最简单的,并且在几周前就可以使用,但并非没有。
一些见解: get(CV_CAP_PROP_FPS) 返回未知选项消息,值为 -1(对于集合也是如此)。opencv的cmake过程的以下部分也很有趣:
-- Could NOT find Jasper (missing: JASPER_LIBRARIES JASPER_INCLUDE_DIR)
-- checking for module 'gstreamer-video-1.0'
-- package 'gstreamer-video-1.0' not found
-- checking for module 'gstreamer-app-1.0'
-- package 'gstreamer-app-1.0' not found
-- checking for module 'gstreamer-riff-1.0'
-- package 'gstreamer-riff-1.0' not found
-- checking for module 'gstreamer-pbutils-1.0'
-- package 'gstreamer-pbutils-1.0' not found
-- checking for module 'gstreamer-base-0.10'
-- package 'gstreamer-base-0.10' not found
-- checking for module 'gstreamer-video-0.10'
-- package 'gstreamer-video-0.10' not found
-- checking for module 'gstreamer-app-0.10'
-- package 'gstreamer-app-0.10' not found
-- checking for module 'gstreamer-riff-0.10'
-- package 'gstreamer-riff-0.10' not found
-- checking for module 'gstreamer-pbutils-0.10'
-- package 'gstreamer-pbutils-0.10' not found
-- Looking for linux/videodev.h
-- Looking for linux/videodev.h - not found
-- Looking for linux/videodev2.h
-- Looking for linux/videodev2.h - found
-- Looking for sys/videoio.h
-- Looking for sys/videoio.h - not found
-- Looking for libavformat/avformat.h
-- Looking for libavformat/avformat.h - found
-- Looking for ffmpeg/avformat.h
-- Looking for ffmpeg/avformat.h - not found
Opencv 2.4.10 Ubuntu 14.04
编辑:我发现问题是 VideoWriter 对象没有打开,即使在构造函数调用之后:
VideoWriter wr(outputFile, CV_FOURCC('D','I','V','X'), capture.get(CV_CAP_PROP_FPS,Size(capture.get(CV_CAP_PROP_FRAME_WIDTH),capture.get(CV_CAP_PROP_FRAME_HEIGHT)));
并且使用 CV_CAP_PROP_FPS 使 OpenCV 在 secution time 显示以下消息:
HIGHGUI ERROR: V4L2: Unable to get property <unknown property string>(5) - Invalid argument
为什么这个 hqppen,我该如何解决?