Compartir a través de


Ejemplo de DVApp

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Descripción

Aplicación de captura de vídeo digital (DV).

En este ejemplo se muestra cómo crear varios tipos de gráficos de filtro para controlar videocámaras DV. También muestra cómo realizar la captura, vista previa, transmisión y control de dispositivos con una videocámara DV.

Uso

La aplicación DVApp admite los siguientes modos:

  • Vista previa: representa DV desde la videocámara a una ventana de vídeo.
  • DV al archivo de tipo 1: captura los datos dv de la videocámara a un archivo DV de tipo 1.
  • Archivo tipo-1 a DV: transmite datos de un archivo DV de tipo 1 a la videocámara.
  • DV a archivo de tipo 2: captura datos dv de la videocámara a un archivo DV de tipo 2.
  • Archivo tipo-2 a DV: transmite datos de un archivo DV de tipo 2 a la videocámara.

Los modos de captura y transmisión también realizan la vista previa. Cada uno de esos modos también tiene una opción Sin vista previa , que deshabilita la versión preliminar. La captura sin vista previa es más eficaz y puede reducir el número de fotogramas quitados.

La aplicación se inicia en modo de vista previa. Para seleccionar otro modo, elija un modo en el menú Modo gráfico . Para cada modo, DVApp crea un gráfico de filtros que admite la funcionalidad de ese modo. Para guardar el gráfico como un archivo GraphEdit (.grf), seleccione Guardar grafo en archivo en el menú Archivo . Salga de DVApp antes de abrir el archivo en GraphEdit.

Para capturar en un archivo:

  1. En el menú Archivo , elija Establecer archivo de salida y escriba un nombre de archivo.
  2. En el menú Modo gráfico , seleccione un modo DV a Archivo (tipo 1 o tipo 2, con o sin vista previa).
  3. Haga clic en Grabar.
  4. Si la videocámara está en modo VTR, haga clic en Reproducir.
  5. Para detener la captura, haga clic en Detener.

Para transmitir desde un archivo a la videocámara:

  1. En el menú Archivo , haga clic en Establecer archivo de entrada y seleccione un archivo DV. El archivo debe coincidir con el modo seleccionado (tipo 1 o tipo 2).
  2. En el menú Modo gráfico , seleccione un modo Archivo a DV (tipo 1 o tipo 2, con o sin vista previa).
  3. Haga clic en Reproducir.
  4. Para registrar los datos en cinta, haga clic en Grabar.
  5. Para detener la transmisión, haga clic en Detener.

Si la videocámara está en modo VTR, el usuario puede controlar el mecanismo de transporte a través de los botones de estilo VCR de la aplicación. Para buscar la cinta, escriba el código de tiempo de destino y haga clic en el botón buscar.

Para limitar la cantidad de datos que captura la aplicación, elija Capturar tamaño en el menú Archivo .

Para comprobar el formato de cinta (NTSC o PAL), elija Comprobar cinta en el menú Opciones .

Para cambiar el tamaño de la ventana de vista previa, elija Cambiar tamaño de descodificación en el menú Opciones .

Notas de programación

El propósito principal de esta aplicación es mostrar cómo crear varias capturas DV y transmitir gráficos.

Llegada y eliminación de dispositivos

La aplicación controla la llegada y eliminación del dispositivo mediante dos técnicas diferentes. Para la llegada del dispositivo, el bucle de mensajes de la aplicación responde a WM_DEVICECHANGE mensajes. Para la eliminación de dispositivos, la aplicación responde a EC_DEVICE_LOST eventos del administrador de gráficos de filtros. Cualquier enfoque funciona, aunque el evento EC_DEVICE_LOST depende de la existencia del dispositivo en el gráfico de filtros.

La aplicación solo controla un dispositivo a la vez. Si se quita el dispositivo actual, la aplicación busca otro dispositivo DV en el sistema.

En algunas videocámaras DV, el usuario debe apagar el dispositivo al cambiarlo entre el modo de cámara y el modo VTR, lo que desencadena un mensaje perdido por el dispositivo. La aplicación responde habilitando o deshabilitando los comandos de menú adecuados. Sin embargo, si el usuario alterna rápidamente entre modos, es posible que la videocámara no genere un mensaje perdido por el dispositivo. Puede forzar que los menús se actualicen eligiendo Modo de actualización en el menú Opciones . Algunas videocámaras DV pueden alternar modos sin apagar, pero enviar un mensaje perdido del dispositivo solo cuando cambian al modo VTR.

Control de dispositivos

La funcionalidad del botón Reproducir y grabar depende del modo actual:

  • Vista previa: el gráfico de filtros se ejecuta automáticamente. El botón Reproducir inicia el transporte.
  • Capturar al archivo: el botón Grabar ejecuta el gráfico y el botón Reproducir inicia el transporte.
  • Transmitir al dispositivo: el botón Reproducir ejecuta el gráfico y el botón Grabar inicia el transporte.

La aplicación de ejemplo no realiza una captura precisa de fotogramas. En varios puntos, la aplicación llama a la función Sleep para esperar a que el dispositivo responda. Las videocámaras DV más recientes envían una notificación cuando cambia el estado del dispositivo. Es posible que los dispositivos más antiguos no admitan notificaciones; para los fines de un ejemplo, llamar a Sleep es una solución más sencilla.

Descarga del ejemplo

Para descargar los ejemplos del SDK de DirectShow, instale la versión más reciente de Windows SDK.

Este ejemplo se instala en la siguiente ruta de acceso: [SDK Root]\Samples\Multimedia\DirectShow\Capture\DVApp.

Control de una videocámara DV

Vídeo digital en DirectShow

Ejemplos de DirectShow