Red de conocimiento informático - Material del sitio web - Cómo utilizar VFW para desarrollar un programa de captura de vídeo en Delphi

Cómo utilizar VFW para desarrollar un programa de captura de vídeo en Delphi

Resumen: Muchos desarrollos de software relacionados con el vídeo (como videoconferencias, videotelefonía, etc.) han aplicado tecnología de captura de vídeo. Microsoft proporciona a los desarrolladores de software el SDK VFW específicamente para captura de video, que proporciona una interfaz estándar para implementar la captura de video en sistemas Windows y reduce en gran medida la dificultad del desarrollo de programas. Dado que VFW SDK solo se puede usar en VC y VB, pero no en Delphi, cada función y variable en la DLL debe declararse una por una en Delphi. Este artículo detalla estos pasos y ofrece un ejemplo del procedimiento.

1 Introducción La adquisición de video y el procesamiento en tiempo real son una de las tecnologías más críticas en el sistema de procesamiento de imágenes actual. relacionados con todo el sistema. El autor se encontró con esta situación al desarrollar el "Sistema de detección de vuelcos en líneas de seguridad en carreteras". Este sistema estudia principalmente que en tramos clave de las carreteras, los vehículos de motor que pasan cruzarán instantáneamente la línea amarilla de seguridad. Por tanto, una de las principales razones por las que los vehículos rebasan la línea de seguridad es que los vehículos infringen las normas de subida y bajada al adelantar o dar marcha atrás. Este es el factor más importante y directo que provoca los accidentes de tráfico. El sistema captura imágenes instantáneas mediante tomas en tiempo real, las analiza y procesa, detecta las condiciones de conducción del vehículo de manera oportuna y precisa y acciona el equipo de control para realizar el procesamiento relevante.

Evidentemente, el punto clave de este sistema es capturar imágenes de vídeo en tiempo real. Para ello se utilizó el paquete de software de vídeo digital VFW de Microsoft, que permite a las aplicaciones obtener clips de vídeo digitalizados a partir de fuentes de vídeo analógicas tradicionales a través de dispositivos digitalizadores.

Una idea importante de VFW es que la reproducción no requiere hardware especializado. Para resolver el problema de las grandes cantidades de datos de vídeo digital, es necesario comprimirlos, por lo que VFW introdujo el estándar de archivos AVI. El estándar no especifica cómo capturar, comprimir y reproducir vídeo, sólo cómo almacenar vídeo y audio en un disco duro y cómo almacenar alternativamente fotogramas de vídeo y datos de audio coincidentes en un archivo AVI. Sin embargo, VFW permite a los programadores capturar, reproducir y editar videoclips enviando información o configurando propiedades. Cuando un usuario instala VFW, el instalador instala automáticamente los componentes necesarios para configurar el video, como controladores de dispositivos, compresores de video, etc. VFW consta de seis módulos principales. Los detalles se muestran en la Tabla 1.

Tabla 1 Módulo de función VFW

Función del módulo

AVICAP.DLL contiene funciones para realizar captura de video, que proporciona procesamiento de E/S de archivos AVI y video y Los controladores de dispositivos de audio proporcionan una interfaz de alto nivel

MSVIDEO.DLL contiene un conjunto especial de funciones DrawDib para manejar operaciones de vídeo en pantalla

MCIAVI.DLL proporciona una interfaz de alto nivel. DRV contiene el controlador para el intérprete de comandos MCI de VFW

AVIFILE.DLL contiene comandos de nivel superior proporcionados por las funciones estándar de E/S multimedia (mmio) para acceder a archivos .AVI

Compresión ICM Manager, utilizado para gestionar los códecs de compresión/descompresión de vídeo (Codec). Codec

Administrador de compresión de audio ACM, que proporciona servicios similares a ICM para audio de forma de onda 2 Pasos básicos para desarrollar programas de captura de vídeo

2.1 Uso de la clase de ventana AVICap

El El autor utiliza la clase de ventana AVICap para desarrollar programas de captura de video, incluida la captura de un solo cuadro y la captura de un solo cuadro, y proporciona control de la fuente de video. Los controles MCI de uso común también brindan servicios de video digital. También proporciona un conjunto de comandos de superposición para superposición de video, pero estos comandos son principalmente operaciones basadas en archivos y no pueden cumplir con los requisitos de extracción de datos del caché de video en tiempo real.

Para computadoras que usan tarjetas de captura que no tienen capacidades de superposición de video, el conjunto de comandos proporcionado por MCI no se puede usar para capturar transmisiones de video. Por otro lado, la clase de ventana AVICap tiene algunas ventajas en la captura de video. Puede acceder directamente al búfer de video sin generar archivos intermedios, por lo que es muy eficiente y en tiempo real. Además, puede capturar videos digitales en archivos.