![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
Rankot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 6.1.2007 Репутация: нет Всего: нет |
Мне нужно обрабатывать и анализировать видео из файла.
Для этого требуется получить по порядку все его кадры в несжатом формате, желательно YUV (YUY2). Видеофайл может быть любым пригодным для проигрывания (avi, wmv, asf, mkv, ogm, rm, mov...), что подсказывает, что тут нужен бы DirectShow. У меня по нему знания поверхностные. Скачал DSPack, поковырял. Есть там вроде как подходящий компонент TSampleGrabber. Но даже тестовый проект с ним работает наполовину :) почему-то по запросу хватает одни сплошные нули. И не нравится то, что для захвата нужно запускать граф. Получается, всегда будет скорость 25к/с, он ведь идет независимо. А мне нужно как можно быстрее, и показывать видео, звук проигрывать не надо. А еще иногда обработка кадра может занять длительное время, больше 1/25 сек - а пропуски кадров неприемлемы. Думал, может, не запускать граф, а переходить к очередному кадру после анализа предыдущего... но порывшись на родном форуме DSPack, обнаружил, что seeking по файлу выполняется очень медленно, и глючит часто при этом SampleGrabber. Так что даже не знаю, с чего начать... то ли свой фильтр рендерер или трансформер сделать (но сильно не хочется добавлять что-либо, требующее дополнительной установки, прав администратора и т.п.), то ли этот SampleGrabber дальше ковырять... и как добиться, чтобы быстро работало, и кадры не пропускали - неясно. Может, кто-нибудь занимался подобным, подскажите плз, как лучше и правильнее сделать? В инете пока нашел только советы рендерить видео на панельку и с ее канваса брать битмап. Не смешно. :( |
|||
|
||||
MIX55 |
|
|||
![]() много работы ![]() Профиль Группа: Awaiting Authorisation Сообщений: 208 Регистрация: 23.10.2005 Где: Здесь Репутация: нет Всего: 4 |
Воспользуйся unit'ом Vfw.pas можешь по этому форуму поискать где-то было.
Это сообщение отредактировал(а) MIX55 - 6.1.2007, 15:29 --------------------
Hарод, а как в дельфи писать паскалевские проги....?*********************************************Жизнь слишком коротка, чтобы писать на Assembler'e |
|||
|
||||
Rankot |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 6.1.2007 Репутация: нет Всего: нет |
нет, vfw не годится.
Оно только для avi, да и вообще устарело как бы ![]() А DirectShow рулит. Граф собираю, прикрепляю samplegrabber и null renderer, удаляю аудиофильтры, при помощи setsyncsource(nil) заставляю его проигрываться быстро. На OnBuffer SampleGrabber-а вешаю функцию анализа, вроде бы что-то получается. Пока onbuffer не выполнится, граф дальше не идет, это хорошо. Хотя часто вылезают какие-то странные ошибки, видно в DSPack не все гладко ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |