Hi
I am trying to save results of YOLO to .avi file. Having already seen the following post https://github.com/pjreddie/darknet/issues/102 (I even asked the question there) I could NOT find any solution. I here is the code in which I am trying to save the .avi.
{
CvSize size;
size.width = disp->width;
size.height = disp->height;
static CvVideoWriter* output_video = NULL; // cv::VideoWriter output_video;
if (output_video == NULL)
{
printf("\n SRC output_video = %p \n", output_video);
const char* output_name = "test_dnn_out.avi";
output_video = cvCreateVideoWriter(output_name, CV_FOURCC('D', 'I', 'V', 'X'), 25, size, 1);
printf("\n cvCreateVideoWriter, DST output_video = %p \n", output_video);
}
cvWriteFrame(output_video, disp);
}
Trying plenty of codecs ( changing CV_FOURCC('D', 'I', 'V', 'X') ) I get errors below:
**CODEC :-1**
**ERROR**
SRC output_video = (nil)
OpenCV: FFMPEG: tag 0xffffffff/'����' is not found (format 'avi / AVI (Audio Video Interleaved)')'
OpenCV Error: Unsupported format or combination of formats (Gstreamer Opencv backend does not support this codec.) in CvVideoWriter_GStreamer::open, file /home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp, line 1522
VIDEOIO(cvCreateVideoWriter_GStreamer (filename, fourcc, fps, frameSize, is_color)): raised OpenCV exception:
/home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp:1522: error: (-210) Gstreamer Opencv backend does not support this codec. in function CvVideoWriter_GStreamer::open
**CODEC: CV_FOURCC('M', 'J', 'P', 'G')**
**ERROR**
SRC output_video = (nil)
OpenCV Error: Unspecified error (GStreamer: cannot put pipeline to play
) in CvVideoWriter_GStreamer::open, file /home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp, line 1690
VIDEOIO(cvCreateVideoWriter_GStreamer (filename, fourcc, fps, frameSize, is_color)): raised OpenCV exception:
/home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp:1690: error: (-2) GStreamer: cannot put pipeline to play
in function CvVideoWriter_GStreamer::open
**CODEC: CV_FOURCC('P','I','M','1')**
SRC output_video = (nil)
**ERROR**
** (Demo:6801): CRITICAL **: gst_ffmpeg_cfg_set_property: assertion 'qdata->size == sizeof (gint64)' failed
OpenCV Error: Unspecified error (GStreamer: cannot put pipeline to play
) in CvVideoWriter_GStreamer::open, file /home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp, line 1690
VIDEOIO(cvCreateVideoWriter_GStreamer (filename, fourcc, fps, frameSize, is_color)): raised OpenCV exception:
/home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp:1690: error: (-2) GStreamer: cannot put pipeline to play
in function CvVideoWriter_GStreamer::open
**CODEC:CV_FOURCC('M', 'P', '4', '2')**
**ERROR**
SRC output_video = (nil)
** (Demo:7437): CRITICAL **: gst_ffmpeg_cfg_set_property: assertion 'qdata->size == sizeof (gint64)' failed
OpenCV Error: Unspecified error (GStreamer: cannot put pipeline to play
) in CvVideoWriter_GStreamer::open, file /home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp, line 1690
VIDEOIO(cvCreateVideoWriter_GStreamer (filename, fourcc, fps, frameSize, is_color)): raised OpenCV exception:
/home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp:1690: error: (-2) GStreamer: cannot put pipeline to play
in function CvVideoWriter_GStreamer::open
**CODEC::CV_FOURCC('D', 'I', 'V', '3')**
**ERROR**
SRC output_video = (nil)
OpenCV Error: Unspecified error (GStreamer: cannot put pipeline to play
) in CvVideoWriter_GStreamer::open, file /home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp, line 1690
VIDEOIO(cvCreateVideoWriter_GStreamer (filename, fourcc, fps, frameSize, is_color)): raised OpenCV exception:
/home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp:1690: error: (-2) GStreamer: cannot put pipeline to play
in function CvVideoWriter_GStreamer::open
**CODEC:CV_FOURCC('D', 'I', 'V', 'X')**
**ERROR**
SRC output_video = (nil)
OpenCV Error: Unspecified error (GStreamer: cannot put pipeline to play
) in CvVideoWriter_GStreamer::open, file /home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp, line 1690
VIDEOIO(cvCreateVideoWriter_GStreamer (filename, fourcc, fps, frameSize, is_color)): raised OpenCV exception:
/home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp:1690: error: (-2) GStreamer: cannot put pipeline to play
in function CvVideoWriter_GStreamer::open
**CODEC:CV_FOURCC('U', '2', '6', '3')**
**ERROR**
OpenCV Error: Unspecified error (GStreamer: cannot put pipeline to play
) in CvVideoWriter_GStreamer::open, file /home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp, line 1690
VIDEOIO(cvCreateVideoWriter_GStreamer (filename, fourcc, fps, frameSize, is_color)): raised OpenCV exception:
/home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp:1690: error: (-2) GStreamer: cannot put pipeline to play
in function CvVideoWriter_GStreamer::open
cvCreateVideoWriter, DST output_video = (nil)
SRC output_video = (nil)
Could not open codec 'h263': Unspecified error
** (Demo:8342): CRITICAL **: gst_ffmpeg_cfg_set_property: assertion 'qdata->size == sizeof (gint64)' failed
**CODEC:CV_FOURCC('I', '2', '6', '3')**
**ERROR**
SRC output_video = (nil)
Could not find encoder for codec id 21: Encoder not found
OpenCV Error: Unspecified error (GStreamer: cannot link elements
) in CvVideoWriter_GStreamer::open, file /home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp, line 1626
VIDEOIO(cvCreateVideoWriter_GStreamer (filename, fourcc, fps, frameSize, is_color)): raised OpenCV exception:
/home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp:1626: error: (-2) GStreamer: cannot link elements
in function CvVideoWriter_GStreamer::open
cvCreateVideoWriter, DST output_video = (nil)
**CODEC:CV_FOURCC('F', 'L', 'V', '1')**
**ERROR**
SRC output_video = (nil)
OpenCV Error: Unspecified error (GStreamer: cannot link elements
) in CvVideoWriter_GStreamer::open, file /home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp, line 1626
VIDEOIO(cvCreateVideoWriter_GStreamer (filename, fourcc, fps, frameSize, is_color)): raised OpenCV exception:
/home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp:1626: error: (-2) GStreamer: cannot link elements
in function CvVideoWriter_GStreamer::open
cvCreateVideoWriter, DST output_video = (nil)
**CODEC:CV_FOURCC('i','Y', 'U', 'V')**
**ERROR**
SRC output_video = (nil)
OpenCV: FFMPEG: tag 0x56555969/'iYUV' is not supported with codec id 14 and format 'avi / AVI (Audio Video Interleaved)'
OpenCV Error: Unsupported format or combination of formats (Gstreamer Opencv backend does not support this codec.) in CvVideoWriter_GStreamer::open, file /home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp, line 1522
VIDEOIO(cvCreateVideoWriter_GStreamer (filename, fourcc, fps, frameSize, is_color)): raised OpenCV exception:
/home/akde/opencv-3.3.0/modules/videoio/src/cap_gstreamer.cpp:1522: error: (-210) Gstreamer Opencv backend does not support this codec. in function CvVideoWriter_GStreamer::open
Here is my setup:
-ubuntu 16.04
-opencv 3.3.0
-ffmpeg version 2.8.14
So how can I save the results? Looking forward for your reply.