-
Bolg (23.06.10 18:56) [0]Использую DirectShow9 из урока http://www.delphikingdom.com/asp/viewitem.asp?catalogid=270&mode=print а точнее первую половину статьи. Научился выводить видео на форму, теперь интересует 2 вопроса:
1. Как перемотать видео куда нибудь кроме начала.
2. Как сохранить конкретный кадр.
3. Есть ли более лучший способ для сабжа.
1. Пытаюсь использовать MediaSeeking.SetPositions(Courent, AM_SEEKING_AbsolutePositioning,
Stop, AM_SEEKING_NoPositioning);
что должно быть в Courent и Stop непонятно (пока перематывается только в начало)
2. Для сохранения 1 кадра пытаюсь использовать IBasicVideo.GetCurrentImage, так же не знаю что класть в параметры. -
Pavia © (23.06.10 21:26) [1]http://msdn.microsoft.com/en-us/library/aa919956.aspx
IMediaControl.Stop
Courent устанавливаешь куда надо Stop на конец
И запускаешь IMediaControl.Play
Видео бывает разных форматах. В некоторых хранятся каждый кадр сжатый отдельно. Для его вывода достаточно только этих данных.
В других формактах каждый последующий кадр хранит только изменившиюся информацию. Поэтому чтобы вывести нужный кадр нужно вывести все от первого до нужного.
В третих фаилах такие участки череередуются. И кадры которые можно вывести непосредственно из сжатых данных и не нужна информация с других называются ключивыми.
Поэтому получить конкретный кадр не всегда простая задача. -
Bolg (23.06.10 21:42) [2]
> Stop на конец
что это значит -
Bolg (24.06.10 11:15) [3]Мне нужны случайные кадры, но если искать только по ключевым, то говорят, не везде это получится. Перемотка так и не работает, скорее всего неправильно указываю Courent и Stop, их же надо вычислять из продолжительности видео? Пробовал Dspack так и не смог поставить на D2010, другие примеры все древние. Помогите пожалуйста, неужели задача настолько нетривиальна?
-
babanyukv (08.11.13 23:51) [4]