Re: Покадровый просмотр видео.
От: Videoman Россия https://hts.tv/
Дата: 14.02.19 06:28
Оценка:
Здравствуйте, Melamed, Вы писали:

M>Нужен покадровый просмотр видео.

M>Как я понял из документации покадровый просмотр видео можно осуществить либо с помощью интерфейса IVideoFrameStep
Все верно. Это штатное и, пожалуй, единственное средство которое есть из коробки.

M>либо с помощью метода IMediaSeeking::SetPosition, предварительно установив формат времени в TIME_FORMAT_FRAME.

Сам граф и его IMediaSeeking никак не обрабатывают вызов SetPosition, а делегируют его пинам сплитера. Дальше все зависит от него. Подавляющее большинство сплитеров поддерживают только TIME_FORMAT_MEDIA_TIME. Сплитеры же парсят сам видео контейнер, так что на самом деле все зависит от формата и разработчика.

M>В первом случае удается только реализовать только покадровый просмотр вперед и при этом слышны звуки, которые записаны в саундтреке, когда на экране данный кадр.

Ну просто не рендерите цепочку фильтров ответственных за звук.

M>Во втором случае при вызове метода IMediaSeeking::SetTimeFormat c аргументом TIME_FORMAT_FRAME возникает ошибка "Неверный параметр".

Значит ваш сплитер не поддерживает этот формат позиционирования.

M>Желательно организовать покадровый просмотр видео вперед и назад без звукового сопровождения, если на видео имеется саундтрек.

В рамках DirectShow, как готового фреймворка (без программирования собственного движка), проигрывание назад невозможно, в силу особенностей архитектурных решений положенных в его основу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.