# Camera control and PTZ

Video Capture SDK .Net VideoCaptureCore

Using Camera Control API, you can set the following camera parameters (the camera can support only some of them): Pan, Tilt, Roll, Zoom, Exposure, Iris, and Focus.

The Camera Control API should be used with started camera preview or capture.

# Sample code

On the form, we are using several checkboxes, labels, and slider control. You can check the Main Demo source code.

# 1. Read default values and command ranges

int max;
int defaultValue;
int min;
int step;
CameraControlFlags flags;

if (await VideoCapture1.Video_CaptureDevice_CameraControl_GetRangeAsync(
    CameraControlProperty.Zoom, out min, out max, out step, out defaultValue, out flags))
{
    // set slider range
    tbCCZoom.Minimum = min;
    tbCCZoom.Maximum = max;
    tbCCZoom.SmallChange = step;
    tbCCZoom.Value = defaultValue;

    // set min, max and current values on labels
    lbCCZoomMin.Text = "Min: " + Convert.ToString(min);
    lbCCZoomMax.Text = "Max: " + Convert.ToString(max);
    lbCCZoomCurrent.Text = "Current: " + Convert.ToString(defaultValue);

    // set command checkboxes
    cbCCZoomManual.Checked = (flags & CameraControlFlags.Manual) == CameraControlFlags.Manual;
    cbCCZoomAuto.Checked = (flags & CameraControlFlags.Auto) == CameraControlFlags.Auto;
    cbCCZoomRelative.Checked = (flags & CameraControlFlags.Relative) == CameraControlFlags.Relative;
}

If the Auto flag is set, all other flags and values will be ignored.

# 2. Apply value set on slider (Auto checkbox should be disabled to set manual value or enabled to set camera default value)

CameraControlFlags flags = CameraControlFlags.None;

if (cbCCZoomManual.Checked)
{
    flags = flags | CameraControlFlags.Manual;
}

if (cbCCZoomAuto.Checked)
{
    flags = flags | CameraControlFlags.Auto;
}

if (cbCCZoomRelative.Checked)
{
    flags = flags | CameraControlFlags.Relative;
}

await VideoCapture1.Video_CaptureDevice_CameraControl_SetAsync(CameraControlProperty.Zoom, tbCCZoom.Value, flags);

# Required redists

  • Video capture redist x86 x64

Visit our GitHub page to get more code samples.