Configuración del sistema de escritura de 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.

Cuando se crea el filtro WM ASF Writer , se configura automáticamente con el perfil de WMProfile_V80_256Video. Este perfil usa los códecs Windows Media Audio y Windows Media Video versión 8, que no son tan recientes como los códecs de la serie Windows Media 9. Se recomienda crear un perfil personalizado que use los códecs de la serie Windows Media 9 y configurar wm ASF Writer con el perfil personalizado, como se describe en Configuración de perfiles y otras propiedades de archivo ASF. Debe agregar el filtro WM ASF Writer al gráfico de filtros antes de configurar el filtro y configurar el filtro antes de conectarlo a cualquier otro filtro.

Todos los datos de entrada deben marcarse con tiempo y todas las patillas de entrada deben estar conectadas antes de que el filtro se pueda ejecutar o pausar. Por lo tanto, si configura el filtro con un perfil que tiene una secuencia de audio y una secuencia de vídeo, el filtro creará un pin de entrada de audio y vídeo, y ambos patillas deben estar conectados antes de que se pueda ejecutar el filtro. Dado que el SDK de Formato de Windows Media requiere que una secuencia de audio funcione, wm ASF Writer siempre debe tener un pin de audio de entrada, aunque sea para una secuencia ficticía, es decir, una secuencia de audio silenciada y de baja velocidad de bits.

Agregar extensiones de unidad de datos

Puede configurar un flujo de perfil para extensiones de unidad de datos, como códigos de tiempo SMPTE, ya sea antes o después de que el filtro esté conectado, siempre y cuando siga este orden de operaciones:

  1. Agregue una o varias extensiones de unidad de datos a la secuencia mediante IWMStreamConfig2::AddDataUnitExtension.
  2. Llame a IWMProfile::ReconfigStream para actualizar el perfil.
  3. Llame a IConfigAsfWriter::ConfigureFilterUsingProfile con el objeto de perfil actualizado.
  4. Busque el pin de entrada de vídeo y llame a su método IAMWMBufferPass::SetNotify para registrar la interfaz IAMWMBufferPassCallback definida por la aplicación.

Cuando se ejecute el grafo, se llamará al método IAMWMBufferPassCallback::Notify para cada fotograma y podrá obtener y establecer propiedades en el ejemplo mediante sus métodos de interfaz INSSBuffer3 .

Nota:

En algunos escenarios con un uso intensivo del procesador, como el telecine inverso, el sistema wm ASF Writer puede requerir más búferes de salida que algunos filtros de bajada pueden admitir. El descodificador DV, por ejemplo, no aceptará más de un búfer para su pin de salida y lo mismo es true para el descompresión AVI en determinadas condiciones. Si tiene problemas al intentar conectarse a estos filtros o, posiblemente, al ejecutar el grafo, puede ser necesario escribir un filtro intermediario que acepte cualquier número de búferes en su pin de salida.

 

Crear archivos ASF en DirectShow