Uso de Delphi para desarrollar software de video chat (1)
AVICAP DLL contiene funciones de captura de vídeo y proporciona una interfaz de alto nivel para el procesamiento de E/S de archivos AVI y controladores de dispositivos de audio y vídeo.
MSVIDEO DLL contiene un conjunto especial de funciones DrawDib para manejar operaciones de vídeo en pantalla.
Mcavidrv incluye el controlador para el intérprete de comandos VFW MCI.
AVIFILE DLL contiene comandos de alto nivel para acceder a archivos AVI proporcionados por las funciones estándar de E/S multimedia (mmio).
ICM Compression Manager se utiliza para administrar códecs para la compresión/descompresión de vídeo.
El Administrador de compresión de audio ACM proporciona un servicio similar a ICM para audio de forma de onda.
Para la transmisión de vídeo, utilizamos UDP porque UDP tiene una velocidad de transmisión rápida. TCP está orientado a la conexión. Al establecer una conexión, ambas partes deben transmitir datos mediante un protocolo de enlace de tres vías, un telnet FTP confiable, etc. Es decir, UDP basado en TCP no está orientado a la conexión y envía información sin la confirmación de la otra parte, pero es más rápido que TCP, pero puede perder datos, como SMTP, tftp, etc. UDP también lo admite. Hay dos tipos de transmisiones UDP. Uno es la radiodifusión dirigida. Si tu segmento de red es X, puedes enviarlo. La otra es la transmisión limitada. La dirección de transmisión es
2. Pasos de desarrollo del software de video chat
Cree una ventana de captura para capturar el video.
Antes de la captura de vídeo, es necesario crear una ventana de captura y todas las operaciones de captura y configuración deben realizarse sobre esta base. La ventana de captura se puede crear a través de la función CapCreateCaptureWindow de la clase de ventana AVICap, y su estilo de ventana se puede configurar según los parámetros de WSCHILD y WS_VISIBLE.
A través de la ventana de captura, podemos capturar transmisiones de video y audio en archivos AVI, conectar o desconectar dinámicamente dispositivos de entrada de video y audio, mostrar la transmisión de video de entrada en tiempo real en modo de superposición o vista previa, y establezca la velocidad de captura, cuadros de diálogo que muestran y controlan fuentes de video, formatos de video y compresión de video, cree, guarde o cargue paletas, copie imágenes y paletas asociadas al portapapeles y guarde imágenes capturadas de un solo cuadro en archivos de formato BMP.
Asociación entre ventana de captura y controlador
No funciona con una sola ventana de captura. Debe estar asociado al dispositivo para recibir la señal de vídeo. CapDriverConnect puede asociar una ventana de captura con su controlador de dispositivo.
Establece las propiedades del dispositivo de vídeo.
Puede controlar la frecuencia de muestreo del dispositivo e interrumpir el comportamiento del estado del botón de muestreo configurando cada variable miembro de la variable de estructura tcapureparms. Después de configurar la variable de estructura tcapureparms, puede usar la función CapCaptureSetSetup para que la configuración sea efectiva, también puede usar CapPreviewScale CapPreviewRate para configurar la escala y la velocidad de la vista previa, o puede usar directamente el valor predeterminado del dispositivo.
Abrir vista previa
Al usar la función CapOverlay, puede elegir si desea obtener una vista previa en modo superpuesto para acelerar la visualización de videos pequeños y recursos del sistema, y luego usar CapPreview para iniciar la vista previa. función para que puedas ver la imagen de la cámara en la pantalla.
Utilice la función de devolución de llamada de la ventana de captura
Los primeros cuatro pasos pueden crear un programa básico de captura de video. Si desea procesar los datos de video capturados desde el dispositivo usted mismo, debe usar la función de devolución de llamada de la ventana de captura para el procesamiento, como obtener datos de video cuadro por cuadro u obtener datos de video en forma de transmisión, etc.
Transmisión de secuencias de vídeo
Podemos obtener el primer cuadro de datos utilizando la función de devolución de llamada. Utilizamos tecnología de red para enviar datos a otras máquinas y otras máquinas mostrarán los datos recibidos.
Recibir vídeo
Recibe datos UDP y repite los datos recibidos, para que puedas ver el vídeo a distancia.
En tercer lugar, utilice Delphi para escribir el código del programa
El VFW SDK de Microsoft solo tiene versiones VC y VB, no una versión Delphi, pero puede encontrar archivos VFW PAS en línea. El archivo FW PAS declara varias funciones y variables en la DLL que llama (tenga en cuenta que el archivo VFW PAS se proporciona en el código fuente).
Utilicemos Delphi para desarrollar un software de video chat en línea. El software de chat se divide en dos programas, uno es el programa de recopilación de videos y el servidor de software de video chat para transmisión UDP, y el otro es el cliente de software de video chat que recibe los datos de video mostrados por el programa de transmisión UDP.
Cree un servidor de software de video chat
) Cree un nuevo proyecto llamado Proyecto dpr y agregue el VFW PAS que desea usar.
) Colocar un control Tpanel en el formulario. Este control se utiliza para mostrar el vídeo, y luego se colocan dos controles Tbutton, uno con un título para iniciar y otro con un nombre para detener. Aquí, se utiliza IdUDPClient de Indy para transmitir video, como se muestra en la figura.
Uso de Delphi para desarrollar software de video chat (ⅱ)
Lishi Xinzhi/Article/program/Delphi/201311/24745