Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Изображения ключевых кадров из авишки (RIFF_AVI) [D6, Win2k]


Borealis ©   (2004-06-22 13:02:00) 

Можно ли из AVIшки, например с фильмом, выдрать всеключевые кадры на пример в BMPшки, и если можно то как?
(Желательно без использования TMediaPlayer'а)


Borealis   (2004-07-13 12:11:00) [1]

А можно ли это сделать без оболочек (типа DirectShow)?
Если к примеру вырезать один ключевой кадрик из секции movi, то как его можно подсунуть соответствующему кодеку чтобы он вернул распакованую картинку?
(Ведь ключевые кадры на то и ключевые, что не требуют для своей распаковки информации с предыдущих кадров).


NailMan   (2004-06-24 17:42:00) [2]

Ну тогда раз ты знаешь номера тех кадров которые необходимы, то с помощью DirectShow ты сможешь создать граф и подключить к нему граббер. Далее просто - переходишь на нужный кадр-1 делаешь степ на один кадр вперед(встроенным специнтерфейсом) и сграбливаешь кадр в бмп-шку.

Если есть сам DXSDK, то там есть примеры как все это сделать(даже в самом .CHM-е хелпа есть пример подключения граббера).

Пример плеера можешь у меня на сате взять. Только заголовки директовские понядобятся( http://clootie.narod.ru).

---
WBR, NailMan aka 2:5020/3337.13


Borealis   (2004-06-22 18:47:00) [3]


> NailMan ©   (22.06.04 18:28) [1]

Я довольно неплохо знаю структуру RIFF_AVI-файлов и idx1 секций. Проблема в том что фильмы обычно сжаты каким нибудь кодеком (ну там DivX или XviD)...


NailMan   (2004-06-22 18:28:00) [4]

Имея структуру AVI-RIFF можно слить таблицу кадров(idx1), в которой ключевые кадры помечены определенным символом(визуально это треугольничек |> ).

Таблица содержит размер кадра в байтах, смещение от начала образа данных(с начала первого кадра) и идентификатор(содержащий или не содержащий этот самый маркер ключевого кадра).

Вот собственно тебе и намек. Считываешь таблицу, пробегаешься по ней вылавливая нужные записи, выдрачиваешь этот кадр напрямую из файла, и сохраняешь как BMP, только не забудь что BMP имеет строки пикселей снизу вверх, а не напрямую массивом.

Собсно никаких лишних вещей кроме Fileread или подобного.

---
WBR, NailMan aka 2:5020/3337.13


Наверх

Титульная страница Поиск, карта сайта Написать письмо