Condividi tramite


Per transcodificare il contenuto con la ricompressione intelligente

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita da Lettore di origine e Writer sink. Lettore di origine e Writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi Lettore di origine e Writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

È possibile transcodificare il contenuto da una frequenza di bit a un altro usando Windows Media Format SDK. In genere, ciò implica semplicemente decodificare il contenuto e codificarlo di nuovo alla velocità di bit desiderata. Il codec Windows Media Audio 9 supporta la ricompressione intelligente, che consente la trascodazione che ottiene una qualità migliore rispetto alla normale.

Per la ricompressione intelligente, il flusso audio originale deve essere codificato con il codec Windows Media Audio. Tutte le versioni del codec sono supportate, ma i codec audio specializzati (Windows Media Audio 9 Professional e Windows Media Audio 9 Voice) non sono. Se l'audio originale è stato codificato con il codec Senza perdita di Windows Media Audio 9, non è necessario usare la ricompressione intelligente, perché non sono state perse informazioni nella codifica originale.

Per usare la ricompressione intelligente, seguire questa procedura.

  1. Configurare un oggetto lettore con il file di origine per la lettura. Per altre informazioni, vedere Lettura di file ASF.
  2. Configurare un oggetto writer da usare per la transcodatura del file. Impostare il nome del file per il nuovo file. Selezionare un profilo da usare per il nuovo file. Impostare il profilo selezionato nell'oggetto writer. Per altre informazioni, vedere Scrittura di file ASF.
  3. Ottenere un puntatore all'interfaccia IWMProfile dell'oggetto lettore chiamando IWMReader::QueryInterface.
  4. Recuperare l'interfaccia IWMStreamConfig per la transcodifica del flusso audio chiamando IWMProfile::GetStream.
  5. Ottenere l'interfaccia IWMMediaProps per l'oggetto di configurazione del flusso chiamando IWMStreamConfig::QueryInterface.
  6. Recuperare la struttura WM_MEDIA_TYPE per il flusso eseguendo due chiamate a IWMMediaProps::GetMediaType. Ottenere le dimensioni della struttura nella prima chiamata e allocare memoria per un buffer da passare alla seconda chiamata.
  7. Ottenere un puntatore all'interfaccia IWMInputMediaProps per l'input nel writer chiamando IWMWriter::GetInputProps.
  8. Ottenere l'interfaccia IWMPropertyVault per l'oggetto proprietà multimediale di input chiamando IWMInputMediaProps::QueryInterface.
  9. Utilizzare il metodo IWMPropertyVault::SetProperty per impostare la proprietà g_wszOriginalWaveFormat. Utilizzare la struttura WAVEFORMATEX ottenuta nel passaggio 6 come valore della proprietà.
  10. Includere le modifiche apportate alle proprietà dei supporti di input chiamando IWMWriter::SetInputProps e passandolo un puntatore all'interfaccia IWMInputMediaProps .
  11. Iniziare a leggere esempi dal file originale e passarli al writer con chiamate a IWMWriter::WriteSample.

Argomenti avanzati

Interfaccia IWMInputMediaProps

Interfaccia IWMMediaProps

Interfaccia IWMProfile

Interfaccia IWMPropertyVault

Interfaccia IWMStreamConfig