我正在尝试使用OpenCV将视频写入磁盘。该代码使用视频编写器对象以30帧/秒的.mpg格式保存文件。我使用CV_FOURCC宏指定了编解码器,如下所示:
VideoWriter put("test.mpg", CV_FOURCC('M','P','E','G'), 30, S);
当我执行代码时,出现错误:
userk@dopamine:~/Development/opencv-2.4.8/sketch/RegVideo$ ./vi
HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
OpenCV Error: Unsupported format or combination of formats (Gstreamer Opencv backend doesn't support this codec acutally.) in CvVideoWriter_GStreamer::open, file /home/userk/Development/opencv-2.4.8/modules/highgui/src/cap_gstreamer.cpp, line 505
terminate called after throwing an instance of 'cv::Exception'
what(): /home/userk/Development/opencv-2.4.8/modules/highgui/src/cap_gstreamer.cpp:505: error: (-210) Gstreamer Opencv backend doesn't support this codec acutally. in function CvVideoWriter_GStreamer::open
Aborted (core dumped)
我尝试了不同的编解码器,例如MPEG-1,motion-jpeg,MPEG-4.2,MPEG-4.3,MPEG-4,H263,H263I和FLV1,但它们均无效。问题似乎是V4L。
我尝试使用以下命令安装它,但在make之后出现错误:
wget http://www.linuxtv.org/downloads/v4l-utils/v4l-utils-0.9.3.tar.bz2
tar xvf v4l-utils-0.9.3.tar.bz2
cd v4l-utils-0.9.3
make
sudo make install
这是错误消息:
make [3]:* [qv4l2-moc_qv4l2.o]错误1
make [3]:离开目录
/home/userk/Development/opencv-2.4.8/dependencies/v4l-utils-1.0.1/utils/qv4l2'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
/home/userk/Development/opencv-2.4.8/dependencies/v4l-utils-1.0.1/utils'make [1]:[全部递归]错误1
make [1]:离开目录`/home/userk/Development/opencv-2.4.8/dependencies/v4l-utils-1.0.1'
make:** [全部]错误2
v4l有什么问题?您有什么建议吗?
最佳答案
检查此帖子:IP camera video streaming using openCV in VC++。
或这个http://opencv-srf.blogspot.fr/2011/09/capturing-images-videos.html。
关于c++ - 使用OpenCV创建视频-Gstreamer编解码器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22047746/