Поделиться через


Фильтр разделителя AVI

[Функция, связанная с этой страницей, DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngineи аудио и видеозахват в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код MediaPlayer, IMFMediaEngine и аудио-видеозахват в Media Foundation вместо DirectShowпо возможности. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

Фильтр разделения AVI используется для воспроизведения файлов AVI. Он принимает данные в формате AVI и разбивает его на составные потоки для дальнейшей обработки и /или отрисовки.

Ярлык Ценность
Интерфейсы фильтров IAMMediaContent, IBaseFilter, IPersistMediaPropertyBag
Типы носителей входных закреплений MEDIATYPE_Stream, MEDIASUBTYPE_Avi
Интерфейсы входных закреплений IPin, IQualityControl
Типы носителей выходного пин-кода Обычно MEDIATYPE_Video или MEDIATYPE_Audio. Точный тип зависит от содержимого файла, сжатия файла и используемого кодека.
Интерфейсы выходных закреплений IMediaPosition, IMediaSeeking, IPin, IPropertyBag, IQualityControl
Фильтрация CLSID CLSID_AviSplitter
CLSID страницы свойств Нет страницы свойств.
Выполнимый quartz.dll
Заслуги MERIT_NORMAL
категории фильтра CLSID_LegacyAmFilterCategory

 

Замечания

Обычно этот фильтр подключен к фильтру асинхронного источника файлов на входной закреплении. Он может подключаться к любому фильтру, выходной пин-код которого поддерживает IAsyncReader и предлагает правильный тип носителя в входной пин-код фильтра AVI Splitter.

Выходные закрепления в разделитете AVI поддерживают метод IPropertyBag::Read для чтения свойств из отдельных потоков. В настоящее время определяется следующее свойство.

Свойство Описание
имя Возвращает имя потока, взятое из блока 'strn' в файле AVI. Если этот блок отсутствует, метод Read возвращает E_INVALIDARG.

 

Метод IPropertyBag::Write возвращает E_FAIL. Фильтр AVI Mux поддерживает IPropertyBag::Write для сохранения свойств потока в AVI-файл.

Разделитель AVI не позволяет подчиненным фильтрам использовать собственный распределитель.

Длительность переключения в файле определяет, сколько памяти будет выделено для обработки AVI Splitter. Для обработки файла, переключения которого выполняется в одну секунду фрагментов, требуется гораздо больше памяти, чем файл, длительность взаимодействия которого имеет значение один или два кадра. На современных компьютерах это обычно не проблема, если вы не работаете одновременно с несколькими экземплярами разделителя AVI.

Ищущий

Если файл содержит видеопоток, разделитель AVI поддерживает поиск по номеру кадра. Чтобы включить поиск на основе кадров, вызовите IMediaSeeking::SetTimeFormat на диспетчере графов со значением TIME_FORMAT_FRAME.

Если файл содержит аудиопоток, разделитель AVI поддерживает поиск по образцу номера. Чтобы включить поиск на основе примера, вызовите SetTimeFormat в диспетчере графов фильтров со значением TIME_FORMAT_SAMPLE.

В обоих случаях выходной пин-код для этого потока должен быть подключен к фильтру отрисовщика.

фильтры DirectShow