Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Мультимедиа
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #31  
Старый 18.12.2010, 19:38
DSL88 DSL88 вне форума
Новичок
 
Регистрация: 08.09.2008
Адрес: Пермь
Сообщения: 51
Репутация: 10
По умолчанию

Будет отлично, если вы напишите по русски.

Перевел. Что именно вам надо? Программу кидать не буду, т.к. это корпоративная этика. Лучше скажите, я расскажу. Я нашел решение проблемы с помощью того, что я связался с разработчиком и он мне все рассказал и объяснил.
__________________
Жизнь - игра: сюжет фигня... Зато какая графика!!!

Последний раз редактировалось DSL88, 19.12.2010 в 00:28.
Ответить с цитированием
  #32  
Старый 20.12.2010, 18:01
SUN1993 SUN1993 вне форума
Прохожий
 
Регистрация: 13.12.2010
Сообщения: 3
Репутация: 10
По умолчанию

moo2k moo2k вне форума
Местный

Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 320
Репутация: 25
По умолчанию
Вот подправил ошибки, которые нашел. У меня работает. Компилил на D2007.
Вложения
Тип файла: zip Camera.zip (5.8 Кбайт, 1069 просмотров)
__________________
Программирование - это искусство и наш смысл жизни.
Ответить с цитированием

--------------------------------------------------
будь ласка,відправте архів ізвсією прогою якщо є......мені дуже потрібно...я запутався і не можу нічогго виправить....будь-ласка,буду дуже вдячний!
Ответить с цитированием
  #33  
Старый 20.12.2010, 18:12
SUN1993 SUN1993 вне форума
Прохожий
 
Регистрация: 13.12.2010
Сообщения: 3
Репутация: 10
По умолчанию

будь ласка скачайте мені на емейл 4erep1993@ukr.net......це треба срочно(питання життя і смерті........в мене залишилось 2 дні.....щоб шось показать)......БУДЬ ЛАСКА!!!!!!!!!!
Ответить с цитированием
  #34  
Старый 12.01.2011, 20:11
Edos Edos вне форума
Прохожий
 
Регистрация: 17.11.2010
Сообщения: 6
Репутация: 10
По умолчанию

Блин а как DSPack добавить в 9 делфи???... он скотина выкоблучивается))) не хочет... или я вася)!
Ответить с цитированием
  #35  
Старый 12.01.2011, 20:27
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Все нормально устанавливается.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #36  
Старый 12.01.2011, 21:13
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Когда я пытался поставить DSPack в свою Delphi10, он мне выдал около десятка ошибок. Пришлось их править: сидеть и вникать, что же хотел написать автор. В итоге запустил...
Но мое личное ИМХО - игра не стоит свеч. Для работы с веб-камерой пользую AVICAP32.DLL (стандартная библа винды) и счастлив Правда не знаю, можно ли им сохранить видео.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #37  
Старый 12.01.2011, 23:18
Edos Edos вне форума
Прохожий
 
Регистрация: 17.11.2010
Сообщения: 6
Репутация: 10
По умолчанию

Пасибо большое... использую эту библиотеку, работает... но вверх ногами)))) как-бы пытаюсь найти косяк но чето нихрена вот код:
Код:
    SaveDialog1: TSaveDialog;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    hWndC: THandle;
    CapturingAVI: bool;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
const
  WM_CAP_START = WM_USER;
const
  WM_CAP_STOP = WM_CAP_START + 68;
const
  WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
const
  WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
const
  WM_CAP_SAVEDIB = WM_CAP_START + 25;
const
  WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
const
  WM_CAP_SEQUENCE = WM_CAP_START + 62;
const
  WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20;


{$R *.dfm}
function capCreateCaptureWindowA(lpszWindowName: PCHAR;
  dwStyle: longint;
  x: integer;
  y: integer;
  nWidth: integer;
  nHeight: integer;
  ParentWin: HWND;
  nId: integer): HWND;
  stdcall external'AVICAP32.DLL';


procedure TForm1.Button1Click(Sender: TObject);
begin
 hWndC := capCreateCaptureWindowA('My Own Capture Window',
    WS_CHILD or WS_VISIBLE,
    Panel1.Left,
    Panel1.Top,
    Panel1.Width,
    Panel1.Height,
    Form1.Handle, 0);
  if hWndC <> 0 then
    SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
    timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if hWndC <> 0 then
    SendMessage(hWndC, WM_CAP_GRAB_FRAME, 0, 0); тут это типо картинку каждый раз обнавляет...
end;
Админ: Пользуемся тегами!

Последний раз редактировалось Admin, 13.01.2011 в 09:53.
Ответить с цитированием
  #38  
Старый 12.01.2011, 23:30
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

А дрова для камеры точно есть?
Обычно они проводят всю работу перед тем, как вывести изображение на экран.
Вообще есть такая штука:
Код:
const
  AVICAPDLL = 'AVICAP32.DLL';
  WM_CAP_START = WM_USER;
  WM_CAP_SET_CALLBACK_FRAME = WM_CAP_START + 5;
  WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
  WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
  WM_CAP_DLG_VIDEOFORMAT = WM_CAP_START + 41;
  WM_CAP_GET_VIDEOFORMAT = WM_CAP_START + 44;
  WM_CAP_SET_VIDEOFORMAT = WM_CAP_START + 45;
  WM_CAP_GET_STATUS = WM_CAP_START + 54;
  WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
  WM_CAP_STOP = WM_CAP_START + 68;
  WM_CAP_SET_PREVIEW = WM_CAP_START + 50;
  WM_CAP_SET_PREVIEWRATE = WM_CAP_START + 52;
  WM_CAP_SET_SCALE = WM_CAP_START + 53;
  WM_CAP_EDIT_COPY = WM_CAP_START + 30;
  WM_CAP_SET_CALLBACK_YIELD = WM_CAP_START + 4;
  WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START + 6;
  WM_CAP_DLG_VIDEODISPLAY = WM_CAP_START + 43;
...
// Устанавливаем параметры предпросмотра
    SendMessage(h_cam, WM_CAP_SET_SCALE, 1, 0);
    SendMessage(h_cam, WM_CAP_SET_PREVIEWRATE, 40, 0);
    SendMessage(h_cam, WM_CAP_SET_PREVIEW, 1, 0);
    SendMessage(h_cam, WM_CAP_SET_CALLBACK_FRAME, 0, Integer(@FrameCallback));
Соответственно масштаб, интервал между кадрами, показывать превью и функция обработки кадра.
Последнее для простого рисования изображения на форме не нужно.

После этого не понадобится даже таймер, а изображение будет автоматически рисоваться в окне камеры через каждые 40 миллисекунд (только далеко не все камеры поддерживают 25 кадров/сек, у моей например максимум 15)
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 12.01.2011 в 23:34.
Ответить с цитированием
  #39  
Старый 16.01.2011, 11:05
EPaul EPaul вне форума
Прохожий
 
Регистрация: 16.01.2011
Адрес: Набережные Челны
Сообщения: 12
Репутация: 159
По умолчанию

Кто нить работал с сетевыми web камерами? Как получить видео поток или картинку с сетевой камеры? Видео, конечно можно получить и в браузере, но тогда вопрос, как вытащить его из браузера. Как снять хотя бы картинку с того места браузера, где производится вывод видео, и даже в том случае, когда браузер свернут? Это реально сделать?
Ответить с цитированием
  #40  
Старый 18.01.2011, 22:26
Edos Edos вне форума
Прохожий
 
Регистрация: 17.11.2010
Сообщения: 6
Репутация: 10
По умолчанию

с верх ногами разобрался... пасибо теперь возникает еще куча вопросов
1) когда говорю ему записывай то он записывает но записывает до тех пор пока самому не надоест.
2) в savedialog указываю имя файла под которым надо сохранить видеозапись но сохранение происходит под другим именем в основном под именем "D" и еще и без расширения...
вот код... помогите люди добрые)))))
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    SaveDialog1: TSaveDialog;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    hwndc: THandle;
    Capturingavi: bool;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
const
  WM_CAP_START = WM_USER;
const
  WM_CAP_STOP = WM_CAP_START + 68;
const
  WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
const
  WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
const
  WM_CAP_SAVEDIB = WM_CAP_START + 25;
const
  WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
const
  WM_CAP_SEQUENCE = WM_CAP_START + 62;
const
  WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20;


{$R *.dfm}
function capCreateCaptureWindowA(lpszWindowName: PCHAR;
  dwStyle: longint;
  x: integer;
  y: integer;
  nWidth: integer;
  nHeight: integer;
  ParentWin: HWND;
  nId: integer): HWND;
  stdcall external 'AVICAP32.DLL';


procedure TForm1.Button1Click(Sender: TObject);
begin
 hWndC := capCreateCaptureWindowA('Записывающее Окно',
    WS_CHILD or WS_VISIBLE,
    Panel1.Left,
    Panel1.Top,
    Panel1.Width,
    Panel1.Height,
    Form1.Handle, 0);
  if hWndC <> 0 then
    SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
    timer1.Enabled:=true;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 if hWndC <> 0 then
  begin
    SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
    hWndC := 0;
  end;

end;

procedure TForm1.Button4Click(Sender: TObject);
begin
 if hWndC <> 0 then
  begin
    SaveDialog1.DefaultExt := 'bmp';
    SaveDialog1.Filter := 'Bitmap files (*.bmp)|*.bmp';
    if SaveDialog1.Execute then
      SendMessage(hWndC,
        WM_CAP_SAVEDIB,
        0,
        longint(pchar(SaveDialog1.FileName)));
  end;

end;

procedure TForm1.Button5Click(Sender: TObject);
begin
if hWndC <> 0 then
  begin
    SaveDialog1.DefaultExt := 'avi';
    SaveDialog1.Filter := 'AVI files (*.avi)|*.avi';
    if SaveDialog1.Execute then
    begin
      CapturingAVI := true;
      SendMessage(hWndC,
        WM_CAP_FILE_SET_CAPTURE_FILEA,
        0,
        Longint(pchar(SaveDialog1.FileName)));
      SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0);
    end;
  end;

end;

procedure TForm1.Button6Click(Sender: TObject);
begin
 if hWndC <> 0 then
  begin
    SendMessage(hWndC, WM_CAP_STOP, 0, 0);
    CapturingAVI := false;
  end;
end;



procedure TForm1.FormCreate(Sender: TObject);
begin
 CapturingAVI := false;
  hWndC := 0;
  SaveDialog1.Options :=[ofHideReadOnly, ofNoChangeDir, ofPathMustExist]

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if hWndC <> 0 then
    SendMessage(hWndC, WM_CAP_GRAB_FRAME, 0, 0);
end;

end.
Админ: Пользуемся тегами, читаем правила!

Последний раз редактировалось Admin, 18.01.2011 в 22:55.
Ответить с цитированием
  #41  
Старый 29.03.2011, 14:59
VladIsLove VladIsLove вне форума
Прохожий
 
Регистрация: 29.03.2011
Сообщения: 1
Репутация: 10
Вопрос Баг

Мне надо обрабатывать кадры с камеры несколько раз в секунду... если выставить в таймере (прога котурую выложыл moo2k) значение <100 то тут начинаютса баги:
1) Постепенное выделение оперативной памяти
2) Если потрясти окном программы то оно или зависнит, или выскочит ошибка
Впринцыпе я думаю что ето баг самого DSPack, потому что если взять его родной пример PlayVideoCap и также бешено потрясти окном , то память также будет выделятса...
Подскажыте что мне делать плиз, прога нужна срочно

ЗЫ: Если что, извините за плохой руский
Ответить с цитированием
  #42  
Старый 31.08.2011, 16:13
Аватар для neostile1990
neostile1990 neostile1990 вне форума
Прохожий
 
Регистрация: 29.08.2011
Адрес: Черновцы
Сообщения: 2
Версия Delphi: 2010
Репутация: 10
По умолчанию

м да, я оказивается полный лаамер(

Последний раз редактировалось neostile1990, 31.08.2011 в 16:15.
Ответить с цитированием
  #43  
Старый 05.10.2011, 05:22
Lucky192 Lucky192 вне форума
Прохожий
 
Регистрация: 04.10.2011
Сообщения: 28
Репутация: 1351
По умолчанию

Скачайте GraphEdit и попробуйте поработать в нем. Пока не поймете основы - дальше разговаривать бессмысленно.
В меню есть пункт InsertFilters и там куча фильтров. Нас интересуют фильтры DirectShow. Выберите фильтр "File source (Async)" и нажмите кнопку добавить. В открывшемся окне выберите какой-нибудь файл с фильмом. Теперь вызовите контекстное меню, щелкнув правой кнопкой мыши справа от надписи Output, и выберите пункт Renrer Pin. После некоторого раздумья появится схема. Теперь можно запустить фильм (кнопка с треугольником).
А теперь то что хотели разделение потока (для просмотра и записи). Остановите проигрывание. Удалите связь до или после компрессора (как нравится). Добавьте фильтр "Infinite Pin Tee Filter" (это такой универсальный разветвитель). Восстановите удаленную ранее связь, пустив ее через фильтр "Infinite Pin Tee Filter". Сначала надо подключить вход этого фильтра, выходы - потом. Когда подключите выход, увидите что число выходов увеличилось на единицу. Выберите следующий выход и выполните команду "Render Pin...". Появится еще одна цепочка. Теперь, если запустить проигрывание, должно получиться примерно следующая картина:



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

P.S. AVICap32 - давно устаревшая библиотека, пережиток 16-битных версий. Со всеми вытекающими. Она давно уже не поддерживается и жива лишь потому что сама работает через DirectShow. Используйте DirectShow и будет вам счастье. Все современные видеоплеееры работают именнно через DirectShow и ничего. Пакет DSPack вполне работоспособен (насчет новых версий не скажу, но года 3 назад все было хорошо). Если хотите получить прямой регулярный доступ к данным видеопотока, лучше не выцеплять их через Grab-фильтры, а написать свой фильтр и вставить его в нужное место цепочки. DSPack это позволяет, и не так уж это сложно в конце концов.

Последний раз редактировалось Lucky192, 05.10.2011 в 06:08.
Ответить с цитированием
  #44  
Старый 24.10.2011, 13:30
RomanGreb RomanGreb вне форума
Прохожий
 
Регистрация: 24.10.2011
Сообщения: 1
Репутация: 10
По умолчанию

Цитата:
Сообщение от moo2k
Вот подправил ошибки, которые нашел. У меня работает. Компилил на D2007.
Что-то я так и не понял что вы подправили в коде, все абсолютно идентично, а все равно не работает (хотя уже пофигу на самом деле).

Насчет проблемы с появлением ошибки external exception c0000008 при работе с web камерой (если вдруг кому потребуется).
Решается так:
Tools -> Options -> Borland Debuggers -> Native OS Exceptions -> Ищите там свою ошибку Invalid Handle ($C0000008) и ставите в атрибутах On resume - Run handled. Компилируете и наслаждаетесь картинкой с камеры.
Ответить с цитированием
  #45  
Старый 17.02.2012, 15:31
Аватар для neostile1990
neostile1990 neostile1990 вне форума
Прохожий
 
Регистрация: 29.08.2011
Адрес: Черновцы
Сообщения: 2
Версия Delphi: 2010
Репутация: 10
По умолчанию

Цитата:
Сообщение от fanato4ka
народ!!
кто подскажет..почему у меня камера верх ногами показывает??
во всех програмах
что нужно делать?
Потомо что косо дрова стоят! скачай на оф сайте
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter