The IP Camera Widget

The Engagement Internet Protocol (IP) Camera widget is used to display a camera feed on the user interface (UI) screen as a widget. It allows users to view live video from an IP camera configured using the Engagement Widget designer. The IP Camera widget uses the Motion-JPEG (MJPEG) video compression format. MJPEG is a video format in which each frame of video is sent as a separate and compressed JPEG image. The viewer displays the JPEG images as quickly as they are received and that creates the video.

The IP Camera widget is implemented using an image control to render the camera feeds received as images on the UI screen. A separate media player is not used. The IP Camera widget uses an open source library named MJPEG Decoder available in CodePlex.

The widget initializes the MJPEG decoder by passing an IP camera feed URL, which is configured using the Engagement widget designer. The widget receives the appropriate events whenever a new image is available and draws it on the container image control. The widget works with all resolutions supported by the IP Camera. The image is resized to fit within the widget’s dimensions, while it preserves its native aspect ratio in the detail view, regardless of the resolution of the images received. The widget does not save or store images.

The MJPEG Decoder library initiates an asynchronous request to the MJPEG URL provided by the viewer. It then streams the multi-part response data received into separate images as they are received. The library passes each JPEG image to the viewer using an event whenever they are available.

The IP Camera widget supports all network and IP cameras capable of sending a direct MJPEG stream. This does not include cameras that are embedded within a web page. The camera must provide a direct stream of only the MJPEG for the IP Camera widget to successfully display the feed.

The IP Camera widget does not require additional security measures when displaying the IP Camera feed. Administrators should implement security restrictions on the network to explicitly allow workstations to connect to the camera feed. Additionally, the IP camera feed should be configured in a secure manner to ensure that the username and password are included in the URL, if possible.