Introducción al sistema DirectShow

[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.

El desafío de multimedia

Trabajar con multimedia presenta varios desafíos importantes:

  • Las secuencias multimedia contienen grandes cantidades de datos, que se deben procesar muy rápidamente.
  • El audio y el vídeo deben sincronizarse para que se inicie y detenga al mismo tiempo y se reproduzca a la misma velocidad.
  • Los datos pueden provenir de muchos orígenes, incluidos archivos locales, redes informáticas, transmisiones de televisión y cámaras de vídeo.
  • Los datos vienen en una variedad de formatos, como Audio-Video intercalados (AVI), Advanced Streaming Format (ASF), Motion Picture Experts Group (MPEG) y Digital Video (DV).
  • El programador no sabe de antemano qué dispositivos de hardware estarán presentes en el sistema del usuario final.

La solución DirectShow

DirectShow está diseñado para abordar cada uno de estos desafíos. Su principal objetivo de diseño es simplificar la tarea de crear aplicaciones multimedia digitales en la plataforma Windows, al aislar las aplicaciones de las complejidades de los transportes de datos, las diferencias de hardware y la sincronización.

Para lograr el rendimiento necesario para transmitir vídeo y audio, DirectShow usa Direct3D y DirectSound siempre que sea posible. Estas tecnologías representan los datos de forma eficaz en las tarjetas de sonido y gráficos del usuario. DirectShow sincroniza la reproducción mediante la encapsulación de datos multimedia en ejemplos con marca de tiempo. Para controlar la variedad de orígenes, formatos y dispositivos de hardware que son posibles, DirectShow usa una arquitectura modular, en la que la aplicación combina y coincide con distintos componentes de software denominados filtros.

DirectShow proporciona filtros que admiten dispositivos de captura y ajuste basados en el modelo de controladores de Windows (WDM), así como filtros que admiten tarjetas de captura anteriores de Vídeo para Windows (VfW), y códecs escritos para las interfaces del Administrador de compresión de audio (ACM) y administrador de compresión de vídeo (VCM).

En el diagrama siguiente se muestra la relación entre una aplicación, los componentes directShow y algunos de los componentes de hardware y software que admite DirectShow.

arquitectura de alto nivel

Como se muestra aquí, los filtros DirectShow se comunican con una amplia variedad de dispositivos, incluidos el sistema de archivos local, el tuner de TV y las tarjetas de captura de vídeo, los códecs VfW, la pantalla de vídeo (a través de DirectDraw o GDI) y la tarjeta de sonido (a través de DirectSound). Por lo tanto, DirectShow aísla la aplicación de muchas de las complejidades de estos dispositivos. DirectShow también proporciona filtros nativos de compresión y descompresión para determinados formatos de archivo.

Acerca de DirectShow