Encontramos la contestación a este inconveniente, o por lo menos eso deseamos. Si presentas preguntas coméntalo y sin dudarlo te responderemos
Solución:
Para python3, opencv3.1.0, raspberry pi 3
import numpy as np
import cv2
cap = cv2.VideoCapture('intro.mp4')
while(cap.isOpened()):
ret, frame = cap.read()
#cv2.namedWindow("window", cv2.WND_PROP_FULLSCREEN)
#cv2.setWindowProperty("window",cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)
if ret:
cv2.imshow("Image", frame)
else:
print('no video')
cap.set(cv2.CAP_PROP_POS_FRAMES, 0)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Lo resolví parcialmente reemplazando vidFile.set (cv2.cv.CV_CAP_PROP_POS_FRAMES, 1)
por vidFile.set(cv2.cv.CV_CAP_PROP_POS_AVI_RATIO, 0)
aunque esto solo funciona para archivos .avi.
Puedo obtener reproducción de video en bucle usando una declaración if para cuando el conteo de cuadros alcance cap.get(cv2.CAP_PROP_FRAME_COUNT)
y luego reiniciando el conteo de fotogramas y cap.set(cv2.CAP_PROP_POS_FRAMES, num)
al mismo valor. El siguiente ejemplo sigue reproduciendo el video para mí.
import cv2
cap = cv2.VideoCapture('path/to/video')
frame_counter = 0
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
frame_counter += 1
#If the last frame is reached, reset the capture and the frame_counter
if frame_counter == cap.get(cv2.CAP_PROP_FRAME_COUNT):
frame_counter = 0 #Or whatever as long as it is the same as next line
cap.set(cv2.CAP_PROP_POS_FRAMES, 0)
# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
También funciona para volver a capturar el video en lugar de restablecer el recuento de fotogramas:
if frame_counter == cap.get(cv2.CAP_PROP_FRAME_COUNT):
frame_counter = 0
cap = cv2.VideoCapture(video_name)
Así que al menos me funciona para usar cap.set(cv2.CAP_PROP_POS_FRAMES, num)
para reproducir un video. ¿Qué sucede si restablece el cuadro cero en lugar del primero (como con el método avi)?
Aquí tienes las reseñas y valoraciones
Al final de la artículo puedes encontrar las interpretaciones de otros administradores, tú aún tienes la opción de insertar el tuyo si dominas el tema.