Создание thumbnails из видео клипов (DirectX 8.1)
От: Russ  
Дата: 10.12.02 18:36
Оценка:
Привет,

Затеял я тут сделать лист, который показывает кадр из видео-клипа, даже не кадр, а несколько кадров из каждого клипа которые найдены в такой-то папке. (То что сделано в WinXP если включить вид Thumbnails...)

Задача усложнена (ИМХО) тем что надо показывать не только AVI или только MPEG, а все распространенные видеоформаты...

Я скачал вчера DirectX8.1 SDK и сделал по образу и подобию SDK-шных семплов прогу, которая возвращает нужный мне BITMAP. Все работает отлично, осталось только сделать тоже самое в цикле чтобы "ободрать" все найденные в папке видеоклипы.

ВОПРОС: почему у двух человек которым я заслал свой exe-шник и у которых установлен DirectX моя прога не показывала никаких битмапов до тех пор пока они не скачали DirectX именно версии 8.1... Неужели использованнй мною IMediaDet появился лишь в самой последней версии? может есть проще путь, чем использование для этих целей DirectX?

IMediaDet Interface
The IMediaDet interface retrieves information about a media file, such as the number of streams, and the media type, duration, and frame rate of each stream. It also contains methods for retrieving poster frames from a video stream.



Спасибо за советы,

PS: это мой первый пост здесь...
PPS: надеюсь не последний
Re: Создание thumbnails из видео клипов (DirectX 8.1)
От: Snax Россия  
Дата: 11.12.02 03:28
Оценка:
Здравствуйте, Russ, Вы писали:

R>может есть проще путь, чем использование для этих целей DirectX?


Есть более другой способ. Нужно написать свой рендерный фильтр
(самплы есть в psdk). Далее можно построить простенький граф
и перевести его в состояние paused. Рендер получит первый кадр.
Если он не нравится (например, весь черный), можно пройтись
немного вперед по кадрам, выбирая нужный. Все просто.

Павел,
Re[2]: Создание thumbnails из видео клипов (DirectX 8.1)
От: Russ  
Дата: 11.12.02 07:38
Оценка:
Здравствуйте, Snax, Вы писали:

R>>может есть проще путь, чем использование для этих целей DirectX?


S>Есть более другой способ. Нужно написать свой рендерный фильтр

S>(самплы есть в psdk). Далее можно построить простенький граф
S>и перевести его в состояние paused. Рендер получит первый кадр.

В принципе, использованный мной IMediaDet делает абсолютно тоже самое:
Microsoft DirectX 8.1::Grabbing a Poster Frame
...the Media Detector creates a filter graph that contains the Sample Grabber Filter. To get a bitmap, the Media Detector seeks and pauses the filter graph, and then retrieves the bitmap from the Sample Grabber filter.

Или я чего то не так понял или ты хотел сказать что это можно сделать не используя DirectX?

Спасибо,
Руслан.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.