Hello to everyone. I'm doing some video editing with OpenCV, I've started a project about a year and a half ago working on an Ubuntu machine and worked on Ubuntu and MacOsX since then.
Recently I've switched to Fedora, but I can't get OpenCV to function properly, as both the official Fedora's repository version (currently 2.4.7) and the latest snapshot compiled from source hang when I try to open a cv::videoWriter object, with this error:
* (dynfp:14853): CRITICAL *: gst_missing_encoder_message_new: assertion 'gst_caps_is_fixed (encode_caps)' failed
(dynfp:14853): GStreamer-CRITICAL **: gst_element_post_message: assertion 'message != NULL' failed OpenCV Error: Unspecified error (GStreamer: cannot link elements ) in CvVideoWriter_GStreamer::open, file /home/andrea/opencv/opencv/modules/highgui/src/cap_gstreamer.cpp, line 1335 terminate called after throwing an instance of 'cv::Exception' what(): /home/andrea/opencv/opencv/modules/highgui/src/cap_gstreamer.cpp:1335: error: (-2) GStreamer: cannot link elements in function CvVideoWriter_GStreamer::open
When I tried to compile opencv from source, during the initial cmake assertion phase, I noticed that it cannot find the header file avformat.h:
-- Looking for libavformat/avformat.h -- Looking for libavformat/avformat.h - not found -- Looking for ffmpeg/avformat.h -- Looking for ffmpeg/avformat.h - not found
I tried to symlink my /usr/include/ffmpeg/libavformat/avformat.h file to /usr/include/libavformat/avformat.h with no success. Still, in the subsequent messages, cmake seems to tell me that it has found ffmpeg and gstreamer correctly:
Video I/O:
-- DC1394 1.x: NO
-- DC1394 2.x: YES (ver 2.2.0)
-- FFMPEG: YES
-- codec: YES (ver 55.39.101)
-- format: YES (ver 55.19.104)
-- util: YES (ver 52.48.101)
-- swscale: YES (ver 2.5.101)
-- gentoo-style: YES
-- GStreamer:
-- base: YES (ver 1.2.3)
-- video: YES (ver 1.2.3)
-- app: YES (ver 1.2.3)
-- riff: YES (ver 1.2.3)
-- pbutils: YES (ver 1.2.3)
I've also tried with gstreamer 0.10, still no success.
Has anyone an idea of what is going on, and how can I solve this problem? Thank you in advance.
Cheers, a.