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


Фильтр AVI Mux

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

Фильтр AVI Mux принимает несколько входных потоков и переключает их в формат AVI. Фильтр использует отдельные входные закрепления для каждого входного потока и один выходной пин-код для потока AVI.

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

Ярлык Ценность
Интерфейсы фильтров IBaseFilter, IConfigAviMux, IConfigInterleaving, IMediaSeeking, IPersistMediaPropertyBag, ISpecifyPropertyPages
Типы носителей входных закреплений Любой основной тип, соответствующий старому стилю FOURCC или MEDIATYPE_AUXLine21Data. (Дополнительные сведения см. в разделе класс FOURCCMap.)
  • Если основной тип MEDIATYPE_Audio, формат должен быть FORMAT_WaveFormatEx.
  • Если основной тип MEDIATYPE_Video, формат должен быть FORMAT_VideoInfo или FORMAT_DvInfo.
  • Если основной тип MEDIATYPE_Interleaved, формат должен быть FORMAT_DvInfo.
Интерфейсы входных закреплений IAMStreamControl, IMemInputPin, IPin, IPropertyBag, IQualityControl
Типы носителей выходного пин-кода MEDIATYPE_Stream, MEDIASUBTYPE_Avi
Интерфейсы выходных закреплений IPin, IQualityControl
Фильтрация CLSID CLSID_AviDest
CLSID страницы свойств CLSID_AviMuxProptyPage, CLSID_AviMuxProptyPage1
Выполнимый qcap.dll
Заслуги MERIT_DO_NOT_USE
категории фильтра CLSID_LegacyAmFilterCategory

 

Замечания

В следующих замечаниях описываются различные аспекты функциональности фильтра AVI Mux.

Контакты

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

Свойства потока

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

Свойство Описание
имя Имя потока. Это свойство записывается как блок 'strn'.

 

Если фильтр запущен или приостановлен, метод IPropertyBag::Write возвращает VFW_E_WRONG_STATE.

Частоты кадров

Если вышестоящий фильтр не указывает частоту кадров в AvgTimePerFrame член структуры VIDEOINFOHEADER, AVI Mux использует метки времени на первом видеокадре. Формат файла AVI не поддерживает переменные частоты кадров.

Удаленные кадры

Фильтр AVI Mux вычисляет удаленные кадры на основе времени мультимедиа каждого образца, если это доступно, или в противном случае метки времени образца. Он записывает запись индекса нулевой длины для каждого удаленного кадра.

IMediaSeeking

Фильтр AVI Mux реализует интерфейс IMediaSeeking следующим образом:

  • Метод GetCurrentPosition возвращает текущий ход мультиплексирования. Если вы перекодировали файл (медленнее, чем в режиме реального времени), это значение является более точным, чем значение, возвращаемое диспетчером графов фильтра. Дополнительные сведения см. в разделе "Примечания" эталонной страницы GetCurrentPosition.
  • Метод GetDurationзапрашивает каждый вышестоящий фильтр и возвращает длительность самого длинного потока. Если любой из этих фильтров завершается сбоем вызова GetDuration (или не поддерживает IMediaSeeking), AVI Mux возвращает код сбоя и заполняет параметр pDuration с максимальной продолжительностью. Однако значение pDuration в этом случае не обязательно является длиной самого длинного входного потока.
  • AVI Mux не реализует методы GetStopPosition, GetPositions, GetAvailable, GetRate или GetPreroll; не реализует никакие методы Set* для поиска.

Расширения формата файлов AVI 2.0

DirectShow в настоящее время поддерживает следующие расширения формата файлов AVI 2.0:

  • Увеличен размер файла AVI (больше 1 ГБ)
  • Иерархическое индексирование

Дополнительные сведения см. в версии 1.02 расширения формата файлов OpenDML AVI, опубликованных в формате OpenDML AVI M-JPEG.

фильтры DirectShow