OpenCV 2.4 VideoCapture not working on Windows

I’m using Python bindings to OpenCV 2.4 installed with following instructions.

My problem is similar to this one, but I need Windows machine solution.

Problem: when I try to use

cap = cv2.VideoCapture(0)
print cap.grab()

it works fine, but the following code

cap = cv2.VideoCapture(filename)
print cap.grab()

always return False.

Path to the file is correct, absolute and has no spaces.

I tried on two machines with Windows XP and Windows 7 with similar results. On Linux (Ubuntu) it works fine for me.

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Add C:OpenCV3rdpartyffmpeg to the Windows PATH environment variable or copy opencv_ffmpeg.dll from that directory to C:Python27 or to a directory that is in the PATH. Alternatively, use the OpenCV binaries from http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv.

Renaming the opencv_ffmpeg.dll file may also be necessary.

For OpenCV version X.Y.Z
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ.dll

For 64-bit OpenCV version X.Y.Z
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ_64.dll

Method 2

Copying opencv_ffmpeg.dll wasn’t enough for me – I had to rename it to opencv_ffmpeg246.dll, when I used OpenCV 2.4.6 with Python 2.7.5

Method 3

I first tried copying, then changing the Path environment of windows.. it didn’t work until i changed the name to opencv_ffmpeg245.dll for my openCV version 2.4.5 and python 2.7. (notice **245.dll is from opencv version 2.4.5)

Method 4

For 64 bit versions, rename opencv_ffmpeg_64.dll to opencv_ffmpeg249_64.dll Change 249 to your opencv version.

Method 5

For OpenCV 3.0.0 on 64 bit environment copy opencv_ffmpeg_64.dll and rename it to opencv_ffmpeg300_64.dll.

Also add this path to your PATH environment variable to get it work with OpenCV under Java.

Method 6

Update: This is still true for OpenCV 2.4.9, copy all the files, and rename the dll opencv_ffmpeg249.dll

Method 7

I had the same issue with python 2.7 and opencv 2.4.10. I copied the opencv_ffmpeg2410_64.dll file from C:Applicationsopencvbuildx64vc10bin into the python path (mine is at C:UsersmohammadAnaconda) and it was solved!

Method 8

At first I use windows8.1 32bit and opencv 2.4.10.
I faced same problem to use file test1.wmv which was made by Logicool C270.
I tried to use other file test2.mov which was made by Digital Camera ( Canon SX160 ).
So I can play test2.mov to append path C:opencvbuildx86vc12bin.
But I cannot Play test1.wmv.
So I try to change format test1.wmv to test1a.mp4 by using VLC ( to Video for youtube HD) .
Then I can play test1a.mp4.
I tried test1.wmv on Ubuntu 14.04 LTS , then I can play it easy.
It may occur some difference on default ffmpeg binary between windows8.1 and Ubuntu 14.04 LTS.

Method 9

For anaconda environment
copy opencv_ffmpeg249_64.dll from C:Python27
rename its version according to your opencv correct version
and past it to
C:UsersKHALIDAnaconda2Librarybin


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x