Freigeben über


So transcodieren Sie Inhalte mit der intelligenten Neukomprimierung

[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK ist ein Legacyfeature. Es wurde von Source Reader und Sink Writer abgelöst. Source Reader und Sink Writer wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit quellleser und Senkenschreiber anstelle des Windows Media Format 11 SDK verwendet. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Sie können Inhalte mit dem Windows Media Format SDK von einer Bitrate in eine andere transcodieren. Normalerweise umfasst dies einfach die Decodierung des Inhalts und die erneute Codierung mit der gewünschten Bitrate. Der Windows Media Audio 9-Codec unterstützt die intelligente Rekomprimierung, wodurch die Transcodierung ermöglicht wird, die eine bessere Qualität als normal erzielt.

Für die intelligente Rekomprimierung muss der ursprüngliche Audiodatenstrom mit dem Windows Media Audio-Codec codiert werden. Alle Versionen des Codecs werden unterstützt, die speziellen Audiocodecs (Windows Media Audio 9 Professional und Windows Media Audio 9 Voice) jedoch nicht. Wenn das ursprüngliche Audio mit dem Verlustlosen Codec von Windows Media Audio 9 codiert wurde, ist es nicht erforderlich, die intelligente Neukomprimierung zu verwenden, da in der ursprünglichen Codierung keine Informationen verloren gegangen sind.

Führen Sie die folgenden Schritte aus, um die intelligente Rekomprimierung zu verwenden.

  1. Richten Sie ein Reader-Objekt mit der Quelldatei zum Lesen ein. Weitere Informationen finden Sie unter Lesen von ASF-Dateien.
  2. Richten Sie ein Writer-Objekt ein, das zum Transcodieren der Datei verwendet werden soll. Legen Sie den Dateinamen für die neue Datei fest. Wählen Sie ein Profil aus, das für die neue Datei verwendet werden soll. Legen Sie das ausgewählte Profil im Writer-Objekt fest. Weitere Informationen finden Sie unter Schreiben von ASF-Dateien.
  3. Rufen Sie einen Zeiger auf die IWMProfile-Schnittstelle des Reader-Objekts ab, indem Sie IWMReader::QueryInterface aufrufen.
  4. Rufen Sie die IWMStreamConfig-Schnittstelle für den zu transcodierten Audiodatenstrom ab, indem Sie IWMProfile::GetStream aufrufen.
  5. Rufen Sie die IWMMediaProps-Schnittstelle für das Streamkonfigurationsobjekt ab, indem Sie IWMStreamConfig::QueryInterface aufrufen.
  6. Rufen Sie die WM_MEDIA_TYPE-Struktur für den Stream ab, indem Sie zwei Aufrufe von IWMMediaProps::GetMediaType ausführen. Rufen Sie die Größe der Struktur beim ersten Aufruf ab, und weisen Sie Arbeitsspeicher für einen Puffer zu, der für den zweiten Aufruf übergeben werden soll.
  7. Rufen Sie einen Zeiger auf die IWMInputMediaProps-Schnittstelle für die Eingabe im Writer ab, indem Sie IWMWriter::GetInputProps aufrufen.
  8. Rufen Sie die IWMPropertyVault-Schnittstelle für das Objekt der Eingabemedieneigenschaften ab, indem Sie IWMInputMediaProps::QueryInterface aufrufen.
  9. Verwenden Sie die IWMPropertyVault::SetProperty-Methode , um die g_wszOriginalWaveFormat-Eigenschaft festzulegen. Verwenden Sie die in Schritt 6 abgerufene WAVEFORMATEX-Struktur als Wert der -Eigenschaft.
  10. Schließen Sie Änderungen an den Eingabemedieneigenschaften ein, indem Sie IWMWriter::SetInputProps aufrufen und einen Zeiger auf die IWMInputMediaProps-Schnittstelle übergeben.
  11. Beginnen Sie mit dem Lesen von Beispielen aus der ursprünglichen Datei, und übergeben Sie sie mit Aufrufen von IWMWriter::WriteSample an den Writer.

Weiterführende Themen

IWMInputMediaProps-Schnittstelle

IWMMediaProps-Schnittstelle

IWMProfile-Schnittstelle

IWMPropertyVault-Schnittstelle

IWMStreamConfig-Schnittstelle