es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La función de OpenCV VideoCapture y Read no recupera todos los fotogramas. Devuelve un número incorrecto de fotogramas.

Tengo un video mp4 que dura 29 minutos con una resolución de 1536×2304. Lo que estoy intentando hacer es crear un cargador de datos que ingiera archivos mp4 y los alimente a una CNN, pero para hacerlo necesito usar OpenCV para recuperar los fotogramas. Cuando uso cap = cv.VideoCapture(“archivo mp4”) y ret, frame = cap.read(), solo recibo alrededor de 40 fotogramas.

Dado que el video dura 29 minutos y tiene una velocidad de fotogramas de 18fps, el número de fotogramas que espero es alrededor de 31320, pero solo obtengo 40. Realmente confundido, ¡cualquier ayuda es apreciada!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que puede haber un problema con el códec que utiliza el archivo mp4, lo que causa que opencv solo pueda leer un pequeño número de cuadros. Podrías intentar usar un códec diferente al guardar el video o intentar convertirlo a un formato diferente antes de intentar cargarlo en opencv.

    Otro problema potencial podría ser la asignación de memoria en tu sistema. Si tu sistema no tiene suficiente memoria para almacenar todos los cuadros, opencv podría truncar el video. En este caso, podrías intentar reducir la resolución de los cuadros o procesarlos por lotes en lugar de todos a la vez.

    Por último, es posible que haya un error en tu código que está haciendo que opencv solo lea un pequeño número de cuadros. Podrías intentar depurar tu código para asegurarte de que esté iterando correctamente a través de todos los cuadros del video.

    En general, podría haber varias causas potenciales para este problema, pero investigando estas posibilidades deberías ser capaz de identificar y resolver el problema.

Comments are closed.