Streaming media associated with a premises security system

A user interface device associated with a premises security system that is configured to monitor a premises using a plurality of premises devices is provided. The user interface device includes processing circuitry configured to receive a request to stream video from a premises device of the plurality of premises devices, select one of a plurality of media servers to use to stream the video from the premises device, initiate a streaming channel to the selected media server to initiate the video streaming process with the selected media server, and receive, from the selected media server, the video stream associated with the premises device for playback.

TECHNICAL FIELD

The present disclosure is generally related to streaming media associated with a premises security system.

BACKGROUND

Network cloud servers (“servers”) provide various network resources and services that support a variety of functions, such as video and audio streaming. Load balancing is one manner in which workload is divided in the servers. For example, when an incoming request is received from a client device, a load balancer may forward the request to one of a number of servers that can handle the request.

Servers may be streaming media servers that receive video and audio streams from one or more cameras and forward the video streams to a number of mobile and Web clients. Some load balancers for streaming media servers operate by selecting a steaming media server randomly from a number of the available streaming media servers to service a request.

DETAILED DESCRIPTION

The present disclosure relates to configuring a playback device to open a streaming channel to a specific one of a plurality of media servers early in the media streaming process, thereby reducing delay (e.g., overall streaming start-up delay). Further, the selection of the media server by the playback device provides load balancing in the cloud network server.

Before describing in detail exemplary embodiments, it is noted that the embodiments may reside in combinations of apparatus components and processing steps related to streaming media associated with a premises security system where the streaming is performed in a load-balanced manner with reduced startup delay compared to existing systems. Components may be represented by conventional symbols in the drawings, focusing on those specific details that are pertinent to understanding the embodiments so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.

Referring now to the drawing figures in which like reference designators refer to like elements there is shown inFIG.1a system designated generally as “10.” System10may include premises security system12that is configured to monitor premises14. Premises security system12includes and/or is associated with one or more premises devices16a-16n(collectively referred to as “premises device16”), one or more user interface devices18and security control device19. The user interface devices18, premises device16and security control device19may communicate via one or more wired or wireless communication channels.

Premises devices16a-16nmay include sensors, control devices, images capture devices, life safety devices, lifestyle devices and/or other devices. For example, the types of sensors may include various life safety related sensors such as motion sensors, fire sensors, carbon monoxide sensors, flooding sensors and contact sensors, among other sensor types. The control devices may include, for example, one or more lifestyle related devices configured to adjust at least one premises setting such as lighting, temperature, energy usage, door lock and power settings, among other settings associated with the premises or devices on the premises. Image capture devices may include digital cameras and/or video cameras, among other image or video capture devices. In one or more embodiments, the image capture device is configured to stream captured media (e.g., audio and video) as described herein.

User interface device18may be a wireless device (e.g., wireless mobile device) that is configured to stream media associated with premises device16. User interface device18may be a security control panel (e.g., keypad/interface), computer, laptop, wireless mobile phone, among other devices that are configured to initiate media streaming from premises device16for playback on, for example, user interface device18. In one or more embodiments, user interface device18(e.g., security control panel) may be part of premises security system12or may be associated with premises security system12such as via a client software application stored on the user interface device18. User interface device18may communicate with one or more elements in premises security system12using one or more wired and/or wireless communication protocols.

In one or more embodiments, user interface device18includes selection unit20that is configured to perform one or more user interface device18functions such as functions related to streaming media associated with a premises security system12, as described herein.

In one or more embodiments, premises security system12may not include a security control device20such that system12may be only used to monitor a location by video camera. That is, in some examples, the premises security system12may be a system12that is not related to premises security monitoring by a remote monitoring system28and may be directed to non-security environments such as, for example, a TV studio or any live video venue. System12may be a video communication system12such as a system that is associated with a media streaming server and one or more cameras.

System10may further include one or more networks22(collectively referred to as “network22”). Network22may be a wide area network, local area network, wireless local network and metropolitan area network, among other networks. Network22provides communications among one or more of entities in system10, as described herein.

Network22includes one or more media servers24a-24n(collectively referred to as media server24) that are configured to receive media from, for example, premises device16and to transmit or stream the media to a user interface device18for playback. Media server24may be in communication with one or more entities in system10, such as with premises device16, user interface device18, cloud services node26, etc. Cloud services node26may correspond to one or more nodes or servers in network22and is configured to service media requests as described herein. Cloud services node26may be in communication with one or more entities in system10such as with, for example, premises device16, media server24, etc. In one or more embodiments, premises device16(e.g., video camera) may be connected to cloud services node26via a camera control server (not shown).

System10may further include one or more remote monitoring system28(collectively referred to as “remote monitoring system28”), communicating with at least one other entity in system10such as with premises security system12via network22for responding to security alarms that are communicated from security control device19.

With respect toFIG.2, the example system10includes a user interface device18that includes hardware30enabling the user interface device18to communicate with one or more entities in system10and to perform one or more functions described herein.

The hardware30may include a communication interface32for setting up and maintaining at least a wired and/or wireless connection to one or more entities in system10such as with remote monitoring system28, a premises device16, media server24, cloud services node26, among other entities in system10, etc.

In the embodiment shown, the hardware30of the user interface device18further includes processing circuitry34. The processing circuitry34may include a processor36and a memory38. In particular, in addition to or instead of a processor, such as a central processing unit, and memory, the processing circuitry34may comprise integrated circuitry for processing and/or control, e.g., one or more processors, processor cores, field programmable gate arrays (FPGAs), and/or application specific integrated circuits (ASICs) adapted to execute instructions. The processor36may be configured to access (e.g., write to and/or read from) the memory38, which may comprise any kind of volatile and/or nonvolatile memory, e.g., cache, buffer memory, random access memory (RAM), read-only memory (ROM), optical memory, and/or erasable programmable read-only memory (EPROM).

The user interface device18further has software40stored internally in, for example, memory38, or stored in external memory (e.g., database, storage array, network storage device, etc.) accessible by the user interface device18via an external connection. Software40may include a client application for authenticating the user interface device18with, for example, cloud services and premise security system12for accessing cloud services and premises security system12. The software40may be executable by the processing circuitry34. The processing circuitry34may be configured to control any of the methods and/or processes described herein and/or to cause such methods, and/or processes to be performed, e.g., by user interface device18. Processor36corresponds to one or more processors36for performing user interface device18functions described herein. The memory38is configured to store data, programmatic software code and/or other information described herein. In some embodiments, the software40may include instructions that, when executed by the processor36and/or processing circuitry34, cause the processor36and/or processing circuitry34to perform the processes described herein with respect to user interface device18. For example, processing circuitry34of the user interface device18may include selection unit20, which is configured to perform one or more functions described herein such as with respect to, for example, media server selection and media streaming initiation, as described herein.

AlthoughFIGS.1and2show selection unit20as being within a respective processor, this unit may be implemented such that a portion of the unit is stored in a corresponding memory within the processing circuitry. In other words, the unit may be implemented in hardware or in a combination of hardware and software within the processing circuitry.

FIG.3is a flowchart of an example process implemented by a user interface device18according to one or more embodiments of the present disclosure. One or more blocks described herein may be performed by one or more elements of user interface device18, such as by one or more of hardware30, communication interface32, processing circuitry34(including selection unit20), processor36, memory38, etc. User interface device18is configured to receive (Block S100) a request to stream video from a premises device16of the plurality of premises devices16, as described herein. User interface device18is configured to select (Block S102) one of a plurality of media servers24to use to stream the video from the premises device16, as described herein. User interface device18is configured to initiate (Block S104) a streaming channel to the selected media server24to initiate the video streaming process with the selected media server24, as described herein. User interface device18is configured to receive (Block S106), from the selected media server24where the video stream is associated with the premises device16for playback, as described herein.

According to one or more embodiments, the processing circuitry34is further configured to: determine a unique identifier associated with the premises device16, generate a numerical value based on a hash function of the unique identifier, and select the selected media server24to use for the streaming of video based on the numerical value.

According to one or more embodiments, the numerical value is within a range of zero to a quantity of the plurality of media servers24minus 1.

According to one or more embodiments, the unique identifier is a medium access control (MAC) address of the premises device16.

According to one or more embodiments, the processing circuitry34is further configured to receive an indication of the plurality of media servers24that are available to provide video streaming, determine a respective unique identifier for each of the plurality of premises devices16, generate a respective numerical value for each of the plurality of premises devices16based on a hash function of the respective unique identifier, each numerical value corresponding to a respective one of the plurality of media servers24, store a plurality of associations between the respective premises devices16and media servers247based on the respective numerical values, and select the selected media server24to use for the streaming of video from the premises device16based on one of the plurality of associations.

According to one or more embodiments, the plurality of associations are configured to provide load balancing for the plurality of media servers24for streaming requests associated with the plurality of premises devices16.

According to one or more embodiments, the request to stream video is received from a user of the user interface device18.

According to one or more embodiments, the premises device16is a camera.

According to one or more embodiments, the user interface device18is one of a mobile wireless device or a security control panel of the premises security system12.

According to one or more embodiments, the initiating of the streaming channel to the selected media server24is configured to cause the selected media server24to send a start streaming command to a cloud services node to initiate the video stream from premises device16.

FIG.4is a signaling diagram of an example process according to some embodiments of the present disclosure. In one or more embodiments, the process ofFIG.4may be a pre-configuration process that facilitates the user interface device18generating associations between media servers24and one or more premises devices16of premises security system12, such as, for example, before a request for to stream media is received, thereby facilitating the user interface device18initiating the streaming process with reduced delay when the request is received.

User interface device18is configured to establish a communication session, i.e., log in to begin a media streaming session, (S108) to cloud services node26with account information. For example, user interface device18may transmit account credentials to cloud services node26to authenticate the user interface device18and indicate that the user interface device18is authorized to obtain streaming video. Cloud services node26may respond (S110) to user interface device18with an indication of available media servers24if the account information is authenticated. In one or more embodiments, the cloud services node26responds to user interface device18by communicating a list of network addresses of a plurality of available media servers24that are available to stream media.

In one or more embodiments, steps S108and S110may occur with every streaming request. However, in one or more embodiments, user interface device18and/or cloud services node26may perform these steps less often such as to enhance efficiency. In one example, user interface device18logs in once and can then participate in multiple streaming requests to multiple cameras before logging out or user interface device18goes to sleep (e.g., enters a low-power mode) or is turned off by the user. Therefore, in one example, step S108may be performed once per several streaming requests.

Another example of when one or more of Steps S108and S110may be performed is when cloud services node26determines the composition of available streaming servers changes such that an updated list of available media servers is transmitted to user interface device18. However, in one example, the composition of the available streaming servers may change very rarely such as when a new cloud services deployment occurs.

User interface device18is configured to determine (S112) associations between one or more premises devices16and media servers24. In one or more embodiments, the associations relate to assigning or designating a respective premises device16to a respective media server24, which in turn provides load balancing at the media servers24with respect to streaming requests associated with the assigned premises devices16. In one example, the premises devices16that are associated with media servers24are video cameras, while other premises devices16(e.g., door sensors, fire sensors, etc.) are not associated with media servers24.

In one or more embodiments, the associations between the premises devices16and the media servers24are determined based on a hash function of a unique identifier for each premises device16that is being considered for association with a media server24. For example, premises device16aand16bare respective video cameras16aand16bwhere video camera18ahas a first MAC address and video camera18bhas a second MAC address. User interface device18performs a hash function of the first MAC address to generate a first numerical value and a hash function of the second MAC addresses to generate a second numerical value. In one or more embodiments, each MAC address is converted to a numerical value by converting the hexadecimal MAC address to decimal.

In particular, the hash function is configured to generate a number in a predefined range such as, for example, a range from 0 to a number of available media servers24minus one, where the available media servers may be indicated in S110. For example, a hash function of the first MAC address of video camera18aresults in a numerical value of 1 while the hash function of the second MAC address of video camera16bresults in a numerical value of 2. In one or more embodiments, the has function is a reminder operator function.

Further, the media servers24a-24cmay be designated (e.g., by user interface device18) with a respective numerical or identifier value within the range such that, for example, media server24ais designated with a numerical value of 0, media server24bis designated with a numerical value 1 and media server24cis designated with a numerical value of 2. The associations may then be formed by matching the numerical values of the video cameras16a,18bwith media servers24b,24c, in this example.

User interface device18is configured to store (S114) the associations generated in S112for later use such as, for example, when a request to stream media is received from a user.

FIG.5is a signaling diagram of another example process according to some embodiments of the present disclosure. User interface device18is configured to receive (S116) a request to stream media (e.g., video) from premises device16a. For example, a user of user interface device18may input a request to stream media via display and client software application of user interface device18. User interface device18is configured to select (S118) one of a plurality of media servers24for streaming the requested media. In this example, media server24bis selected based on the stored association between the premises device16aand media server24bas described above with respect toFIG.4.

User interface device18is configured to initiate a streaming channel with the selected media server24b, in this example. Media server24bresponds by transmitting a start streaming command (S122) to cloud services node26. In response to the start streaming command, cloud services node26transmits (S124) a comment to premises device16afor premises device16ato stream media to media server24b. In response, premises device16astreams media (e.g., video) to media server24b. Media server24bthen transmits or forwards media stream (e.g., video stream) to user interface device18. User interface device18receives the media stream from media server24band then initiates playback of the media stream.

Therefore, in one or more embodiments, user interface device18is configured to initiate the streaming process by opening a streaming channel to a selected media server24. When the initial video packets of the video stream arrive at media server24, the media server24immediately or almost immediately starts forwarding the video packets to user interface device18, thereby reducing the startup delay compared to other streaming processes. For example, some other streaming processes have a built-in startup delay since user interface device18is required to wait for a premises device16(e.g., video camera) connection to be established with the media server24before user interface device18opens a streaming channel to the media server.

Further, while some other streaming processes are associated with load balancing between media servers24to occur by random selection of the media server24to service a request, the present disclosure, in some embodiments, perform load balancing between the media servers24by associating a respective premises device16to a respective media server24such as to distribute the video streaming load of various cameras among various media servers24.

The functions/acts noted in the blocks may occur out of the order noted in the operational illustrations. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. Although some of the diagrams may include arrows on communication paths to show a primary direction of communication, communication may occur in the opposite direction of the depicted arrows.

Many different embodiments have been disclosed herein, in connection with the above description and the drawings. It will be understood that it would be unduly repetitious and obfuscating to literally describe and illustrate every combination and subcombination of these embodiments. Accordingly, all embodiments can be combined in any way and/or combination.

The present disclosure is not limited to what has been specifically shown and described herein above. In addition, unless mention was made above to the contrary, the accompanying drawings are not to scale. A variety of modifications and variations are possible in light of the above teachings without departing from the scope and spirit of the invention.