
Error al guardar un archivo opencv cv2.py out.write(frame)
Publicado por Alejandro (5 intervenciones) el 27/04/2015 11:29:44
SOLUCION:
Hola chic@s llevo varios días intentando solucionar un problema con el código Opencv al guardar una captura de vídeo en formato AVI.
Me costo mucho dar con la solución al problema porque los foros en ingles nadie sabe porque ocurre.
He comprobado el código de la web y funciona correctamente, el problema consiste que el fichero que crea output.avi se queda en 0KB. La solución al problema del fichero es cambiar fourcc tienen que ir a la web de códec y dar con uno que les funcione y con eso dejara de estar en 0kb
También en algunos casos es por la resolución (640,480) lo podrían solucionar con este código.
Codigo de Open CV para videos en phython
http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_gui/py_video_display/py_video_display.html#display-video
Códigos o códec fourcc
http://www.fourcc.org/codecs.php
Hola chic@s llevo varios días intentando solucionar un problema con el código Opencv al guardar una captura de vídeo en formato AVI.
Me costo mucho dar con la solución al problema porque los foros en ingles nadie sabe porque ocurre.
He comprobado el código de la web y funciona correctamente, el problema consiste que el fichero que crea output.avi se queda en 0KB. La solución al problema del fichero es cambiar fourcc tienen que ir a la web de códec y dar con uno que les funcione y con eso dejara de estar en 0kb
También en algunos casos es por la resolución (640,480) lo podrían solucionar con este código.
1
size = (int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)))
Codigo de Open CV para videos en phython
http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_gui/py_video_display/py_video_display.html#display-video
Códigos o códec fourcc
http://www.fourcc.org/codecs.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import numpy as np
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
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()
Valora esta pregunta


2