![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Копировать в битмап фильм, играемый MediaPlayer [D5, Win2k]
Юра © (2002-12-03 11:43:00)Есть медиаплеер, он проигрывает фильм. В качестве display указана panel1. Хотелось бы теперь по нажатию кнопки сграбить картинку с panel1 в bitmap. Пробовал разными способами - копирует все, кроме кадров из фильма, т.е. пока фильма нет - надписи на panel, перекрывающие окна диалога - копирует, фильм - нет.
Владимир Васильев (2002-12-06 13:47:00) [1]>Benedict
"использование DirectShow части DirectX " не может провалиться так как SampleGrabberFilter вы вставляете между декодером и рендерером и ISampleGrabber просто дает ссылку на текущий обработанный буфер
Benedict (2002-12-06 13:43:00) [2]Дело в том, что здесь многое зависит от медиаплеера и фильма (точнее кодека к нему). Новейшие кодеки DivX, например, проигрывают фильм не на "поверхность" окна, а на оверлей DirectX
Поэтому попытка использовать для захвата GUI-шный Canvas не
проходит. Это относится и к стандартным программам GUI-захвата.
Даже использование DirectShow части DirectX в этом случае может провалиться. То есть кажется единственный разумный способ, как указал LongIsland, - разбирать АVI файл на кадры.
Владимир Васильев (2002-12-05 10:27:00) [3]Вам нужен, например, DSPack c http://www.progdigy.com/
см. пример PlayVideoCap
LongIsland (2002-12-04 16:17:00) [4]Для этого нужно узнать номер кадра и скинуть его в bmp
Юра (2002-12-04 15:54:00) [5]LongIslandу - это хорошо, но что делать, если у меня нет устройства видеозахвата? Я хочу в произвольные моменты времени делать копию кадра, который играется стандартным проигрывателем, в bitmap и не более того.
LongIsland (2002-12-04 11:38:00) [6]http://www.sources.ru/delphi/graphics/capture_image_from_video.shtml
trotski (2002-12-03 21:46:00) [7]Попробуй выводить не на панель, а на TImage, тогда сможешь использовать SaveToFile(lalala), или у Панели поищи что-нибудь подобное