Establecer propiedades en el receptor de archivos
El receptor de archivos ASF es una implementación de IMFMediaSink proporcionada por Media Foundation que una aplicación puede usar para archivar datos multimedia de ASF en un archivo. Para obtener información sobre el modelo de objetos de los receptores multimedia de ASF y el uso general, vea Receptores multimedia de ASF.
Después de crear el receptor de archivos ASF, debe configurarse con información sobre las secuencias del archivo de salida. Este procedimiento se describe en Agregar información de flujo al receptor de archivos ASF. Puede establecer propiedades adicionales en el receptor de archivos en función del tipo de codificación; cubos fugados; propiedades generales del archivo. Esta configuración no se escribe en el objeto de encabezado ASF final. En este tema se describe el proceso de agregar estas propiedades en el almacén de propiedades del receptor de archivos.
El objeto ContentInfo mantiene las propiedades globales del archivo y las propiedades de secuencia individuales para el receptor de archivos. Para obtener información sobre cómo obtener una referencia al objeto ASF ContentInfo del receptor de archivos, vea Creación del receptor de archivos ASF.
Para obtener una referencia al almacén de propiedades del receptor de archivos (IPropertyStore), llame a IMFASFContentInfo::GetEncodingConfigurationPropertyStore en la referencia del objeto ContentInfo del receptor de archivos.
Propiedades de codificación de secuencias
Para codificar el contenido correctamente, el archivo debe conocer cierta información de codificación, como el tipo de codificación y los parámetros de codificación relacionados. Estos valores se establecen en el receptor de archivos como valores de propiedad en un almacén de propiedades que mantiene el objeto ContentInfo de ASF. Si va a configurar el receptor de archivos antes de crear instancias de los codificadores pertinentes, puede usar el objeto ContentInfo con todas las propiedades rellenadas para crear los codificadores de Windows Media. En este caso, las propiedades se establecen automáticamente en los codificadores con instancias. Por el contrario, si va a crear los codificadores antes del receptor, asegúrese de que las propiedades establecidas en los codificadores se copian en el almacén de propiedades del receptor de archivos.
Para establecer las propiedades de codificación, debe tener acceso al almacén de propiedades de nivel de secuencia del receptor de archivos. Pase el número de secuencia en el parámetro wStreamNumber del método IMFASFContentInfo::GetEncodingConfigurationPropertyStore . Los números de secuencia deben coincidir con los valores establecidos al configurar cada flujo del perfil. Los valores de propiedad se establecen llamando a IPropertyStore::SetValue. En la tabla siguiente se describen las propiedades admitidas.
Las propiedades dependen del tipo de codificación. Para obtener información sobre las propiedades y los valores respectivos que debe establecer, vea Propiedades de codificación.
Leaky Bucket (propiedad)
Los parámetros de cubo filtrados determinan la ventana de búfer real usada por el codificador para la secuencia. La propiedad MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET del receptor de archivos contiene los parámetros de cubo filtrados, la velocidad de bits, la ventana del búfer y la totalidad inicial del búfer. Esta propiedad se establece en el almacén de propiedades de nivel de secuencia para el receptor de archivos y debe establecerse después de que se hayan creado y configurado los codificadores. Este valor se establece en . Durante la negociación del tipo de medio, el codificador decide la ventana del búfer y la velocidad de bits que se va a usar. Puede obtener estos valores mediante la interfaz IWMCodecLeakyBucket , que se define en wmcodecifaces.h y debe vincular a wmcodecdspuuid.lib para llamar a sus métodos.
Los valores recuperados se pueden establecer para esta propiedad para cada secuencia del receptor de archivos ASF.
Propiedades del receptor de archivos globales
Para obtener el almacén de propiedades global del receptor de archivos, pase 0 en el parámetro wStreamNumber del método IMFASFContentInfo::GetEncodingConfigurationPropertyStore . Los valores de propiedad se establecen llamando a IPropertyStore::SetValue. En la tabla siguiente se describen las propiedades admitidas.
Propiedades de nivel de archivo | Descripción |
---|---|
MFPKEY_ASFMEDIASINK_BASE_SENDTIME | El tiempo de envío indica cuándo se liberará la carga dentro del cubo filtrado. Este valor de propiedad indica la primera hora de envío. El multiplexador usa este valor para calcular los tiempos de envío posteriores para los paquetes generados y garantiza que los datos fluyen constantemente a través del cubo filtrado. |
MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE | Este valor BOOL indica si el multiplexador debe ajustar la velocidad de bits automáticamente para asegurarse de que los datos no desbordan el cubo filtrado. |
MFPKEY_ASFMEDIASINK_DRMACTION | Esto indica la acción DRM del receptor de medios ASF para la generación de archivos. En esta versión, solo se admite la transcodificación drm. |
Temas relacionados