Video Display Component
The Video Display component is the base control for streaming live video from virtually any source. It supports a multitude of video encoding schemes and can even support unprotected streaming content from a server or the web such as news feeds and more. It has over 50 properties for setting the look and feel of the component as well as providing recording capability. This is the base control for all video overlay components.
There are properties that can provide information to other controls such as time code, frame rate, stream state and more. See the example video display below which has the ShowStatistics property set to true.
Example Video Display Component with Stream Statistics Turned On
Properties
NAME | TYPE | R/W | DESCRIPTION |
---|---|---|---|
AllowClick | Boolean | R/W | Allows the user to focus this control with a mouse click. |
AllowDrop | Boolean | R/W | Allows a user to drag another control on top of the video to set properties (see Linking Components). |
AllowTouch | Boolean | R/W | Allows a user to touch and drag the contents of this component. |
Anchors | Enumeration | R/W | Provides a means to lock parts of the display when used in containers (fixes where it appears). |
AspectRatio | Enumeration | R/W | Setting this property with AspectRatioSource set to FIXED will force the height of the component to change to meet the selected aspect ratio. It has no affect when AspectRatioSource is set to VIDEO STREAM. |
AspectRatioSource | Enumeration | R/W |
Determines what values are used to set the components aspect ratio. |
AspectRatioValue | Double | R/W | Either displays or sets the current aspect ratio as the fraction of width / height when the AspectRatioSource is set to fixed. It is ignored when the AspectRatioSource is set to VIDEO STREAM. |
AudioOn | Boolean | R/W | Turns the audio stream on or off if present. |
AutoLevel | Boolean | R/W | Turns the image auto leveling function on or off. This is used to enhance the contrast of the video image and can be dynamically turned on or off via other controls. |
ControlColor | Color | R/W | Sets the color of on-screen controls. |
ControlHeight | Integer | R/W | Adjusts the control's height (changing this value will also change the width to maintain the correct aspect ratio if LockAspectRatio is true). |
ControlLeft | Integer | R/W | Adjusts the control's left side location (0 = display left side) |
ControlTop | Integer | R/W | Adjusts the control's top side location (0 = display top side) |
ControlWidth | Integer | R/W | Adjusts the control's width (changing this value will also change the height to maintain the correct aspect ratio if LockAspectRatio is true). |
FontBold | Boolean | R/W | Font bold attribute. |
FontColor | Color | R/W | Font color used for statistics. |
FontFamily | String | R/W | Name of the font to use for the text. |
FontItalic | Boolean | R/W | Font italic attribute. |
FontSize | Integer | R/W | Font size in points (e.g. 12 = 12 pt.) |
HideSelection | Boolean | R/W | Hides the selection box when the control has focus |
LinkGUID | GUID | R/W | GUID of the server object that holds the link properties (See Component Linking for more details). |
LinkPropertyPassword | String (hidden) | R/W | The name of the server or local property that links to this component's Password property (See Component Linking for more details). |
LinkPropertyUserID | String | R/W | The name of the server or local property that links to this component's UserID property (See Component Linking for more details). |
LinkPropertyVideoSource | String | R/W | The name of the server or local property that links to this component's VideoSource property (See Component Linking for more details). |
LockAspectRatio | Boolean | R/W | Locks the aspect ratio of the video display when set to true. If the width or height of the control is modified, the other parameter will automatically be updated to maintain the correct aspect ratio. |
Margins | Margin Class | R/W | Allows adjusting the margins for the statistics text based on default position (all margins default to 3 pixels) |
Monochrome | Boolean | R/W | Converts a color stream to monochrome when set to true. |
Name | String | R/W | The component's unique name (must be unique within a page) |
OverlayAlphaLevel | Byte | R/W | The alpha or transparency of the Statistics text over the video. |
OverlayOpacity | Byte | R/W | The transparency of the background behind the statistics to enhance readability. |
ParentFont | Boolean | R/W | The Video Display control uses the default parent font when true. |
Password | String (Hidden) | R/W | The password for the video stream (if required) |
RTSPTransportOptions | Enumeration | R/W | Used to set TCP or UDP transport protocols for the stream (default is TCP) |
ServerGUID | GUID | R/W | The GUID of the remote server used for linking to server object properties (See Component Linking for more details). |
ShowStatistics | Boolean | R/W | Turns the video stream statistics on or off. This is highly useful for debugging video that is jittery or dropping frames. |
State | Enumeration | R/O | Provides the current state of the stream (e.g. Playing). It is an enumeration and can be used to control other indicators to display the stream state. |
StateGlobal | Unsigned 32 bit Integer | R/W | Used for carrying the global state of the current video stream or stream state. See Attribute Linking for more information. This property has no effect on the control. |
TestPattern | Enumeration | R/W | Sets the idle test pattern for the display when the stream is closed (e.g. not playing). |
UserID | String | R/W | The user ID for the video stream (if required) |
VideoBufferSize | Integer | R/W | Sets the size of the video buffer. Default is 5 packets, but it can be expanded if there are long delays in the video connection to prevent jittering and freezing. |
VideoClipLength | Integer | R/W | The maximum number of seconds allowed for a single clip (default is 60). This prevents run-away recording of clips. |
VideoFrame | Int64 | R/O | Holds the current video frame number (provided from pre-recorded sources) |
VideoFrameHeight | Integer | R/O | Native height of the source video frame (set by the source) |
VideoFrameRate | Double | R/O | Frame rate of the video source in frames per second. |
VideoFrameWidth | Integer | R/O | Native width of the source video frame (set by the source) |
VideoRecord | Boolean | R/W | Records the current video stream when set true. The clip is limited in length by the value of VideoClipLength. When recording reaches that limit, the recording ends and this property will be set to false. |
VideoRecordPostroll | Integer | R/W | The number of seconds to record video following a command to stop (e.g. setting VideoRecord to false). This is valuable when using object tracking to trigger a recording. |
VideoRecordPreroll | Integer | R/W | The number of seconds to record video prior to a command to start recording. Video is buffered for this time and added to the start of the actual recording to provide a look-back in time. This is valuable when using object tracking to trigger a recording. |
VideoSource | String | R/W | This is the URI of the actual video stream. It can be a file from storage, an IP camera stream or a web stream. Virtually any type of video or audio source can be streamed if the correct URI is known. Recording requires the source be encoded with either MPEG4, H.264 or H.265 codecs to match the container type used by this component. |
VideoStorage | String | R/W | The path where the video will be stored when recorded. |
VideoTime | Double | R/W | The number of days the video has been running. It is a floating point value that can be divided down to milliseconds if required. The digital clock component has this built-in ability to divide the source clock to match various display modes. |
VideoTimeout | Integer | R/W | The number of seconds that pass with no packets from the source which indicate a Loss of Signal (LoS) condition that closes the video stream. |
All properties are displayed in the property editor with spaces for clarity. The actual property name has no spaces so when using them for linking they are concatenated.