Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

OpenCV con Python, Unidad 9 — Procesamiento de vídeo, 9.1 — Lectura y escritura de vídeo ·

Guardado de vídeo

Guardado de vídeo

Introducción

El guardado de video es una funcionalidad crucial en la visión por computador, especialmente cuando se trabaja con capturas de video en tiempo real. Permitir el almacenamiento de estos datos nos permite analizar y revisar eventos importantes, desarrollar algoritmos iterativos, o simplemente tener registros para futuros análisis. En este artículo exploraremos cómo utilizar OpenCV en Python para guardar videos desde una grabación existente o directamente desde la captura de video.

Explicación principal con ejemplos

Para guardar un video utilizando OpenCV, primero debemos crear un objeto VideoWriter. Este objeto se configura con el archivo de salida, el codec, la tasa de cuadros por segundo (fps), resolución y tipo de canal. Aquí hay un ejemplo paso a paso:

Ejemplo 1: Guardar video desde una grabación existente

import cv2

# Configurando el VideoWriter para guardar en 'salida.avi'
out = cv2.VideoWriter('salida.avi', cv2.VideoWriter_fourcc(*'XVID'), 30.0, (640, 480))

# Supongamos que `frame` es una variable con las imágenes a grabar
for frame in frames:
    out.write(frame)  # Escribe la imagen en el archivo de salida

out.release()  # Cierra el VideoWriter y libera los recursos

Ejemplo 2: Guardar video directamente desde captura de cámara

import cv2

# Inicializa la captura de video
cap = cv2.VideoCapture(0)

# Configurando el VideoWriter para guardar en 'video.avi'
out = cv2.VideoWriter('video.avi', cv2.VideoWriter_fourcc(*'XVID'), 30.0, (640, 480))

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break

    out.write(frame)  # Escribe la imagen en el archivo de salida
    cv2.imshow('Video', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()  # Libera la captura de video
out.release()  # Cierra el VideoWriter y libera los recursos
cv2.destroyAllWindows()

Errores típicos / trampas

  1. Codec incorrecto: Asegúrate de usar un codec compatible con tu sistema operativo y resolución de video.
  1. Resolución incompatibles: Verifica que la resolución del VideoWriter coincida con la resolución del video original o capturado.
  1. Formato de archivo incorrecto: Algunos codecs pueden requerir formatos específicos para los archivos de salida, como 'mp4' para el codec X264.

Checklist accionable

  1. Verifica los codecs disponibles: Utiliza cv2.VideoWriter_fourcc() para verificar los codecs compatibles en tu sistema.
  1. Configura correctamente las dimensiones y fps: Ajusta la resolución (ancho, alto) y tasa de cuadros por segundo según tus necesidades.
  1. Crea un bucle adecuado: Para grabar desde una cámara, asegúrate de tener un bucle que capture cada frame en tiempo real.
  1. Maneja la liberación de recursos: Cierra siempre el VideoWriter y libera los dispositivos de captura al finalizar.
  1. Prueba con archivos pequeños: Empieza con una pequeña cantidad de frames para asegurarte de que todo funciona correctamente antes de procesar grandes cantidades.

Cierre: Siguientes pasos

  • Profundiza en la detección de movimiento: Comienza a implementar algoritmos de detección de movimiento en tus videos.
  • Ajusta el procesamiento en tiempo real: Optimiza tu código para manejar la captura y grabación en tiempo real sin retrasos.
  • Explora más herramientas de análisis de video: Conoce otras bibliotecas que pueden complementar o reemplazar a OpenCV, como FFmpeg.

Siguiendo estos pasos, podrás implementar el guardado de video con confianza y eficacia en tus proyectos de visión por computador.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).