Page History: EE Webcam Element
Compare Page Revisions
Page Revision: 2014/07/24 00:24
|
Webcam Element
|
Info |
Category: |
Behavioral Control |
|
AddIn: |
Surveillance |
Creator: |
OkazoLab Team |
|
Scope: |
Global |
Owns Snippets: |
no |
|
Usage: |
Status Screen |
The element allows monitoring the output of a video capture device, e.g. webcam, on the
status screen in EventIDE.
Description
Webcam element is capable of capturing output of computer video devices, e.g. web-cameras, at the background of a running experiment. The captured video can be then rendered on the stimulus or status screen, using a custom
XAML control. On the majority of modern computers a work of the element should not cause an impact on timing accuracy in an experiment, however, you should check timing accuracy on your setup, when the Webcam element is used.
Snapshots
Web camera capture on the EventIDE status screen |
Practical Use
Technique 1
- Add new Webcam element to any event in your experiment
- Click on the Webcam element and select a video device from the device list in the property grid
- Add a proxy variable to the Video Output property of the Webcam element
- Create a XAML ContentControl on the status screen and set its binding to the VideoOutput proxy variable:
// you can place the content control inside of any parent container
<ContentControl Width="640" Height="480" Content='{Binding VideoOutput}'/>
- Make sure that camera working and run an experiment. The video output will be rendered scaled to the area of the Content Control on the Status Screen
Element actions aligned with different epochs of the parent event
Epoche | Actions |
---|
Initialized | The camera starts capturing video |
Rendered |
Activating |
Activated |
Running | The camera output is captured and rendered via the Video Output property, if the latter is bound to the status screen |
Deactivated |
Deinitialized | The camera stops capturing video |
Notes
- You can not share the video device among multiple Webcam elements. However, you may use multiple cameras assigned to different Webcam elements.
- Be careful in using the Webcam element in experiments that require accurate timing. Video capture is hardware-accelerated on modern computers but a high processor load still can be induced, which, in turn, may potentially disrupt timing in an experiment. We suggest to always double check timing accuracy while the Webcam element is engaged. Alternatively, you may select the lowest settings for the resolution and framerate capture on a video device.
- If you have the Webcam element, whose Video Output is not bound to the status Screen, there is no performance costs for rendering. However, video capturing is running in the background, when the Webcam element exists in an experiment.
Properties
Generic Properties
Name | Description | Constraints | Value Type | Upon Runtime Change |
---|
Settings |
Video Device | Defines a video device for video capture. A drop-down list shows all devices available in the system. | | String |
Device Settings | Opens a window with OS settings of the selected video device. | |
Custom Settings |
Use Custom Settings | Define whether custom frame size and framerate of video capture. Using the custom settings is only possible, if the resolution and framerate values are supported by the selected video device. Otherwise, the device's default settings will be are applied. | | Boolean |
Resolution | Define the resolution of a captured video. The video frames can be scaled to any size in rendering, but choosing a larger resolution improves rendering quality with some cost in performance. | | clSize |
Frame Rate | Define the framerate of video capturing, in frames per second | | Int32 |
Runtime Status |
Video Output | Returns a live XAML control that renders the captured video output. The control can be used for data binding to the Content property of the XAML ContentControl element, e.g. . The ContentControl can be added to the status screen or to the GUI Layout elemenet. | | System.Windows.UIElement |
Actual Settings | Returns the actual resolution and framerate of the current video capture. The property is updated at the start of every experiment run. | | String |
+=== Properties inherited from clElement ===
Inherited properties of clElement
Name | Description | Constraints | Value Type | Upon Change |
---|
Control |
Is Enabled | If set to false the element is completely omitted when the experiment is run. | | Boolean |
|
Title | Title of the element. | | String |
|