Articulo de referencia

Fundación de Medios

Media Foundation ( MF ) es una plataforma de infraestructura y canalización de marco multimedia basada en COM para medios digitales en Windows Vista , Windows 7 , Windows 8 , Wi...

Media Foundation ( MF ) es una plataforma de infraestructura y canalización de marco multimedia basada en COM para medios digitales en Windows Vista , Windows 7 , Windows 8 , Windows 8.1 , Windows 10 y Windows 11. Es el reemplazo previsto para Microsoft DirectShow , Windows Media SDK , DirectX Media Objects (DMO) y todas las demás API multimedia denominadas "heredadas", como Audio Compression Manager (ACM) y Video for Windows (VfW) . La tecnología DirectShow existente está diseñada para ser reemplazada por Media Foundation paso a paso, comenzando con algunas características. Durante algún tiempo habrá una coexistencia de Media Foundation y DirectShow. Media Foundation no estará disponible para versiones anteriores de Windows, incluyendo Windows XP .

La primera versión, presente en Windows Vista , se centra en la calidad de reproducción de audio y vídeo, el contenido de alta definición (es decir, HDTV ), la protección de contenido y un enfoque más unificado para el control de acceso a datos digitales para la gestión de derechos digitales (DRM) y su interoperabilidad. Integra DXVA 2.0 para descargar una mayor parte del procesamiento de vídeo al hardware, para un mejor rendimiento. Los vídeos se procesan en el espacio de color en el que se codificaron y se transfieren al hardware, que compone la imagen en su espacio de color nativo. Esto evita conversiones intermedias de espacio de color para mejorar el rendimiento. MF incluye un nuevo renderizador de vídeo, llamado Enhanced Video Renderer (EVR), que es la siguiente iteración de VMR 7 y 9. EVR tiene mejor soporte para la sincronización y la temporización de la reproducción. Utiliza el Multimedia Class Scheduler Service (MMCSS), un nuevo servicio que prioriza el procesamiento multimedia en tiempo real, para reservar los recursos necesarios para la reproducción, sin cortes ni fallos.

La segunda versión incluida en Windows 7 introduce compatibilidad ampliada con formatos multimedia y DXVA HD para la aceleración de contenido HD si se utilizan controladores WDDM 1.1. [ 1 ]

Arquitectura

Arquitectura de la Fundación de Medios

La arquitectura de MF se divide en la capa de control , la capa central y la capa de plataforma . La capa central encapsula la mayor parte de la funcionalidad de Media Foundation. Consta de la canalización de Media Foundation, que tiene tres componentes: Fuente de medios , Receptor de medios y Transformaciones de Media Foundation (MFT). Una fuente de medios es un objeto que actúa como fuente de datos multimedia, ya sean comprimidos o sin comprimir. Puede encapsular varias fuentes de datos, como un archivo, un servidor de red o incluso una videocámara, con la funcionalidad específica de la fuente abstraída por una interfaz común . Un objeto fuente puede usar un objeto resolvedor de fuentes que crea una fuente de medios a partir de una URI , un archivo o un flujo de bytes. Se puede agregar soporte para protocolos no estándar creando un resolvedor de fuentes para ellos. Un objeto fuente también puede usar un objeto secuenciador para usar una secuencia de fuentes (una lista de reproducción ) o para combinar varias fuentes en una única fuente lógica. Un receptor de medios es el destinatario de los datos multimedia procesados. Un receptor multimedia puede ser un receptor de renderizado , que renderiza el contenido en un dispositivo de salida, o un receptor de archivo , que guarda el contenido en un sistema de almacenamiento persistente como un archivo. Un receptor de renderizado toma datos sin comprimir como entrada, mientras que un receptor de archivo puede tomar datos comprimidos o sin comprimir, según el tipo de salida. Los datos de las fuentes multimedia a los receptores son procesados ​​por las MFT; las MFT son ciertas funciones que transforman los datos a otro formato. Las MFT pueden incluir multiplexores y demultiplexores, códecs o efectos DSP como la reverberación . La capa central utiliza servicios como el acceso a archivos, la red y la sincronización de reloj para controlar el tiempo de renderizado multimedia. Estos forman parte de la capa de plataforma , que proporciona los servicios necesarios para acceder a los flujos de bytes de origen y destino, los relojes de presentación y un modelo de objetos que permite que los componentes de la capa central funcionen de forma asíncrona, y generalmente se implementa como servicios del sistema operativo. La pausa, la detención, el avance rápido, el retroceso o la compresión de tiempo se pueden lograr controlando el reloj de presentación.

Sin embargo, los componentes de la canalización de medios no están conectados entre sí; se presentan como componentes independientes. Una aplicación que se ejecuta en la capa de control debe seleccionar los tipos de fuente, transformaciones y sumideros necesarios para la tarea de procesamiento de vídeo específica, y configurar las conexiones entre los componentes (una topología ) para completar la canalización del flujo de datos. Por ejemplo, para reproducir un archivo de audio/vídeo comprimido, la canalización constará, en secuencia, de un objeto de fuente de archivo, un demultiplexor para el formato de contenedor de archivo específico que divide los flujos de audio y vídeo, códecs para descomprimir dichos flujos, procesadores DSP para efectos de audio y vídeo y, finalmente, el renderizador EVR. En el caso de una aplicación de captura de vídeo, la videocámara actuará como fuente de vídeo y audio, sobre la cual las transformaciones de códec (MFT) comprimirán los datos y los enviarán a un multiplexor que los unificará en un contenedor; finalmente, un sumidero de archivo o de red lo escribirá en un archivo o flujo a través de la red. La aplicación también debe coordinar el flujo de datos entre los componentes de la canalización. La capa de control debe "extraer" (solicitar) muestras de un componente de la canalización y pasarlas al siguiente para lograr el flujo de datos dentro de la canalización. Esto contrasta con el modelo "push" de DirectShow , donde un componente de la canalización envía datos al siguiente. Media Foundation permite la protección de contenido al alojar la canalización dentro de un entorno de ejecución protegido, llamado Ruta de Medios Protegida . Los componentes de la capa de control deben propagar los datos a través de la canalización a una velocidad que sincronice la renderización con el reloj de presentación. La velocidad (o tiempo) de renderización se integra como parte del flujo multimedia en forma de metadatos. Los objetos de origen extraen los metadatos y los transmiten. Los metadatos son de dos tipos: metadatos codificados , que contienen información sobre la tasa de bits y los tiempos de presentación, y metadatos descriptivos , como el título y los nombres de los autores. Los metadatos codificados se entregan al objeto que controla la sesión de la canalización, y los metadatos descriptivos se exponen para que la aplicación los utilice si así lo desea.

Media Foundation proporciona un objeto Media Session que permite configurar las topologías y facilitar el flujo de datos sin que la aplicación tenga que hacerlo explícitamente. Este objeto reside en la capa de control y expone un objeto Topology Loader . La aplicación especifica la topología de canalización necesaria al cargador, que crea las conexiones necesarias entre los componentes. El objeto Media Session se encarga de la sincronización con el reloj de presentación. Crea el objeto de reloj de presentación y pasa una referencia al mismo al receptor. A continuación, utiliza los eventos del temporizador del reloj para propagar los datos a lo largo de la canalización. También modifica el estado del reloj para gestionar las solicitudes de pausa, detención o reanudación de la aplicación.

Arquitecturas MF prácticas

Teóricamente, solo existe una arquitectura de Media Foundation, que es el modelo de Sesión de Medios, Canalización, Fuente de Medios, Transformación y Receptor de Medios. Sin embargo, esta arquitectura puede ser compleja de configurar y existe un margen considerable para componentes MF ligeros y relativamente fáciles de configurar, diseñados para manejar el procesamiento de datos de medios para soluciones puntuales simples. Por lo tanto, consideraciones prácticas requirieron la implementación de variaciones en el diseño fundamental de la Canalización y se desarrollaron componentes como el Lector de Fuente y el Escritor de Receptor que operan fuera del modelo de Canalización. Algunas fuentes [ 2 ] dividen la arquitectura de Media Foundation en tres clases generales.

  • La arquitectura de la tubería
  • La arquitectura lector-escritor
  • Arquitecturas híbridas entre la arquitectura de canalización y la arquitectura lector-escritor.

La arquitectura de canalización se distingue por el uso de un objeto de sesión multimedia y una canalización independientes. Los datos multimedia fluyen desde una o más fuentes multimedia hacia uno o más sumideros multimedia y, opcionalmente, a través de una o más transformaciones multimedia. La sesión multimedia gestiona el flujo de los datos multimedia a través de la canalización, la cual puede tener múltiples bifurcaciones. Una aplicación multimedia puede acceder a los datos multimedia durante su recorrido desde una fuente multimedia a un sumidero multimedia implementando un componente de transformación multimedia personalizado e insertándolo en la ubicación adecuada de la canalización.

La arquitectura Lector-Escritor utiliza un componente llamado Lector de Origen para proporcionar los datos multimedia y un componente Escritor de Receptor para consumirlos. El Lector de Origen contiene una especie de canalización interna, pero esta no es accesible para la aplicación. Un Lector de Origen no es una Fuente de Medios y un Escritor de Receptor no es un Receptor de Medios, y ninguno de los dos puede incluirse directamente en una Canalización ni ser gestionado por una Sesión de Medios. En general, los datos multimedia fluyen del Lector de Origen al Escritor de Receptor mediante las acciones de la aplicación. La aplicación tomará los paquetes de datos multimedia (llamados Muestras de Medios) del Lector de Origen y los entregará directamente al Escritor de Receptor, o bien configurará una función de devolución de llamada en el Lector de Origen que realiza la misma operación. En efecto, al gestionar el transporte de datos, la propia aplicación desempeña una función similar a la de la Sesión de Medios en una aplicación con Arquitectura de Canalización. Dado que la aplicación MF gestiona la transmisión de las Muestras de Medios entre el Lector de Origen y el Escritor de Receptor, siempre tendrá acceso a los datos multimedia sin procesar. Los componentes Lector de origen y Escritor de destino tienen una capacidad limitada para cargar automáticamente las transformaciones de medios para ayudar con la conversión del formato de los datos multimedia; sin embargo, esto se realiza internamente y la aplicación tiene poco control sobre ello.

El lector de origen y el escritor de destino facilitan su uso, y la arquitectura de canalización ofrece un control sumamente sofisticado sobre el flujo de datos multimedia. Sin embargo, muchos de los componentes disponibles para una canalización (como el renderizador de vídeo mejorado) no son fácilmente utilizables en una aplicación con arquitectura de lector-escritor. Dado que la estructura de una muestra multimedia producida por un lector de origen es idéntica a la salida de una fuente multimedia, es posible configurar una arquitectura de canalización en la que las muestras multimedia se interceptan a medida que pasan por la canalización y se entrega una copia a un receptor multimedia. Esto se conoce como arquitectura híbrida y permite tener una aplicación que aprovecha las sofisticadas capacidades de procesamiento de la sesión multimedia y la canalización, al tiempo que utiliza la facilidad de uso de un escritor de destino. El escritor de destino no forma parte de la canalización ni interactúa con la sesión multimedia. En efecto, los datos multimedia son procesados ​​por un receptor multimedia especial llamado receptor de muestras, que consume los datos multimedia y entrega una copia al escritor de destino al hacerlo. También es posible implementar una arquitectura híbrida con una transformación de medios personalizada que copia las muestras de medios y las pasa a un escritor de destino a medida que avanzan por la canalización. En ambos casos, un componente especial en la canalización actúa como una aplicación simple de lector-escritor y alimenta al escritor de destino. En general, las arquitecturas híbridas utilizan una canalización y un escritor de destino. Teóricamente, es posible implementar un mecanismo en el que un lector de origen podría inyectar muestras de medios en una canalización, pero, a diferencia del receptor de muestras, no existe un componente estándar de este tipo.

Fundación de Medios Transformación

Las transformaciones de Media Foundation (MFT) representan un modelo genérico para el procesamiento de datos multimedia. Se utilizan en Media Foundation principalmente para implementar decodificadores, codificadores, mezcladores y procesadores de señales digitales (DSP), entre fuentes y receptores multimedia . Las transformaciones de Media Foundation son una evolución del modelo de transformación introducido por primera vez con los objetos multimedia de DirectX (DMO). Su comportamiento está especificado con mayor claridad. También se pueden crear objetos híbridos DMO/MFT. Las aplicaciones pueden usar MFT dentro de la canalización de Media Foundation o directamente como objetos independientes. Las MFT pueden ser de cualquiera de los siguientes tipos:

  • Códecs de audio y vídeo
  • Efectos de audio y vídeo
  • Multiplexores y demultiplexores
  • Camisetas
  • convertidores de espacio de color
  • convertidores de frecuencia de muestreo
  • escaladores de vídeo

Microsoft recomienda a los desarrolladores escribir una transformación de Media Foundation en lugar de un filtro DirectShow para Windows Vista , Windows 7 y Windows 8. [ 3 ] Para la edición y captura de vídeo, Microsoft recomienda usar DirectShow, ya que no son el enfoque principal de Media Foundation en Windows Vista. A partir de Windows 7, las transformaciones de Media Foundation también admiten el procesamiento, la codificación y la decodificación de vídeo acelerados por hardware para dispositivos multimedia basados ​​en AVStream. [ 4 ]

Renderizador de vídeo mejorado

Media Foundation utiliza el Enhanced Video Renderer (EVR) para renderizar contenido de vídeo, que también funciona como mezclador. Puede mezclar hasta 16 flujos simultáneos, siendo el primero un flujo de referencia . Todos los flujos, excepto el de referencia, pueden tener información de transparencia por píxel , así como cualquier orden Z especificado . El flujo de referencia no puede tener píxeles transparentes y tiene una posición de orden Z fija, ubicada al final de todos los flujos. La imagen final se compone sobre una única superficie coloreando cada píxel según el color y la transparencia del píxel correspondiente en todos los flujos.

Internamente, el EVR utiliza un objeto mezclador para combinar las secuencias. También puede desentrelazar la salida y aplicar corrección de color, si es necesario. El fotograma compuesto se entrega a un objeto presentador , que lo programa para su renderizado en un dispositivo Direct3D, el cual comparte con el DWM y otras aplicaciones que utilizan dicho dispositivo. La velocidad de fotogramas del vídeo de salida se sincroniza con la velocidad de fotogramas de la secuencia de referencia. Si alguna de las otras secuencias (denominadas subsecuencias ) tiene una velocidad de fotogramas diferente, el EVR descarta los fotogramas adicionales (si la subsecuencia tiene una velocidad de fotogramas superior) o utiliza el mismo fotograma más de una vez (si tiene una velocidad de fotogramas inferior).

El EVR más antiguo, basado en Direct3D 9Ex, se llama EVR-9Ex y requiere que la GPU sea compatible con Direct3D 9Ex. El EVR más nuevo , basado en Direct3D 11 , se llama EVR-11 y requiere que la GPU sea compatible con Direct3D 11; EVR-11 admite características más recientes, como una alta profundidad de color . [ 5 ]

Formatos de medios compatibles

Windows Media Audio y Windows Media Video son los únicos formatos compatibles de forma predeterminada para la codificación a través de Media Foundation en Windows Vista . Para la decodificación, Windows Vista dispone de una fuente de archivos MP3 para leer flujos MP3, pero un receptor de archivos MP3 para generar MP3 solo está disponible en Windows 7. [ 6 ] Sin embargo, la compatibilidad con formatos es ampliable; los desarrolladores pueden añadir compatibilidad con otros formatos mediante la creación de MFT de codificador/decodificador y/o fuentes/receptores de medios personalizados.

Windows 7 amplía la compatibilidad con códecs disponible en Windows Vista. Incluye fuentes de archivos AVI , WAV y AAC/ADTS para leer los formatos respectivos, [ 6 ] una fuente de archivos MPEG-4 para leer formatos de contenedor MP4 , M4A, M4V, MP4V, MOV y 3GP [ 7 ] y un receptor de archivos MPEG-4 para generar la salida en formato MP4. [ 8 ]

De forma similar a Windows Vista, la compatibilidad con la transcodificación (codificación) no se expone a través de ninguna aplicación integrada de Windows, pero se incluyen varios códecs como Media Foundation Transforms (MFT). [ 6 ] Además de los codificadores y decodificadores de Windows Media Audio y Windows Media Video , y el sumidero y origen de archivos ASF introducidos en Windows Vista, [ 6 ] Windows 7 incluye un codificador H.264 con soporte para el perfil Baseline nivel 3 y perfil principal [ 9 ] y un codificador de perfil AAC de baja complejidad ( AAC-LC ) [ 10 ].

Para la reproducción de varios formatos multimedia, Windows 7 también introduce un decodificador H.264 con soporte para Baseline, Main y High-profile, hasta el nivel 5.1, [ 11 ] decodificadores multicanal AAC-LC y HE-AAC v1 ( SBR ), decodificadores estéreo HE-AAC v2 ( PS ), [ 12 ] decodificadores MPEG-4 Part 2 Simple Profile y Advanced Simple Profile [ 13 ] que incluye la decodificación de implementaciones de códecs populares como DivX , Xvid y Nero Digital , así como decodificadores MJPEG [ 6 ] y DV [ 14 ] MFT para AVI. Windows Media Player 12 utiliza los códecs Media Foundation integrados para reproducir estos formatos de forma predeterminada.

La reproducción MIDI tampoco es compatible todavía con Media Foundation.

Soporte de aplicaciones

Las solicitudes que apoyan a Media Foundation incluyen:

Cualquier aplicación que utilice la ruta de medios protegida en Windows también utiliza Media Foundation.

Referencias

  1. "DXVA-HD" . Archivado del original el 20 de abril de 2012. Consultado el 18 de abril de 2010 .
  2. "Ejemplo de código fuente" . GitHub . Archivado del original el 23/11/2020 . Consultado el 19/01/2019 .
  3. "Migración de DirectShow a Media Foundation y comparación de ambas" . Archivado del original el 9 de abril de 2008. Consultado el 22 de febrero de 2007 .
  4. Introducción a la compatibilidad con códecs de hardware en AVStream
  5. EliotSeattle. "Mejoras en la reproducción de vídeo de Direct3D 11: controladores de Windows" . learn.microsoft.com . Consultado el 29 de mayo de 2026 .
  6. 1 2 3 4 5 "Formatos de medios compatibles en Media Foundation" . Archivado del original el 29 de abril de 2010. Recuperado el 18 de abril de 2010 .
  7. "Fuente de archivo MPEG-4" . Archivado del original el 14 de marzo de 2010. Consultado el 18 de abril de 2010 .
  8. "MPEG-4 File Sink" . Archivado del original el 4 de agosto de 2010. Consultado el 18 de abril de 2010 .
  9. "Codificador de vídeo H.264" . Archivado del original el 4 de marzo de 2010. Consultado el 18 de abril de 2010 .
  10. "Codificador AAC" . Archivado del original el 13 de octubre de 2009. Consultado el 18 de abril de 2010 .
  11. "Decodificador de vídeo H.264" . Archivado del original el 21/04/2010 . Consultado el 18/04/2010 .
  12. "Decodificador AAC" . Archivado del original el 18 de marzo de 2010. Consultado el 18 de abril de 2010 .
  13. "Decodificador de vídeo MPEG4 Parte 2" . Archivado del original el 11 de febrero de 2010. Consultado el 18 de abril de 2010 .
  14. "Decodificador de vídeo DV" . Archivado del original el 29 de marzo de 2010. Consultado el 18 de abril de 2010 .
  15. https://support.microsoft.com/en-us/windows/experience/platform-variants/media-feature-pack-for-windows-n
  • Fundación de Medios de Microsoft
  • Foro de Desarrollo de la Fundación de Medios
  • Blog del equipo de la Fundación de Medios (con ejemplos)
  • Metadatos de la fuente multimedia
  • Programa de financiación de la Fundación de Medios
  • Arquitectura de la Fundación de Medios
  • Acerca de la sesión de prensa
  • Renderizador de vídeo mejorado
  • Windows Media Foundation: Primeros pasos en C#