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


Использование разбиения MPEG-2

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

Заметка

Начиная с Microsoft® Windows® XP, фильтр MPEG-2 разделитель устарел. Вместо этого используйте MPEG-2 Demultiplexer.

 

Фильтр Splitter MPEG-2 поддерживает воспроизведение потоков программ MPEG-2 в режиме pull, содержащих по крайней мере один из следующих типов потоков.

  • Видео MPEG-2
  • Звук MPEG-2
  • Звук Dolby AC-3, закодированный в соответствии с определением для DVD-Video
  • Звук в формате LPCM (линейная импульсно-кодовая модуляция) закодирован как указано для DVD-Video

Для списка типов медиа, которые поддерживает MPEG-2 Splitter, см. Типы медиа MPEG-2 Splitter.

Разделитель MPEG-2 не анализирует потоки транспорта. Используйте фильтр MPEG-2 Demultiplexer для транспортных потоков (только в режиме отправки).

метки времени

При воспроизведении потоков программы MPEG-2 разделитель потоков MPEG-2 обрабатывает первое системное время, с которым сталкивается, в качестве начальной точки отсчета времени для любого потока. Это отличается от MPEG-1 Stream Splitter, который использует метки времени представления. Метод IAMParse::GetParseTime возвращает (возможно, предполагаемое) время системных часов потока для обработанных данных.

Если фильтр разделения MPEG-2 встречает входной образец со свойством разрыва (свойство разрыва можно задать с помощью IMediaSample::SetDiscontinuity или IMediaSample2::SetProperties), он пропускает данные, пока не обнаружит первый пакет в данных и корректирует метки времени, при этом системная ссылка на часы (SCR) для этого пакета считается такой же, как и SCR до разрыва. Если часы SCR либо отстают, либо опережают более чем на секунду, то (в соответствии со спецификацией потока программы MPEG-2) это также рассматривается как дискретность часов, и видимое несоответствие часов вычитается из меток времени, передаваемых последующим фильтрам.

Выбор потока

При воспроизведении потока программы MPEG-2 выбран первый видеопоток и первый аудиопоток, который проходит по программе. Поддерживается до одного аудиовыхода и одного видео пина. В интерфейсе IAMStreamSelect различные потоки одного типа можно выбрать до числа, указанного ограничением звука в заголовке системы. Для звука MPEG-2 сейчас предполагается, что потоки образуют непрерывный диапазон, начиная с потока 0xC0.

поддерживаемые интерфейсы

Фильтр разделения MPEG-2 поддерживает следующие интерфейсы.

  • IAMParse. Только поток программы MPEG-2.
  • IAMStreamSelect. Только потоки программы MPEG-2, только аудиопотоки.
  • IMediaSeeking. Включает режим поиска байтов.

поддержка MPEG-2 в DirectShow