Udostępnij przez


Aby transkodować treść za pomocą inteligentnej rekompresji

[Funkcja skojarzona z tą stroną, windows Media Format 11 SDK, jest starszą funkcją. Został zastąpiony przez Source Reader oraz Sink Writer. Czytnik Źródeł i Zapis Ujściowy zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał Czytnika Źródeł i Modułu Zapisu Ujścia zamiast Windows Media Format 11 SDK, jeśli jest to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Zawartość można transkodować z jednej szybkości bitów do innej przy użyciu zestawu SDK formatu Windows Media. Zwykle obejmuje to po prostu dekodowanie zawartości i ponowne kodowanie jej do żądanej szybkości bitów. Koder dekodera Windows Media Audio 9 obsługuje inteligentne rekompresje, co umożliwia transkodowanie, które zapewnia lepszą jakość niż zwykle.

W przypadku inteligentnej rekompresji oryginalny strumień audio musi być zakodowany za pomocą kodera audio systemu Windows Media. Wszystkie wersje kodera-dekodera są obsługiwane, ale nie są obsługiwane wyspecjalizowane koderi audio (Windows Media Audio 9 Professional i Windows Media Audio 9 Voice). Jeśli oryginalny dźwięk został zakodowany przy użyciu bezstratnego kodeka Windows Media Audio 9, nie ma potrzeby używania inteligentnej rekompresji, ponieważ żadne informacje nie zostały utracone w oryginalnym kodowaniu.

Aby użyć inteligentnej rekompresji, wykonaj następujące kroki.

  1. Skonfiguruj obiekt czytnika z plikiem źródłowym do odczytu. Aby uzyskać więcej informacji, zobacz Odczytywanie plików ASF.
  2. Skonfiguruj obiekt zapisywania do użycia na potrzeby transkodowania pliku. Ustaw nazwę pliku dla nowego pliku. Wybierz profil, który ma być używany dla nowego pliku. Ustaw wybrany profil w obiekcie piszącym. Aby uzyskać więcej informacji, zobacz Zapisywanie plików ASF.
  3. Pobierz wskaźnik do interfejsu IWMProfile obiektu czytnika, wywołując IWMReader::QueryInterface.
  4. Pobierz interfejs IWMStreamConfig dla strumienia audio do transkodowania przez wywołanie IWMProfile::GetStream.
  5. Aby pobrać interfejs IWMMediaProps dla obiektu konfiguracji strumienia, wywołaj IWMStreamConfig::QueryInterface.
  6. Aby pobrać strukturę WM_MEDIA_TYPE dla strumienia, wykonaj dwa wywołania IWMMediaProps::GetMediaType. Najpierw uzyskaj rozmiar struktury, a następnie przydziel pamięć dla bufora, aby wykorzystać go przy drugim wywołaniu.
  7. Pobierz wskaźnik do interfejsu IWMInputMediaProp s dla danych wejściowych w składniku zapisywania, wywołując IWMWriter::GetInputProps.
  8. Pobierz interfejs IWMPropertyVault dla obiektu właściwości nośnika wejściowego, wywołując IWMInputMediaProps::QueryInterface.
  9. Użyj metody IWMPropertyVault::SetProperty, aby ustawić właściwość g_wszOriginalWaveFormat. Użyj struktury WAVEFORMATEX uzyskanej w kroku 6 jako wartości właściwości.
  10. Uwzględnij zmiany wprowadzone we właściwościach wejściowego medium, wywołując IWMWriter::SetInputProps i przekazując wskaźnik do interfejsu IWMInputMediaProps.
  11. Rozpocznij odczytywanie przykładów z oryginalnego pliku i przekazywanie ich do modułu zapisywania poprzez wywołania funkcji IWMWriter::WriteSample.

tematy zaawansowane

Interfejs IWMInputMediaProps

interfejs IWMMediaProps

interfejs IWMProfile

Interfejs IWMPropertyVault

interfejs IWMStreamConfig