Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

video write ubuntu

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.