Summary
|
EE Webcam
|
Info |
Category: |
Monitoring |
|
AddIn: |
Surveillance |
Creator: |
OkazoLab |
|
Scope: |
Experiment |
Owns Snippets: |
None |
|
Usage: |
Snippets |
Properties
Name | Description | Constraints | Type | On runtime change |
---|
Settings |
Video Device | | | String | |
Edit Camera Settings | Opens a window with OS settings of the selected video device. | | Boolean | |
Select Video Format | Opens a window with the pin settings of the selected video device. | | Boolean | |
Custom Settings |
Use Custom Settings | Define whether custom frame size and framerate are used in capturing video. Using the custom settings is only possible, if it's 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 |
XAML Video Viewport | Returns a live XAML control that renders the captured video. 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 element. | | UIElem.. | |
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 | |
Control |
Is Enabled | If set to false the element is completely omitted when the experiment is run | | Boolean | |
Title | Title of the element | | String | |
|
Webcam Element captures and renders an output of a computer video devices, e.g. web-camera. This elements uses the Microsoft Expression Encoder engine, which has to be installed on a computer. For the OpenCV-based video capturing use the OpenCV Webcam element. The captured video frames can be rendered on the stimulus or status screen, via an auto-generated XAML widget ('XAML Video Viewport') provided by the element.
Description
Webcam element is capable of capturing output of computer video devices, e.g. web-cameras, at the background of running experiment. 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
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.