Использование разбиения 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. Включает режим поиска байтов.
Связанные разделы