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

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

Мучения с видео :)


Ray ©   (2006-05-22 20:40:00) 

1.Как узнать, какое в загружаемом .avi разрешение и частота кадров?
2.Как вывести отдельный указанный кадр в виде стоп-кадра?
3.Как его сохранить в Image?


Ray   (2006-05-26 09:36:00) [1]


> Вот пример из книги "win32 Api в Delphi" для Delphi7 8кб
> В нем определяется число кадров в фильме его длительность
> и
> сохраняется в bmp кадр соответствующий trackBar
> http://programania.com/avi2bmp.zip


В общем, тут то, что надо. Но оно работает ДИКО ТОРМОЗНО :(
В плеерах же скакание по кадрам происходит довольно бодро. Интересно, как этого достичь?


Ray   (2006-05-24 08:40:00) [2]

Кстати, вот тут исходник этого модуля (12 кБт).
http://r7.org.ru/files/trabla.zip


Ray   (2006-05-23 22:06:00) [3]

Возвращаюсь к п.3
Вывожу видео на панель:

 With MediaPlayer do
     begin
      FileName:=BackgroundAVIFileName;
      TimeFormat:= tfFrames;
      Display := PreviewForm.VideoPanel;
      DeviceType:= dtAutoSelect; //set Device compatibility to AVI
      Open();
      DisplayRect:=PreviewForm.VideoPanel.ClientRect;
     ...
    end;

Видео выводится, но у меня на этой панели еще лежат Image, в которых после вывода видео рисуется текст надписей.

Мне надо вывести на этот кадр надписи.

Вместо этого получается, что мигнут надписи, а потом все закрывает кадр видео. Если по нему провести посторонним окном, видео стирается и появляются надписи.
Как сделать, чтобы получилось как мне надо?


Ray   (2006-05-23 21:59:00) [4]

Ответ:

Poz:=CurPoz.Frames+Trunc(fps*(CurPoz.Seconds+60*CurPoz.Minutes+360*CurPoz.Hours));
With MediaPlayer do
 begin
  StartPos:=Poz;
  EndPos:=Poz+1;
  Play;
 end;

И всего-то :)


Desdechado   (2006-05-22 21:10:00) [5]

> Как вывести отдельный указанный кадр в виде стоп-кадра?
Многие кодеки хранят не кадр целиком, а его отличие от какого-то базового кадра. Причем этот базовый определяется при кодировании исходя из динамичности сцены, но не реже, чем некоторое число. Поэтому получить небазовый кадр можно только путем просчета всех кадров до нужного начиная с базового.
А вообще многое от кодека зависит.

> Как его сохранить в Image?
Image ничего не кохраняет, он показывает.


programania   (2006-05-22 20:52:00) [6]

Вот пример из книги "win32 Api в Delphi" для Delphi7 8кб
В нем определяется число кадров в фильме его длительность и
сохраняется в bmp кадр соответствующий trackBar
http://programania.com/avi2bmp.zip


Наверх

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