Table of Contents

Class IPCameraSourceSettings

Namespace
VisioForge.Core.Types.VideoCapture
Assembly
VisioForge.Core.dll

Provides comprehensive configuration settings for IP camera and network video stream sources.

public class IPCameraSourceSettings

Inheritance

Inherited Members

Remarks

This class encapsulates all parameters required to connect to and configure IP cameras, RTSP streams, HTTP video streams, and other network-based video sources. It supports multiple streaming engines (FFMPEG, VLC, LAV, low-latency RTSP) and provides extensive control over connection parameters, authentication, latency optimization, and codec settings.

The class supports various network streaming protocols including:

  • RTSP (Real-Time Streaming Protocol) - most common for IP cameras
  • HTTP/HTTPS - for MJPEG streams and web-based cameras
  • ONVIF - standardized protocol for network camera configuration
  • MMS/WMV - Windows Media streaming
  • NDI - NewTek Network Device Interface for professional video

Properties

AudioCapture

Gets or sets a value indicating whether audio capture from IP camera enabled.

public bool AudioCapture { get; set; }

Property Value

bool

Debug_Enabled

Gets or sets a value indicating whether IP camera debugging enabled.

public bool Debug_Enabled { get; set; }

Property Value

bool

Debug_Filename

Gets or sets IP camera debug file name.

public string Debug_Filename { get; set; }

Property Value

string

DisconnectEventInterval

Gets or sets interval. If this interval > 0, OnNetworkSourceDisconnect will be fired if no frames arrive in "interval" time. This property must be set before the Start method call. 10 seconds by default.

public TimeSpan DisconnectEventInterval { get; set; }

Property Value

TimeSpan

FFMPEG_CustomOptions

Gets or sets the FFMPEG custom options.

public Dictionary<string, string> FFMPEG_CustomOptions { get; }

Property Value

Dictionary<string, string>

FFMPEG_MaxLoadTimeout

Gets or sets the FFMPEG maximum load timeout.

public TimeSpan FFMPEG_MaxLoadTimeout { get; set; }

Property Value

TimeSpan

ForcedFramerate

Gets or sets IP camera framerate, if required. Some HTTP cams do not send time stamp and frame rate is required.

public VideoFrameRate ForcedFramerate { get; set; }

Property Value

VideoFrameRate

ForcedFramerate_InstanceID

Gets or sets IP camera forced framerate mode instance id. Must be unique for each process/application.

public char ForcedFramerate_InstanceID { get; set; }

Property Value

char

LAV_GPU_Mode

Gets or sets source GPU mode, if Source_Mode property set to GPU.

public LAVGPUDecoder LAV_GPU_Mode { get; set; }

Property Value

LAVGPUDecoder

LAV_GPU_Use

Gets or sets a value indicating whether GPU decoding will be used for LAV engine.

public bool LAV_GPU_Use { get; set; }

Property Value

bool

Login

Gets or sets IP camera login, if required.

public string Login { get; set; }

Property Value

string

ONVIF_Source

Gets or sets a value indicating whether camera connected using ONVIF protocol.

public bool ONVIF_Source { get; set; }

Property Value

bool

ONVIF_SourceProfile

Gets or sets the ONVIF camera profile. First profile will be used if this parameter is empty.

public string ONVIF_SourceProfile { get; set; }

Property Value

string

Password

Gets or sets IP camera password, if required.

public string Password { get; set; }

Property Value

string

RTSP_LowLatency_UseUDP

Gets or sets a value indicating whether UDP will be used instead TCP.

public bool RTSP_LowLatency_UseUDP { get; set; }

Property Value

bool

Type

Gets or sets the streaming engine type for processing the IP camera stream.

public IPSourceEngine Type { get; set; }

Property Value

IPSourceEngine

Remarks

Different engines offer different capabilities and performance characteristics:

  • Auto_LAV: LAV Filters - Best general compatibility, supports hardware decoding
  • Auto_FFMPEG: FFmpeg library - Widest codec support, good for unusual formats
  • Auto_VLC: VLC engine - Excellent network resilience, handles many protocols
  • RTSP_LowLatency: Optimized for minimal delay in RTSP streams
  • HTTP_MJPEG_LowLatency: Optimized for MJPEG-over-HTTP with low latency
  • NDI: NewTek NDI for professional zero-latency networking

URL

Gets or sets the URL for IP camera.

public Uri URL { get; set; }

Property Value

Uri

VLC_CustomDefaultFrameRate

Gets or sets the custom default frame rate for network sources that do not provide the frame rate correctly.

public VideoFrameRate? VLC_CustomDefaultFrameRate { get; set; }

Property Value

VideoFrameRate?

VLC_CustomLatency

Gets or sets custom cache size (milliseconds). This option can decrease latency.

public int VLC_CustomLatency { get; set; }

Property Value

int

VLC_CustomParameters

Gets or sets custom command-line parameters.

public string[] VLC_CustomParameters { get; set; }

Property Value

string[]

VLC_ZeroClockJitterEnabled

Gets or sets a value indicating whether clock jitter option will be set to 0. This option can decrease latency.

public bool VLC_ZeroClockJitterEnabled { get; set; }

Property Value

bool

VideoCapture

Gets or sets a value indicating whether video capture from IP camera enabled. True by default. Currently used only for LAV engine.

public bool VideoCapture { get; set; }

Property Value

bool