1

This is the code to save video from the web cam

import numpy  
import cv2 
cap = cv2.VideoCapture(0)

# Define the codec and create VideoWriter object 
fourcc = cv2.VideoWriter_fourcc(*'XVID')  
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:
        frame = cv2.flip(frame,0)
        # write the flipped frame
        out.write(frame)
        cv2.imshow('frame',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

cap.release() 
out.release() 
cv2.destroyAllWindows()

When I Run It In python it gives the following error

> raceback (most recent call last):    File
> "C:\Users\Prakash\Desktop\Image Proccessing\c.py", line 6, in <module>
> fourcc = cv2.VideoWriter_fourcc(*'XVID')  AttributeError: 'module'
> object has no attribute 'VideoWriter_fourcc'

Please help me solve this error

3
  • answers.opencv.org/question/29648/… Commented Nov 10, 2015 at 14:05
  • Thank You !!!!! This Link Helped was using open cv 2.4.9 it dosent support fourcc = cv2.VideoWriter_fourcc('XVID') function so replaced it by fourcc = cv2.cv.CV_FOURCC('XVID') and it works FINE Commented Nov 10, 2015 at 14:14
  • One of you should post that as an answer and OP should accept it. Commented Nov 10, 2015 at 15:12

2 Answers 2

13

Python / OpenCV 2.4.9 doesn't support cv2.VideoWriter_fourcc, which is version 3.x. If you're using 2.4.x:

replace fourcc = cv2.VideoWriter_fourcc(*'XVID')

with fourcc = cv2.cv.CV_FOURCC(*'XVID')

Good example here How to Record Video Using OpenCV and Python Reproduced for reference:

#!/usr/bin/env python 
import cv2

if __name__ == "__main__":
    # find the webcam
    capture = cv2.VideoCapture(0)

    # video recorder
    fourcc = cv2.cv.CV_FOURCC(*'XVID')  # cv2.VideoWriter_fourcc() does not exist
    videoOut = cv2.VideoWriter("output.avi", fourcc, 20.0, (640, 480))

    # record video
    while (capture.isOpened()):
        ret, frame = capture.read()
        if ret:
            videoOut.write(frame)
            cv2.imshow('Video Stream', frame)

        else:
            break

        # Tiny Pause
        key = cv2.waitKey(1)

    capture.release()
    videoOut.release()
    cv2.destroyAllWindows()
Sign up to request clarification or add additional context in comments.

Comments

0

Maybe the question is answered long ago.

Here is a workaround solution if you met this problem in whatever version.

Refer to "opencv doc": https//github.com/opencv/opencv/search?q=CV_FOURCC&unscoped_q=CV_FOURCC

#define CV_FOURCC_MACRO(c1, c2, c3, c4) \
(((c1) & 255) + (((c2) & 255) << 8) + (((c3) & 255) << 16) + (((c4) & 255) << 24))

So simply define

def fourcc(a,b,c,d):
    return return ((ord(a) & 255) + ((ord(b) & 255) << 8) + ((ord(c) & 255) << 16) + ((ord(d) & 255) << 24))

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.