video write ubuntu [closed]
Hi
I am trying to save results of YOLO to .avi file. Having already seen the following post https://github.com/pjreddie/darknet/i... (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 ...
please DO NOT try anything with opencv's deprecated and no more maintained c-api.
If you want to break open Darknet itself, to add this generation functionality, have a look at a video generating commit at our research groups public darknet repo. This worked until OpenCV 3.4.0 so be sure to check out that branch before compiling!
I exactly copied the changes in image.c but still get the following 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
Try building OpenCV without Gstreamer but using v4l2 instead.