Created
March 9, 2017 15:01
-
-
Save keithweaver/4b16d3f05456171c1af1f1300ebd0f12 to your computer and use it in GitHub Desktop.
Stream and save video in Python with OpenCV
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# For more info: http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_video_display/py_video_display.html | |
import cv2 | |
import numpy as np | |
import os | |
FILE_OUTPUT = 'output.avi' | |
# Checks and deletes the output file | |
# You cant have a existing file or it will through an error | |
if os.path.isfile(FILE_OUTPUT): | |
os.remove(FILE_OUTPUT) | |
# Playing video from file: | |
# cap = cv2.VideoCapture('vtest.avi') | |
# Capturing video from webcam: | |
cap = cv2.VideoCapture(0) | |
currentFrame = 0 | |
# Get current width of frame | |
width = cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH) # float | |
# Get current height of frame | |
height = cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT) # float | |
# Define the codec and create VideoWriter object | |
fourcc = cv2.cv.CV_FOURCC(*'X264') | |
out = cv2.VideoWriter(FILE_OUTPUT,fourcc, 20.0, (int(width),int(height))) | |
# while(True): | |
while(cap.isOpened()): | |
# Capture frame-by-frame | |
ret, frame = cap.read() | |
if ret == True: | |
# Handles the mirroring of the current frame | |
frame = cv2.flip(frame,1) | |
# Saves for video | |
out.write(frame) | |
# Display the resulting frame | |
cv2.imshow('frame',frame) | |
else: | |
break | |
if cv2.waitKey(1) & 0xFF == ord('q'): | |
break | |
# To stop duplicate images | |
currentFrame += 1 | |
# When everything done, release the capture | |
cap.release() | |
out.release() | |
cv2.destroyAllWindows() | |
# Potential Error: | |
# OpenCV: Cannot Use FaceTime HD Kamera | |
# OpenCV: camera failed to properly initialize! | |
# Segmentation fault: 11 | |
# | |
# Solution: | |
# I solved this by restarting my computer. | |
# http://stackoverflow.com/questions/40719136/opencv-cannot-use-facetime/42678644#42678644 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
For those using cv2 v4+, I solved using
as explained here