Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
[Funkcja skojarzona z tą stroną, windows Media Format 11 SDK, jest starszą funkcją. Został zastąpiony przez Source Reader i składnik zapisywania ujścia . czytnika źródeł i składników zapisywania ujścia 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 zapisywania ujścia zamiast zestawu SDK windows Media Format 11, 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.]
"Dane wejściowe" w tej dokumentacji to dowolny strumień danych multimediów cyfrowych (np. audio lub wideo), który aplikacja dostarcza do obiektu zapisywania ze źródła przy użyciu odpowiednich interfejsów API. Dane wejściowe muszą być dostarczane w obsługiwanym formacie. Kilka standardowych formatów RGB i YUV jest obsługiwanych jako dane wejściowe, a koderki audio obsługują pcm. Jeśli określony format wejściowy nie jest obsługiwany natywnie przez koder, obiekt zapisywania utworzy wystąpienie obiektu pomocniczego audio lub wideo, który może przekonwertować szeroką gamę formatów na formaty, które koder może zaakceptować. W przypadku danych wejściowych audio obiekt pomocnika dostosuje głębokość bitów, częstotliwość próbkowania i liczbę kanałów w razie potrzeby. W przypadku danych wejściowych wideo obiekt pomocnika wideo wykona konwersje przestrzeni kolorów i zmiany rozmiaru prostokąta. W niektórych przypadkach skompresowane dane audio i wideo mogą być przekazywane w strumieniu wejściowym. Dane wejściowe mogą mieć inny typ nośnika oprócz audio i wideo, takie jak tekst, polecenia skryptu, obrazy nadal lub dowolne dane plików.
Element "output" w tej dokumentacji odnosi się do danych, które obiekt czytelnika przekazuje do aplikacji do renderowania. Dane wyjściowe są równa pojedynczemu strumieniu w czasie odtwarzania. Jeśli używasz wzajemnego wykluczania, wszystkie wzajemnie wykluczające się strumienie współdzielą pojedyncze dane wyjściowe. Zazwyczaj dane wyjściowe są w postaci nieskompresowanych danych audio lub wideo, chociaż mogą zawierać dane dowolnego typu. Obsługiwane formaty danych wyjściowych wideo są wymienione w innej części tej dokumentacji.
Termin "strumień" w tej dokumentacji odnosi się do danych w pliku ASF, w przeciwieństwie do (1) danych źródła danych wejściowych przed przetworzeniem przez obiekt zapisywania i (2) dane wyjściowe po jego dekompresowanym przez obiekt czytelnika. Strumień ASF zawiera dane pochodzące z pojedynczego danych wejściowych w obiekcie zapisywania, chociaż można utworzyć więcej niż jeden strumień na podstawie tych samych danych wejściowych. Strumień ma ten sam format i ustawienia kompresji od początku do końca. Prosty plik ASF ma dwa strumienie, jeden dla dźwięku i jeden dla wideo. Bardziej złożony plik może mieć dwa strumienie audio i kilka strumieni wideo. Strumienie audio mogą mieć te same ustawienia kompresji, ale zawierają różne treści, takie jak narracja w różnych językach. Strumienie wideo mogą zawierać tę samą zawartość, ale mają różne ustawienia kompresji. Ustawienia formatowania i kompresji nośnika, które będą stosowane do każdego strumienia, zostaną określone w profilu.
Relacja między danymi wejściowymi, strumieniami i danymi wyjściowymi może mieć trzy podstawowe typy. Na poniższych trzech diagramach przedstawiono relacje.
W najbardziej podstawowej relacji, która jest profilem bez wzajemnego wykluczenia, każde dane wejściowe są przetwarzane przez składnik zapisywania i wstawione w pliku ASF jako pojedynczy strumień. Podczas odtwarzania czytnik odczytuje strumień i dostarcza nieskompresowane próbki jako pojedyncze dane wyjściowe, jak pokazano na poniższym diagramie.
Bardziej złożona relacja występuje, gdy jest używany wiele wzajemnych wykluczeń szybkości bitów. W takim przypadku pojedyncze dane wejściowe są przetwarzane przez składnik zapisywania i kodowane z kilkoma szybkościami bitów. Każde kodowanie danych jest wstawiane w pliku ASF jako oddzielny strumień. Podczas odtwarzania czytnik określa strumień do dekompresowania na podstawie dostępnej przepustowości. Następnie czytelnik odczytuje wybrany strumień i dostarcza nieskompresowane próbki jako pojedyncze dane wyjściowe, jak pokazano na poniższym diagramie.
Trzeci typ relacji może wystąpić, gdy jest używany język lub niestandardowe wzajemne wykluczanie. W tej relacji wiele danych wejściowych jest przetwarzanych przez czytelnika, a każdy z nich jest wstawiany do pliku ASF jako pojedynczy strumień. Podczas odtwarzania aplikacja ręcznie wybiera strumień do dekompresowania na podstawie podanej logiki. Następnie czytelnik odczytuje wybrany strumień i dostarcza nieskompresowane próbki jako pojedyncze dane wyjściowe. Ten proces może służyć do dołączania ścieżek dźwiękowych w wielu językach. Na poniższym diagramie przedstawiono ten proces.
Istnieje pewne różnice w opisanych wcześniej relacjach. Na przykład plik może zawierać wszystkie trzy relacje lub jedną lub dwie z nich. Istnieje również możliwość skompresowania niektórych danych wejściowych, w tym przypadku moduł zapisywania nie wykonuje dodatkowej kompresji. Czytnik może również dostarczać skompresowane próbki. Ale jeśli tak, musisz uzyskać do nich dostęp według numeru strumienia, a nie według numeru wyjściowego.
Nuta
Dane wejściowe, pary i dane wyjściowe są przypisywane przez obiekty zestawu SDK formatu Windows Media. Strumienie mają numer strumienia, który jest oparty na 1, zdefiniowany w profilu. Każdy strumień jest również przypisany do indeksu strumienia do użycia w wyliczaniu strumieni w profilu. Żadna z tych liczb nie ma gwarancji, że jest ze sobą spójna. Oznacza to, że numer wejściowy 1 może nie odpowiadać numerowi strumienia 1, numer strumienia 1 może nie odpowiadać indeksowi strumienia 1 itd.
Tematy pokrewne