Compartir a través de


Compilar gráficos de filtros para escribir archivos ASF

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

Al crear contenido basado en Windows Media, las aplicaciones suelen usar uno de los escenarios siguientes:

  • Convertir o transcodificación de contenido de algún otro formato en Formato de Windows Media.
  • Insertar contenido que no está basado en Windows Media (formatos de secuencia nativa) en archivos ASF.
  • Capturar datos activos y codificarlos inmediatamente en Windows Media Format.

Transcodificación de archivos ASF

Puede crear un gráfico de filtros de transcodificación de archivos mediante WM ASF Writer de varias maneras. La manera más fácil es agregar el escritor ASF wm al gráfico de filtros y, a continuación, usar el método IGraphBuilder::RenderFile para compilar el grafo automáticamente.

Una manera alternativa es agregar cada filtro manualmente al grafo y conectar las patillas. Después de agregar WM ASF Writer, configúrelo mediante los métodos IConfigAsfWriter si el perfil predeterminado no es adecuado y conecte los patillas de entrada de ASF Writer de WM a los pines de salida correspondientes en los filtros ascendentes.

En la ilustración siguiente se muestran las configuraciones típicas de gráficos de filtros de transcodificación de WM ASF Writer.

Gráfico de filtros de transcodificación

Insertar formatos de secuencia nativa en archivos ASF

De forma predeterminada, el filtro WM ASF Writer espera secuencias de audio y vídeo sin comprimir en sus patillas de entrada y usa los códecs De Audio de Windows Media y Windows Media Video para comprimir las secuencias. Sin embargo, el contenedor de archivos ASF se puede usar para cualquier tipo de datos. Al colocar datos multimedia digitales en un contenedor de archivos ASF, puede agregar características proporcionadas por ASF, como metadatos y administración de derechos digitales (DRM), sin tener que transcodificar el contenido.

Para crear un archivo ASF que contenga contenido que no esté basado en Windows Media, la aplicación debe comprimir la secuencia en el grafo de filtro ascendente del sistema de escritura asf wm y omitir el mecanismo de compresión de WM ASF Writer llamando a IConfigAsfWriter2::SetParam de la siguiente manera:

pConfigAsfWriter2->SetParam(AM_CONFIGASFWRITER_PARAM_DONTCOMPRESS,TRUE,0)

A continuación, configure el filtro con el perfil deseado. Es esencial que el tipo de medio de la secuencia de entrada coincida exactamente con el formato del perfil. En algunos casos, puede ser necesario examinar el formato del flujo de entrada y crear un perfil personalizado para que coincida con él.

Al conectar WM ASF Writer al filtro ascendente, use el método IGraphBuilder::ConnectDirect. No use ningún método de "conexión inteligente", como IGraphBuilder::Connect o IGraphBuilder::RenderFile para conectar el filtro, ya que esto deshabilitará el modo de "omisión de compresión" del filtro.

Capturar directamente desde un dispositivo a un archivo ASF

Al capturar audio o vídeo directamente en un archivo ASF, el gráfico de filtros tendrá un aspecto similar al siguiente, en función del tipo de dispositivo de captura que se use.

Gráfico de captura de vídeo de Windows Media

Para obtener más información sobre cómo crear gráficos de captura de vídeo y audio, consulte los temas siguientes:

Wm ASF Writer no se ejecutará a menos que todos sus patillas estén conectados. Si configura wm ASF Writer con el perfil de sistema predeterminado (no recomendado), o cualquier perfil con secuencias de audio y vídeo, creará un pin de entrada para cada secuencia y cada uno de esos patillas debe estar conectado. Si no piensa capturar audio, por ejemplo, asegúrese de configurar el filtro con un perfil de solo vídeo para que no se cree ningún pin de audio.

Crear archivos ASF en DirectShow