Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.17;
Скачать: CL | DM;

Вниз

DSPack + WebCam   Найти похожие ветки 

 
Zalm ©   (2009-11-07 17:00) [0]

Здравствуйте, подскажите пожалуйста может кто пользовался DSPack"ом, кто знает как поменять разрешение веб камеры? по дефолту она показывает 320*на сколько-то там и 16 бит, а в её параметрах видно что она может и 640*480 32бита


 
Zalm ©   (2009-11-09 13:33) [1]

никто не знает что ли?(


 
SiteNight   (2009-11-19 14:13) [2]

Вот исходник в котором выбираете устройство(вашу вэбкамеру) и потом разрешение в ней:

unit main;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, DSPack, DSUtil, DirectShow9;

type
 TMainForm = class(TForm)
   CaptureGraph: TFilterGraph;
   VideoWindow: TVideoWindow;
   ListBox1: TListBox;
   VideoSourceFilter: TFilter;
   StartButton: TButton;
   StopButton: TButton;
   Label1: TLabel;
   ListBox2: TListBox;
   Label3: TLabel;
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure ListBox1Click(Sender: TObject);
   procedure StartButtonClick(Sender: TObject);
   procedure StopButtonClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 MainForm: TMainForm;
 VideoDevice: TSysDevEnum;
 VideoMediaTypes: TEnumMediaType;
implementation

{$R *.dfm}

{ TMainForm }

procedure TMainForm.FormCreate(Sender: TObject);
var i: integer;
begin
 VideoDevice := TSysDevEnum.Create(CLSID_VideoInputDeviceCategory);
 for i := 0 to VideoDevice.CountFilters - 1 do
   ListBox1.Items.Add(VideoDevice.Filters[i].FriendlyName);

 VideoMediaTypes := TEnumMediaType.Create;
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
 VideoDevice.Free;
 VideoMediaTypes.Free;
end;

// Выбор видео ресурса
procedure TMainForm.ListBox1Click(Sender: TObject);
var
 PinList: TPinList;
 i: integer;
begin
 VideoDevice.SelectGUIDCategory(CLSID_VideoInputDeviceCategory);
 if ListBox1.ItemIndex <> -1 then
 begin
   //Задаем устройство, с которым будем работать
   VideoSourceFilter.BaseFilter.Moniker := VideoDevice.GetMoniker(ListBox1.ItemIndex);
   VideoSourceFilter.FilterGraph := CaptureGraph;
   CaptureGraph.Active := true;
   PinList := TPinList.Create(VideoSourceFilter as IBaseFilter);
   ListBox2.Clear;
   VideoMediaTypes.Assign(PinList.First);
   //Добавляем разрешения на ListBox2, которые поддерживает устройство
   for i := 0 to VideoMediaTypes.Count - 1 do
     ListBox2.Items.Add(VideoMediaTypes.MediaDescription[i]);
   CaptureGraph.Active := false;
   PinList.Free;
   StartButton.Enabled := true;
 end;
end;

procedure TMainForm.StartButtonClick(Sender: TObject);
var
 PinList: TPinList;
begin

 // Активизируем граф фильтра, в этой стадии исходные фильтры добавлены к графу
 CaptureGraph.Active := true;

 // Конфигурация выходного устройства
 if VideoSourceFilter.FilterGraph <> nil then
 begin
   PinList := TPinList.Create(VideoSourceFilter as IBaseFilter);
   if ListBox2.ItemIndex <> -1 then
     with (PinList.First as IAMStreamConfig) do
       SetFormat(VideoMediaTypes.Items[ListBox2.ItemIndex].AMMediaType^);
   PinList.Free;
 end;

 // now render streams
 with CaptureGraph as IcaptureGraphBuilder2 do
 begin
   // Подключаем предварительный просмотр Видео (VideoWindow)
   if VideoSourceFilter.BaseFilter.DataLength > 0 then
     RenderStream(@PIN_CATEGORY_PREVIEW, nil, VideoSourceFilter as IBaseFilter,
       nil , VideoWindow as IBaseFilter);

 end;
// Запуск видео
 CaptureGraph.Play;
 StopButton.Enabled := true;
 StartButton.Enabled := false;
 ListBox2.Enabled := false;
 ListBox1.Enabled := false;
end;

// Остановка видео
procedure TMainForm.StopButtonClick(Sender: TObject);
begin
 StopButton.Enabled := false;
 StartButton.Enabled := true;
 CaptureGraph.Stop;
 CaptureGraph.Active := False;
 ListBox2.Enabled := true;
 ListBox1.Enabled := true;
end;

end.


 
Zalm ©   (2009-11-28 02:50) [3]

Спасибо большое, он я уже потом сам разобрался :)


 
Zalm ©   (2009-11-28 02:51) [4]

НО*



Страницы: 1 вся ветка

Текущий архив: 2010.01.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
2-1258717465
Andrewtitoff
2009-11-20 14:44
2010.01.17
Что не так?


2-1258794558
Б
2009-11-21 12:09
2010.01.17
Почему программа создавая окно - вылетает?


2-1258963809
Oleg1963
2009-11-23 11:10
2010.01.17
Выбор каталога.Проблема c ShellTreeView.


1-1233172014
Alexey
2009-01-28 22:46
2010.01.17
Не срабатывает программное нажатие кнопки в чужом окне


2-1259327276
Konstantin
2009-11-27 16:07
2010.01.17
очистить xml файл