Входные данные, Потоки и выходные данные
Входные данные в этой документации — это любой поток данных цифрового мультимедиа (например, аудио или видео), который приложение доставляет в объект модуля записи из источника с помощью соответствующих API. Входные данные должны быть доставлены в поддерживаемом формате. В качестве входных данных поддерживаются несколько стандартных форматов RGB и YUV, а аудиокодеки поддерживают PCM. Если указанный входной формат изначально не поддерживается кодеком, объект записи создает экземпляр вспомогательного объекта аудио или видео, который способен преобразовать широкий спектр форматов в форматы, которые кодек может принимать. Для звуковых входов вспомогательный объект будет настраивать битовую глубину, частоту выборки и количество каналов при необходимости. Для входных данных видео вспомогательный объект видео будет выполнять преобразования цветового пространства и корректировки размера прямоугольника. В некоторых случаях сжатые звуковые и видеоданные могут передаваться в входном потоке. Входные данные могут быть некоторых других типов мультимедиа, помимо аудио и видео, таких как текст, команды скрипта, все еще изображения или произвольные данные файлов.
Выходные данные в этой документации относятся к данным, которые объект чтения передает приложению для отрисовки. Выходные данные приравниваются к одному потоку во время воспроизведения. При использовании взаимного исключения все взаимоисключающие потоки совместно используют один выход. Как правило, выходные данные представлены в виде несжатых звуковых или видеоданных, хотя они могут содержать любой тип данных. Поддерживаемые форматы выходных данных видео перечислены в других местах этой документации.
Термин stream в этой документации относится к данным в ASF-файле, а не (1) входным исходным данным перед обработкой объектом модуля записи, и (2) выходные данные после распаковки объектом средства чтения. Поток ASF содержит данные, поступающие из одного входного объекта модуля записи, хотя из одного и того же входного объекта можно создать несколько потоков. Поток имеет одинаковые параметры формата и сжатия от начала до конца. Простой ASF-файл содержит два потока: один для аудио и один для видео. Более сложный файл может содержать два аудиопотока и несколько видеопотоков. Звуковые потоки могут иметь одинаковые параметры сжатия, но содержат другое содержимое, например закадровый текст на разных языках. Видеопотоки могут содержать одно и то же содержимое, но имеют разные параметры сжатия. Параметры формата мультимедиа и сжатия, которые объект модуля записи будет применять к каждому потоку, указываются в профиле.
Связь между входными данными, потоками и выходными данными может иметь три основных типа. На следующих трех схемах показаны связи.
В наиболее базовой связи, которая является профилем без взаимного исключения, каждый вход обрабатывается средством записи и вставляется в ФАЙЛ ASF в виде одного потока. При воспроизведении средство чтения считывает поток и предоставляет несжатые образцы в виде единого вывода, как показано на следующей схеме.
Более сложная связь возникает, когда используется взаимное исключение с несколькими скоростами. В этом случае один вход обрабатывается средством записи и кодируется по нескольким скоростям битов. Каждая кодировка данных вставляется в ФАЙЛ ASF в виде отдельного потока. При воспроизведении средство чтения определяет поток для распаковки на основе доступной пропускной способности. Затем средство чтения считывает выбранный поток и доставляет несжатые образцы как один выход, как показано на следующей схеме.
Третий тип связи может возникать при использовании языкового или пользовательского взаимного исключения. В этой связи средство чтения обрабатывает несколько входных данных, каждое из которых вставляется в файл ASF в виде отдельного потока. При воспроизведении приложение вручную выбирает поток для распаковки на основе предоставленной логики. Затем средство чтения считывает выбранный поток и доставляет несжатые образцы в виде одного вывода. Этот процесс можно использовать для включения саундтреков на нескольких языках. Этот процесс представлен на схеме ниже.
Существует некоторый вариант в отношениях, описанных ранее. Например, файл может содержать все три связи или один или два из них. Кроме того, можно сжать некоторые входные данные, в этом случае модуль записи не выполняет дополнительного сжатия. Средство чтения также может доставлять сжатые образцы. Но при этом необходимо получить доступ к ним по номеру потока, а не по выходному номеру.
Примечание
Входные, паровые и выходные данные — это все назначенные номера объектами пакета SDK для формата мультимедиа Windows. Потоки есть номер потока, который основан на 1, который определяется в профиле. Каждому потоку также назначается индекс потока для использования в перечислении потоков в профиле. Ни одно из этих чисел гарантированно не будет согласовано друг с другом. То есть входной номер 1 может не соответствовать номеру потока 1, номер 1 потока может не соответствовать индексу потока 1 и т. д.
Связанные темы