Использование сплиттера 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 .

 

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

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

Список типов носителей, поддерживаемых разделитировщиком MPEG-2, см. в разделе Типы мультимедиа mpeg-2 Splitter.

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

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

При воспроизведении потоков программы MPEG-2 фильтр разделения MPEG-2 рассматривает первую ссылку на системные часы, с которой он сталкивается, как источник времени любого потока. Это отличается от сплиттера потока MPEG-1, в котором используются метки времени представления. Метод 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