Para transcodificar contenido con recompresión inteligente
[La característica asociada a esta página, SDK de Windows Media Format 11, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. El lector de origen y el sistema de escritura receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector de origen y escritor receptor en lugar del SDK de Windows Media Format 11, 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.
Puedes transcodificar contenido de una velocidad de bits a otra mediante el SDK de Windows Media Format. Normalmente, esto implica simplemente descodificar el contenido y volver a codificarlo a la velocidad de bits deseada. El códec Windows Media Audio 9 admite la recompresión inteligente, lo que permite la transcodificación que consigue una mejor calidad que la normal.
Para la recompresión inteligente, la secuencia de audio original debe codificarse con el códec Audio de Windows Media. Todas las versiones del códec son compatibles, pero los códecs de audio especializados (Windows Media Audio 9 Professional y Windows Media Audio 9 Voice) no lo son. Si el audio original se ha codificado con el códec Windows Media Audio 9 Lossless, no es necesario usar la recompresión inteligente, porque no se perdió información en la codificación original.
Para usar la recompresión inteligente, realice los pasos siguientes.
- Configure un objeto de lector con el archivo de origen para su lectura. Para obtener más información, vea Leer archivos ASF.
- Configure un objeto writer para usarlo para transcodificación del archivo. Establezca el nombre de archivo para el nuevo archivo. Seleccione un perfil que se usará para el nuevo archivo. Establezca el perfil seleccionado en el objeto writer. Para obtener más información, vea Escribir archivos ASF.
- Obtenga un puntero a la interfaz IWMProfile del objeto lector llamando a IWMReader::QueryInterface.
- Recupere la interfaz IWMStreamConfig para que la secuencia de audio se transcodifique mediante una llamada a IWMProfile::GetStream.
- Obtenga la interfaz IWMMediaProps del objeto de configuración de secuencia llamando a IWMStreamConfig::QueryInterface.
- Recupere la estructura WM_MEDIA_TYPE de la secuencia realizando dos llamadas a IWMMediaProps::GetMediaType. Obtenga el tamaño de la estructura en la primera llamada y asigne memoria para que un búfer pase en la segunda llamada.
- Obtenga un puntero a la interfaz IWMInputMediaProps para la entrada en el escritor mediante una llamada a IWMWriter::GetInputProps.
- Obtenga la interfaz IWMPropertyVault del objeto de propiedades multimedia de entrada llamando a IWMInputMediaProps::QueryInterface.
- Use el método IWMPropertyVault::SetProperty para establecer la propiedad g_wszOriginalWaveFormat. Utilice la estructura WAVEFORMATEX obtenida en el paso 6 como valor de la propiedad .
- Incluya los cambios realizados en las propiedades multimedia de entrada llamando a IWMWriter::SetInputProps y pasandole un puntero a la interfaz IWMInputMediaProps .
- Comience a leer ejemplos del archivo original y pasarlos al escritor con llamadas a IWMWriter::WriteSample.
Temas relacionados