Udostępnij za pośrednictwem


Używanie modułu zapisu dla zlewu

Przegląd

Typy kontenerów plików

"Sink writer" ma wbudowaną obsługę dla kilku typów kontenerów plików. Aby uzyskać pełną listę, zobacz MF_TRANSCODE_CONTAINERTYPE. Dodatkowe typy kontenerów można obsługiwać, pisząc niestandardowy kanał multimediów . Kontener plików jest określony podczas tworzenia nowego wystąpienia składnika zapisywania ujścia.

Formaty transmisji strumieniowej

Dla każdego strumienia aplikacja musi określić następujące elementy.

  • format wejściowy jest formatem, który aplikacja wysyła do zapisywacza danych.
  • Format danych wyjściowych to format, który zostanie zapisany w pliku.

Formaty wejściowe i wyjściowe mogą być kompresowane lub nieskompresowane. Komponent zapisu wynikowego obsługuje następujące ujęcia.

  • Nieskompresowane dane wejściowe ze skompresowanymi danymi wyjściowymi. Jest to typowy przypadek i jest używany w przypadku scenariuszy kodowania lub transkodowania. Koder programu Microsoft Media Foundation musi być dostępny, który akceptuje typ danych wejściowych i koduje do typu danych wyjściowych.
  • Skompresowane dane wejściowe z identycznymi danymi wyjściowymi. Użyj tej kombinacji, aby remuxować plik bez transkodowania.
  • Nieskompresowane dane wejściowe z identycznymi danymi wyjściowymi. Ta kombinacja służy do zapisywania nieskompresowanego dźwięku lub wideo w kontenerze plików.

Składnik zapisu nie obsługuje zmiany rozmiaru wideo, konwersji liczby klatek ani ponownego próbkowania dźwięku, chyba że te funkcje są udostępniane przez koder. W przeciwnym razie aplikacja może użyć cyfrowych procesorów sygnałowych do przekonwertowania danych wejściowych, zanim dane zostaną wysłane do

Tworzenie modułu zapisywania danych

Istnieją dwie funkcje tworzące moduł zapisywania ujścia:

Jeśli używasz jednego z wbudowanych ujściów multimediów, preferowana jest funkcja MFCreateSinkWriterFromURL, ponieważ obiekt wywołujący nie musi konfigurować ujścia multimediów.

Metoda MFCreateSinkWriterFromURL udostępnia kilka opcji określania typu kontenera plików. W najprostszym przypadku funkcja używa rozszerzenia nazwy pliku w adresie URL, aby wybrać kontener plików. Aby uzyskać szczegółowe informacje, zapoznaj się ze stroną referencyjną funkcji.

Na przykład poniższy kod określa nazwę pliku "output.wmv" dla adresu URL. Na podstawie rozszerzenia nazwy pliku moduł zapisu załaduje ASF Media Sink w celu utworzenia pliku Advanced Systems Format (ASF).

    HRESULT hr = MFCreateSinkWriterFromURL(L"output.wmv", NULL, NULL, &pSinkWriter);

W przypadku MFCreateSinkWriterFromMediaSinktyp pliku jest określany przez odbiornik multimediów.

mechanizm zapisu końcowego