VIDEO MANAGEMENT SYSTEMS (VMS)
20170374395 · 2017-12-28
Inventors
- Lucas Johnson (Bloomington, IN, US)
- Timothy Adams (Bloomington, IN, US)
- Jordan Brown (Bloomington, IN, US)
Cpc classification
International classification
H04N21/84
ELECTRICITY
H04N21/845
ELECTRICITY
Abstract
Apparatus and methods are developed that facilitate the control and streaming of multiple video streams. The apparatus and methods may include a video management system (VMS) that includes a VMS server device, a VMS client device, and a VMS graphical user interface (GUI) device. The VMS server device may be configured to receive multiple video streams and store them in memory. The VMS GUI device may be configured to provide commands to the VMS client device relating to the video streams accessible by the VMS server device. The VMS GUI device may also query a VMS server device for available video streams or for metadata related to a particular video stream. The VMS client device may be configured to receive the commands from the VMS GUI device and transmit commands to the VMS server device based on the commands received from the VMS GUI device.
Claims
1. A video management system (VMS) comprising: a first and one or more second VMS system sections; wherein said first VMS section comprises a VMS server device comprising: video stream processing logic adapted to receive multiple video streams and store the multiple video streams in a memory, wherein each video stream of the multiple video streams comprises video data and metadata; metadata decoder logic adapted to obtain, from the video stream processing logic, at least one video stream of the multiple video streams, read the metadata associated with the at least one video stream, and store the metadata associated with the at least one video stream in a metadata database; and VMS client control logic adapted to receive a VMS client query command relating to the at least one video stream, wherein the VMS client control logic is further adapted to provide at least one of: at least one video frame of the at least one video stream based on the received VMS client query command; and metadata of the at least one video stream based on the received VMS client query command; wherein said second VMS section device comprises a workstation comprising a VMS graphical user interface (GUI) device and a VMS client device; wherein said VMS GUI device is adapted to provide for display at least one video frame of a video stream and comprising: video stream query command logic adapted to provide one or more VMS GUI query commands relating to the at least one video stream of the multiple video streams; video stream control command logic adapted to provide one or more VMS GUI control commands relating to the at least one video stream of the multiple video streams; and VMS GUI display logic adapted to provide for display a GUI that allows for control of the displayed at least one video frame of the video stream; and wherein said VMS client device is operably coupled to the VMS server device and to the VMS GUI device comprising: VMS GUI command processing logic adapted to: receive at least one of the one or more VMS GUI query commands and the one or more VMS GUI control commands relating to the at least one video stream of the multiple video streams from the VMS GUI device and determine at least one VMS client query command to transmit to the VMS server device based on the received at least one of the one or more VMS GUI query commands and the one or more VMS GUI control commands; and provide the at least one VMS client query command to the VMS server device; and VMS video stream provider logic adapted to receive from the VMS server device the at least one of: the at least one video frame of the at least one video stream based on the received at least one of the one or more VMS GUI query commands and the one or more VMS GUI control commands; and the metadata of the at least one video stream based on the received at least one of the one or more VMS GUI query commands and the one or more VMS GUI control commands; wherein the video stream control command logic of the VMS GUI device is adapted to provide one or more VMS GUI control commands to the VMS client device to command the VMS client device to connect to a second VMS server device to allow the VMS client device to access archived or live video streams on the second VMS server device.
2. The video management system of claim 1 wherein the VMS GUI device, based on a selection of one of a listing of available video streams, provides for display either a live video stream or an archived video stream, wherein: the video stream control command logic of the VMS GUI device provides at least one of the one or more VMS GUI control commands to the VMS client device based on the selected one of the listing of available video streams; and the VMS GUI command processing logic of the VMS client device provides a VMS client query command to the VMS server device based on the at least one of the one or more VMS GUI control commands to provide the selected one of the listing of available video streams.
3. The video management system of claim 1 wherein the VMS GUI display logic of the VMS GUI device is further adapted to provide for display metadata associated with the at least one video frame of the video stream.
4. (canceled)
5. The video management system of claim 1 wherein the video stream control command logic of the VMS GUI device is adapted to provide one or more VMS GUI control commands to the VMS client device to control playback of the at least one video stream from the VMS server device.
6. The video management system of claim 1 wherein the video stream control command logic of the VMS GUI device is adapted to provide one or more VMS GUI control commands to the VMS client device to delete the at least one video stream from the VMS server device.
7. The video management system of claim 1 wherein the video stream control command logic of the VMS GUI device is adapted to provide one or more VMS GUI control commands to the VMS client device to add additional video streams to the VMS server device.
8. The video management system of claim 1 wherein the VMS client device comprises at least one video filter, and wherein the video stream control command logic of the VMS GUI device is adapted to provide one or more VMS GUI control commands to the VMS client device to control the application of the at least one video filter to the at least one video stream from the VMS server device.
9. The video management system of claim 1 wherein the video stream query command logic of the VMS GUI device is adapted to provide one or more VMS GUI query commands to the VMS client device to query the VMS server device, based on indicated metadata criteria, for a list of video streams of the stored multiple video streams that satisfy the indicated metadata criteria, wherein: the video stream query command logic of the VMS GUI device provides at least one of the one or more VMS GUI query commands to the VMS client device; and the VMS GUI command processing logic of the VMS client device provides the at least one VMS client query command to the VMS server device.
10. The video management system of claim 1 wherein the video stream query command logic of the VMS GUI device is adapted to provide one or more VMS GUI query commands to the VMS client device to query the VMS server device for availability of at least one video stream during a particular timeline of the stored multiple video streams, wherein: the video stream query command logic of the VMS GUI device provides at least one of the one or more VMS GUI query commands; and the VMS GUI command processing logic of the VMS client device provides the at least one VMS client query command to the VMS server device.
11. The video management system of claim 1 wherein the video stream query command logic of the VMS GUI device is adapted to provide one or more VMS GUI query commands to the VMS client device to query the VMS server device for a list of available video streams of the stored multiple video streams, wherein: the video stream query command logic of the VMS GUI device provides at least one of the one or more VMS GUI query commands; and the VMS GUI command processing logic of the VMS client device provides the at least one VMS client query command to the VMS server device.
12. The video management system of claim 1 wherein the video stream control command logic of the VMS GUI device is adapted to provide one or more VMS GUI control commands to the VMS client device to command the VMS server device to save an image of a video frame of at least one video stream of the stored multiple video streams, wherein: the video stream control command logic of the VMS GUI device provides at least one of the one or more VMS GUI control commands; and the VMS GUI command processing logic of the VMS client device provides the at least one VMS client query command to the VMS server device.
13. The video management system of claim 1 wherein the VMS GUI command processing logic of the VMS client device is adapted to provide a response to the VMS GUI device based on receiving the at least one of the one or more VMS GUI query commands and the one or more VMS GUI control commands relating to the at least one video stream of the multiple video streams from the VMS GUI device.
14. A method in a video management system (VMS) comprising: providing a first and second VMS section, wherein said first VMS section comprises at least one VMS server device and said second VMS section comprises a workstation including a VMS graphical user interface (GUI) device and a VMS client device; receiving, at the VMS server device, multiple video streams and storing the multiple video streams in a memory, wherein each video stream of the multiple video streams comprises video data and metadata; reading, by the VMS server device, the metadata associated with the at least one video stream, and storing the metadata associated with the at least one video stream in a metadata database; receiving, by the VMS server device, a VMS client query command relating to the at least one video stream, and providing at least one of: at least one video frame of the at least one video stream based on the received VMS client query command; and metadata of the at least one video stream based on the received VMS client query command; providing, by the VMS GUI device adapted to provide for display at least one video frame of a video stream, one or more VMS GUI query commands relating to the at least one video stream of the multiple video streams; providing, by the VMS GUI device, one or more VMS GUI control commands relating to the at least one video stream of the multiple video streams; providing for display, by the VMS GUI device, a GUI that allows for control of the displayed at least one video frame of the video stream; receiving, at the VMS client device, at least one of the one or more VMS GUI query commands and the one or more VMS GUI control commands relating to the at least one video stream of the multiple video streams from the VMS GUI device and determining at least one VMS client query command to transmit to the VMS server device based on the received at least one of the one or more VMS GUI query commands and the one or more VMS GUI control commands; providing, by the VMS client device, the at least one VMS client query command to the VMS server device; receiving, at the VMS client device, from the VMS server device the at least one of: the at least one video frame of the at least one video stream based on the received at least one of the one or more VMS GUI query commands and the one or more VMS GUI control commands; and the metadata of the at least one video stream based on the received at least one of the one or more VMS GUI query commands and the one or more VMS GUI control commands; providing, by the VMS GUI device, one or more VMS GUI control commands to the VMS client device to command the VMS client device to connect to a second VMS server device to allow the VMS client device to access archived or live video streams on the second VMS server device.
15. The method of claim 14 wherein: based on a selection of one of a listing of available video streams, providing for display either a live video stream or an archived video stream; providing at least one of the one or more VMS GUI control commands to the VMS client device based on the selected one of the listing of available video streams; and providing at least one VMS client query command, based on the at least one or more VMS GUI control commands, to the VMS server device to provide the selected one of the listing of available video streams.
16. The method of claim 14 further comprising providing for display metadata associated with the at least one video frame of the video stream.
17. (canceled)
18. The method of claim 14 further comprising providing, by the VMS GUI device, one or more VMS GUI control commands to the VMS client device to control playback of the at least one video stream from the VMS server device.
19. The method of claim 14 further comprising providing, by the VMS GUI device, one or more VMS GUI control commands to the VMS client device to delete the at least one video stream from the VMS server device.
20. The method of claim 14 further comprising providing, by the VMS GUI device, one or more VMS GUI control commands to the VMS client device to add additional video streams to the VMS server device.
21. The method of claim 14 further comprising providing, by the VMS GUI device, one or more VMS GUI control commands to the VMS client device to control the application of at least one video filter to the at least one video stream from the VMS server device.
22. The method of claim 14 further comprising providing, by the VMS GUI device, one or more VMS GUI query commands to the VMS client device to query the VMS server device, based on indicated metadata criteria, for a list of video streams of the stored multiple video streams that satisfy the indicated metadata criteria, wherein: the VMS GUI device provides at least one of the one or more VMS GUI query commands to the VMS client device; and the VMS client device provides, based on the one or more VMS GUI query commands, the at least one VMS client query command to the VMS server device.
23. The method of claim 14 further comprising providing, by the VMS GUI device, one or more VMS GUI query commands to the VMS client device to query the VMS server device for availability of at least one video stream during a particular timeline of the stored multiple video streams, wherein: the VMS GUI device provides at least one of the one or more VMS GUI query commands to the VMS client device; and the VMS client device provides the at least one VMS client query command to the VMS server device.
24. The method of claim 14 further comprising providing, by the VMS GUI device, one or more VMS GUI query commands to the VMS client device to query the VMS server device for a list of available video streams of the stored multiple video streams, wherein: the VMS GUI device provides at least one of the one or more VMS GUI query commands; and the VMS client device provides, based on the at least one of the one or more VMS GUI query commands, the at least one VMS client query command to the VMS server device.
25. The method of claim 14 further comprising providing, by the VMS GUI device, one or more VMS GUI control commands to the VMS client device to command the VMS server device to save an image of a video frame of at least one video stream of the stored multiple video streams, wherein: the VMS GUI device provides at least one of the one or more VMS GUI control commands to the VMS client device; and the VMS client device provides, based on the at least one of the one or more VMS GUI control commands, the at least one VMS client query command to the VMS server device.
26. The method of claim 14 further comprising providing, by the VMS client device, a response to the VMS GUI device based on receiving the at least one of the one or more VMS GUI query commands and the one or more VMS GUI control commands relating to the at least one video stream of the multiple video streams from the VMS GUI device.
27. (canceled)
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0020] The detailed description of the drawings particularly refers to the accompanying figures in which:
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
DETAILED DESCRIPTION OF THE DRAWINGS
[0032] The embodiments of the invention described herein are not intended to be exhaustive or to limit the invention to precise forms disclosed. Rather, the embodiments selected for description have been chosen to enable one skilled in the art to practice the invention.
[0033]
[0034] In the example of
[0035] Each VMS server device 102, 104 includes video stream processing logic 114. Video stream processing logic 114 is adapted to receive multiple video streams, such as from network 110, and may store the video streams in memory 116. For example, a VMS server device 102, 104 may access video streams as provided by other equipment (e.g., cameras, servers) via network 110. As mentioned above, each video stream may include video data and metadata. Video stream processing logic 114 may provide one or more video streams to metadata decoder logic 118, where metadata decoder logic 118 is operable to parse out metadata from a received video stream (e.g., read the metadata associated with video stream) and store the metadata into metadata database 122. Metadata database 122 may be any suitable storage device, such as a server, a workstation, memory card, or any other suitable memory device.
[0036] VMS server devices 102, 104 also include VMS client control logic 120. VMS client control logic 120 is operable (e.g., adapted) to receive a VMS client query command from VMS client device 106. As will be discussed further below, the VMS client query command may relate to at least one video stream, such as one accessible by video stream processing logic 114, or one stored in memory 116. Based on a received VMS client query command, VMS client control logic 120 may provide a video stream (or parts thereof), or information relating to the video stream, to VMS client device 106. For example, VMS client control logic 120 may provide at least one video frame of a video stream to VMS client device 106 by, for example, accessing video streams stored in memory 116. As another example, VMS client control logic 120 may provide some or all metadata associated with a video stream to VMS client device 106. For example, VMS client control logic 120 may access metadata associated with a video stream identified in a received VMS client query command that is stored in metadata database 122, and provide it to VMS client device 106 via, for example, a message. As indicated, the functions of video stream processing logic 114, metadata decoder logic 118, and VMS client control logic 120 may be performed by one or more processors such as a central processing unit (CPU), digital signal processor (DSP), microprocessor, or any other suitable processors.
[0037] As indicated in the figure, VMS client device 106 is operably coupled to network 112. For example, via network 112, VMS client device may communicate with VMS server device 102, 104. VMS client device 106 includes VMS GUI command processing logic 124 and VMS video stream provider logic 126. In one example, the functions of VMS GUI command processing logic 124 and VMS video stream provider logic 126 may be performed by one or more processors.
[0038] VMS GUI command processing logic 124 is operable to receive VMS GUI query commands and VMS GUI control commands from VMS GUI device 108 over communication bus 128. VMS GUI query commands and VMS GUI control commands are described further below. Based on received VMS GUI query commands and VMS GUI control commands, VMS GUI command processing logic 124 is operable to determine at least one VMS client query command to transmit to the VMS server device. VMS GUI command processing logic 124 is also operable to provide (e.g., transmit) the VMS client query command to the VMS server device. For example, a VMS GUI query command may indicate a request for video streams available to VMS server device 102, 104. In response, VMS client device 106 may determine to transmit a VMS client query command to VMS server device 102, 104 where the VMS client query command requests a list of available video streams. VMS client device 106 may transmit the VMS client query command to VMS server device 102, 104 over network 112. VMS GUI command processing logic 124 may also be operable to receive a VMS client response from VMS server device 102, as discussed further below.
[0039] VMS video stream provider logic 126 is adapted to receive from the VMS server device video streams from VMS server device 102, 104. For example, VMS video stream provider logic 126 may receive from VMS server device 102, 104 a video frame of a video stream, or metadata associated with a video stream. The video stream, video frame, or metadata may be received based on a VMS client query command transmitted to VMS server device 102, 104. VMS video stream provider logic 126 is also adapted to provide the received video streams, video frames, and metadata to VMS GUI device 108 over communication bus 128. In one example, VMS video stream provider logic 126 is operable to provide a video stream for display to display 134 over communication bus 128.
[0040] VMS GUI device 108 includes video stream query command logic 130 and video stream control command logic 132. In one example, the functions of video stream query command logic 130 and video stream control command logic 132 may be performed by one or more processors. Video stream query command logic 130 is adapted to provide one or more VMS GUI query commands that may relate to a video stream stored or accessible by VMS server device 102, 104. For example, a VMS GUI query command may indicate that the VMS client device 106 is to query the VMS server device 102, 104 for availability of one or more video streams. Video stream query command logic 130 is also adapted to provide one or more VMS GUI control commands that may relate to a video stream stored or accessible by VMS server device 102, 104. For example, a VMS GUI control command may indicate that a video filter should be applied to a particular video stream, or that a particular video stream should be played.
[0041] VMS GUI device 108 is operable to provide for display a received video stream (e.g., a video frame of a video stream), and metadata associated with a video stream. For example, VMS GUI device 108 may receive a requested video stream from VMS client device 106, and provide it for display to display 134 over communication bus 128. VMS GUI device 108 may also include VMS GUI display logic (not shown) that is adapted to provide for display a GUI that allows for control of a displayed video frame of a video stream. The GUI may be displayed, for example, on display 134. A user may interact with the GUI via I/O device 138. I/O device 138 may be any suitable input/output device such as a keyboard, a stylus, a touchpad, or any other suitable I/O device. VMS GUI device 108 may also be operable to store information related to a video stream, such as metadata, in memory device 136 over communication bus 128.
[0042] Some or all of the functionality described above may be implemented in hardware or a combination of hardware and hardware executing suitable instructions. Suitable hardware may include one or more processors (e.g., central processing units (CPUs)), ASICs, state machines, FPGAs, or other suitable hardware. Some or all of the functionality described above may also be implemented in any other suitable manner such as, but not limited to, a software implementation including, for example, a driver implementation, a firmware implementation, a hardware implementation, or any suitable combination of the example implementations described above. In some examples, the executable suitable instructions may be stored on a computer readable storage medium, where the executable instructions are executable by one or more processors to cause the one or more processors to perform the actions described herein. Computer readable storage medium may include, for example, flash memory, any non-transitory computer readable medium such as but not limited to RAM or ROM, a cloud storage mechanism, or any other suitable storage mechanism.
[0043]
[0044] Message AckNak 208 may be sent by a VMS client device as a general reply to indicate that a request was acknowledged or not acknowledged. In general, this message is sent in response to a request only if the response does not require data. In other words, if the response doesn't require a more detailed response, then this message will be sent. Also, this message will be sent whenever an error occurs with any request.
[0045] Message ConnectToServer 210 may be sent by a VMS GUI device to connect to a new VMS server device. This will allow the client to search archives and view live feeds connected to the new VMS server device. Message ControVideoPlayback 212 may be sent by a VMS GUI device to control the playback of a video feed (e.g., stream). The VMS Client must already be connected to the feed and a window to show the requested video feed must be created prior to sending this message. Message ControlVideoWindow 214 may be sent by a VMS GUI device to create a new video window (e.g., such as one associated with a GUI displayed by the VMS GUI device), move an existing one, or delete an existing one. This must be called before a video can be played.
[0046] Message LinkStatus 216 may be sent by a VMS client device on a periodic basis from the VMS client device to the VMS GUI device to inform the VMS GUI device that the VMS client device is awake (e.g., up and running). Message ManageArchivesOnServer 218 may be sent by a VMS GUI device to manage archives and recordings of live feeds on a connected VMS server device. Message ManageChannelsOnServer 220 may be sent by a VMS GUI device to manage channels, which may provide video archives that are broadcast from a VMS server device, on a connected VMS server device. ManageConduitsOnServer 222 may be sent by a VMS GUI device to add additional conduits (live) feeds to a VMS server device, which ultimately get archived and show up as available feeds on a VMS client. A conduit may be a connection to a video encoder.
[0047] Message ManageCoT 224 may be sent by a VMS GUI device to manage which feeds use Cursor On Target (CoT), an XML-based protocol used for the transfer of tactical information (e.g., such as description of an object, time of an event, or a position of an event). Key-Length-Value (KLV) metadata may be encoded into a CoT Event according to the conversion defined by MISB Engineering Guideline 0805 titled “Cursor on Target Conversions for Key-Length-Value Metadata,” for example. This method will create either a Platform Position, or Sensor Point of Interest (SPI) CoT Event, or both, for incoming metadata.
[0048] Message ManageVideoFilters 226 may be sent by a VMS GUI device to control video filters that may be applied to a video stream by a VMS server device. For example, this message may indicate that a de-interlacing filter should or should not be applied to a video stream. Message MISBMetadata 228 may be sent from a VMS client device to a VMS GUI device to describe metadata associated with a metadata packet that is received. For example, the message may be sent as often as data changes within a metadata elementary stream of an incoming video.
[0049] Message ProgressStatus 230 may be sent by a VMS client device to announce status of various operations, including video importing and video clip saving. This message is generic so that any operation requiring the reporting of progress to the VMS GUI device can be handled. For example, when importing an external video file into a VMS server device, an identification (ID) is generated at the VMS GUI device and is passed in a request to the VMS client device. When the VMS client device publishes progress back to the VMS GUI device, this ID is included in each message for that particular action.
[0050] Message Query Metadata 232 may be sent by a VMS GUI device to query a server for video feeds that contain the given search criteria. Message QueryMetadataResults 234 may be sent by a VMS client device to return results of a metadata query from a VMS client device. Message RequestServerList 236 may be sent by a VMS GUI device to retrieve status of connected VMS server devices, including disk information and connected VMS client devices. Message ServerList 246 may be sent by a VMS client device to request a list of VMS server devices that a particular VMS client device has access to. For example, message ServerList 246 may be sent in response to a received RequestServerList 236 message. In one example, if multicast discovery is turned on at a VMS server device, then this list will include other available servers. However, if multicast discovery is turned off at the VMS server device, then only VMS server devices that the VMS client device is currently connected to will be included.
[0051] Message RequestServerStatus 238 may be sent by a VMS GUI device to retrieve status of connected servers, including disk information and connected VMS client devices. Message RequestVideoAvailability 240 may be sent by a VMS GUI device to query a VMS server device for video availability, such as intervals representing when video has been recorded to a disk. For example, the VMS server device may record a video stream when a live feed is added. However, if a video encoder is powered off, or no video is present at the video encoder (e.g. a camera is turned off), then the VMS server device detects this and may catalog the events. An indication of video availability may be displayed to an operator of a VMS GUI device on a timeline associated with its corresponding video feed. Message VideoAvailability 254 may be sent by a VMS server device indicating video availability, such as the intervals described above. The VideoAvailability 254 message may be sent, for example, in response to a received RequestVideoAvailability 240 message.
[0052] Message RequestVideoInformation 242 may be sent by a VMS GUI device to query a VMS server device for available video feeds, such as live video feeds and archived video feeds. Message VideoInformation 256 may be sent by a VMS client device indicating available video feeds. The VideoInformation 256 message may be sent, for example, in response to a received RequestVideoInformation 242 message.
[0053] Message SaveImagery 244 may be sent by a VMS GUI device to have a still image or a video clip saved by the VMS server device. For example, the message may specify start and end times of a video stream to be saved. The VMS server device may save the image or video clip to a local memory, or may store it to network accessible memory. Message ServerStatus 248 may be sent by a VMS GUI device to receive status back for a connected VMS server device. In addition, a VMS server device may send this message to indicate that its hard drive is full and video data needs to be pruned. In one example, when data needs to be pruned, this message is published to all VMS client devices and an archives list is created consisting of video archives that will be impacted (e.g., deleted) by the pruning process. This message is forwarded to the VMS GUI so that an operator has an indication of which archives are impacted.
[0054] Message TypeSize 250, which may include a constant and known message size, may be sent by a VMS GUI device or a VMS client device ahead of (e.g., as a header to) other messages to allow its recipient, such as the VMS client device, to determine which message is being sent next. This is useful so that the recipient is aware of the type and length of the following message. Message UserEvent 252 may be sent by a VMS client device to a VMS GUI device when an action, such as a user action (e.g., mouse click), occurs. In this manner, the VMS GUI device may be made aware of various actions that take place at the VMS client device. Message VideoStatus 258 may be sent by a VMS client device to a VMS GUI device at a periodic rate for a video stream displayed by a VMS GUI device. As such, information such as timeline status, video speed, and direction may be indicated on a displayed GUI.
[0055]
[0056] For example, as indicated in the figure, processor 308 may include one or more VMS GUI device modules 320 that may be executed to implement one or more of the messages described above with respect to
[0057] In one example, a user may interact with a video viewport window of a graphical user interface (GUI) 324 by using I/O device 138 to control video feeds, including the streaming of multiple video streams, among other functions.
[0058] As indicated in the figure, VMS GUI device 108 may transmit to VMS client device 106 a VMS GUI query or control message 310. In response, VMS client device 106 may provide to VMS server device 102 a VMS client query message 312. Based on the received VMS client query message 312, VMS server device 102 may provide a VMS server device response 314 to VMS client 108. Based on a received VMS server device response 314, VMS client device 106 may provide a VMS client response 316 to VMS GUI device 108. The VMS client response 316 may include, for example, an ACK/NAK message, or a periodic message, such as a link status message.
[0059]
[0060] The method begins at step 402 where a VMS server device receives multiple video streams and stores the multiple video streams in a memory, where each video stream includes video data and metadata. The method proceeds to step 404 where the VMS server device reads the metadata associated with one or more video streams and stores the metadata in a metadata database. The method proceeds to step 406, where a VMS GUI device provides one or more VMS GUI query commands to a VMS client device relating to at least one of the video streams. At step 408 the VMS GUI device provides one or more VMS control commands to the VMS client device relating to at least one video stream. At step 410, the VMS GUI device provides for display a GUI that allows for control of at least one video frame of at least one video stream. At step 412 the VMS client device receives from the VMS GUI device at least one of the VMS GUI query commands and the VMS control commands relating to the video stream. The VMS client device then determines at least one VMS client query command to transmit to the VMS server device based on the received VMS GUI query commands and VMS GUI control commands. At step 414 the VMS client device provides the determined VMS client query commands to the VMS server device. At step 416, the VMS server device receives the one or more VMS client query commands relating to the video stream and provides, based on the received VMS client query commands, at least one of a video frame of the video stream and metadata of the video stream. At step 418 the VMS client device receives at least one of the video frame of the video stream and the metadata of the video stream.
[0061]
[0062]
[0063] In some examples, executable suitable instructions may be stored on a computer readable storage medium, where the executable instructions are executable by one or more processors to cause the one or more processors to perform the actions described herein. Referring back to
[0064] As indicated, VMS server device 102 is operatively coupled to memory 602 via expansion bus 604 such that VMS server device 102 may obtain VMS server device logic code 606 from memory 602 for execution. Similarly, VMS client device 106 is operatively coupled to memory 602 via expansion bus 604 such that VMS client device 106 may obtain VMS client logic code 608 from memory 602 for execution, and VMS GUI device 108 is operatively coupled to memory 602 via expansion bus 604 such that VMS GUI device 108 may obtain VMS GUI logic code 610 from memory 602 for execution. In one example, VMS GUI device 108 executes VMS GUI logic code 610 in a Linux operating system environment. Memory 602 may be any suitable memory, such as random access memory (RAM), non-volatile memory (e.g., read-only memory (ROM), flash memory, EPROM, EEPROM, etc.), a disk storage device, or any other suitable memory that may store executable instructions.
[0065]
[0066] The video access panel 704 of the main display window 700 presents to an operator available live and archived video streams, and also allows an operator to search for and select videos to view. For example, the video access panel 704 includes a video search area that allows an operator to search for a video using a “Search” button. The video access panel 704 also includes a video feeds area that shows a listing of available live and archived video feeds. Finally, the video access panel 704 includes a video preview area where a selected video feed may be previewed. The videos may be provided by one or more VMS server devices 102. As shown, the VMS server devices may be identified by a corresponding Internet Protocol (IP) address.
[0067]
[0068]
[0069]
[0070]
[0071] In the foregoing specification, specific embodiments of the present disclosure have been described. However, one of ordinary skill in the art will appreciate that various modifications and changes can be made without departing from the scope of the disclosure as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative, rather than a restrictive, sense, and all such modifications are intended to be included within the scope of disclosure. The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as critical, required, or essential features or elements of any or all the claims. The disclosure is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued. Although the invention has been described in detail with reference to certain preferred embodiments, variations and modifications exist within the spirit and scope of the invention as described and defined in the following claims.