Reputation: 99
I am on Ubuntu 16.04 using OpenCV 3.1 in Python. I can run this fine for a large number of videos however in this particular video it fails. I am using XVID as coded. The URI seems to be correct so I'm at a loss here...
Below is the full error (I know some context may be needed, but the path provided for the file is correct. I have tried putting a space at the end as some other answer suggested and it didn't work.
(240, 320, 3)
Converting all images into a video...
v_HandStandPushups_g01_c01
['', 'media', 'pedro', 'actv3', 'UCF101', 'videos', 'HandstandPushups']
Height: 224 Width: 224 FPS: 25.0
/media/pedro/actv3/UCF101/pose/HandstandPushups/v_HandStandPushups_g01_c01_pose.avi
/media/pedro/actv3/UCF101/pose/HandstandPushups/v_HandStandPushups_g01_c01_joints.npy
(python:1923): GStreamer-CRITICAL **: gst_element_make_from_uri: assertion 'gst_uri_is_valid (uri)' failed
GStreamer Plugin: Embedded video playback halted; module filesink0 reported: Could not open file "/media/pedro/actv3/UCF101/pose/HandstandPushups/v_HandStandPushups_g01_c01_pose.avi" for writing.
GStreamer Plugin: Embedded video playback halted; module filesink0 reported: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
OpenCV Error: Unspecified error (GStreamer: cannot put pipeline to play
) in CvVideoWriter_GStreamer::open, file /home/pedro/opencv/modules/videoio/src/cap_gstreamer.cpp, line 1530
Traceback (most recent call last):
File "process_video.py", line 133, in <module>
main()
File "process_video.py", line 130, in main
_process_dataset()
File "process_video.py", line 119, in _process_dataset
computePose(videos)
File "process_video.py", line 101, in computePose
video = cv2.VideoWriter(poseimg_output_name, fourcc, vidcap.get(cv2.CAP_PROP_FPS), (width,height), True)
cv2.error: /home/pedro/opencv/modules/videoio/src/cap_gstreamer.cpp:1530: error: (-2) GStreamer: cannot put pipeline to play
in function CvVideoWriter_GStreamer::open
EDIT: Solution was that I was writing to a non-existent folder. Check your paths very carefully (they are case-sensitive).
Upvotes: 3
Views: 21184
Reputation: 133
It is complaining that cannot write.
GStreamer Plugin: Embedded video playback halted; module filesink0 reported: Could not open file "/media/pedro/actv3/UCF101/pose/HandstandPushups/v_HandStandPushups_g01_c01_pose.avi" for writing.
Are you sure that it has the write attribute?
Anyway when I see an assertion failure I use GDB for better understanding the failure:
GST_DEBUG=4 G_DEBUG=fatal-criticals gdb -ex run --args application
Upvotes: 7