TECHNICAL FIELD

The present invention relates to a method for streaming a live video stream, especially for streaming a live video stream in a system comprising a video camera capturing the live video stream, a video recorder, and a video server. Additionally, it relates to the system comprising the video camera, the video recorder, and the video server. Further, the video camera, the video recorder, and the video server are presented as individual devices.

BACKGROUND

Streaming a live video stream from a source, e.g. a video camera, is common in many applications, especially in monitoring applications. That is, the live video stream is streamed from the source capturing the live video stream to a receiver of the live video stream that consumes the live video stream. The receiver may consume the live video stream by e.g. displaying or recording the live video stream. The receiver of the live video stream may e.g. be a client device displaying the live video stream, a video recorder recording the live video stream or a video server distributing the live video stream to one or more client devices and/or video recorders. The streaming may be initiated in different ways. Two typical approaches for streaming are to use push streaming or pull streaming.

Push streaming is when the source takes initiative to the streaming. The push streaming may be triggered by an event detection. The event detection may be detection of motion in the live video stream or detection of appearance of an object, for example belonging to a specific object class, in the live video stream. In other words, the source performs a push of the live video stream to the receiver in response to a push trigger in the form of an event detection. The push trigger is generated at the source. A benefit of this approach for initiating streaming is a quick response to events, for example quick start in storing video for a detected motion event.

Pull streaming is when the receiver requests the live video stream from the source. Typically, the receiver is a video server that is responsible for providing the live video stream to one or more client devices at which the live video stream is to be displayed. A benefit of this approach for initiating streaming is that the streaming may be initiated by the receiver of the stream.

For some applications benefits from both push streaming and pull streaming of a live video from a source are desirable. However, implementing both push streaming and pull streaming may increase utilization of processing power at the source. Further, implementing both push streaming and pull streaming may increase the bandwidth utilization out from the source. Hence, there is a need for implementing both push streaming and pull streaming of a live video stream from a source which facilitates a reduction in utilization of processing power at the source and/or bandwidth out from the source.

SUMMARY

It would be desirable to mitigate, alleviate or eliminate one or more of the above-identified deficiencies in the art and disadvantages singly or in any combination and solve at least the above-mentioned problem.

According to a first aspect, a method for streaming a live video stream is provided. The method is implemented in a system comprising a video camera generating the live video stream, a video recorder, and a video server. The method comprises: at the video server, receiving, from a client device, a request for the live video stream from the video camera; transmitting, from the video server, a push trigger to the video camera, the push trigger instructing the video camera to push the live video stream to the video recorder; upon receiving the push trigger, initiating a push of the live video stream from the video camera to the video recorder; pushing the live video stream from the video camera to the video recorder; pulling, by the video server, the live video stream from the video recorder; and transmitting, by the video server, the live video stream to the client device.

By the present method for streaming a live video stream the two different approaches of push streaming and pull streaming may be combined giving benefits/effects of the both. This while providing a slim and processing-efficient solution. By straight-forward combining the approaches of push streaming and pull streaming the media source (typically a video camera) will need to be able to simultaneously transmit two live video streams, one push stream to the video recorder and one pull stream requested by the video server. However, implementing both push streaming and pull streaming in this straight-forward manner may increase utilization of processing power at the video camera. Further, increased utilization of the bandwidth out from the video camera will be needed. The present method provides a possible solution to these problems using a non-intuitive architecture. Namely, instead of the video server initiating a pull streaming from the video camera directly, a push trigger is sent from the video server to the video camera instructing the video camera to push stream the live video stream to the video recorder. The video server is thereafter pulling the live video stream from the video recorder. Hence, only one video streaming channel is needed to be established out from the video camera, enabling savings on utilization of the bandwidth out from the video camera. Further, the utilization of processing power at the video camera may be decreased. This since only one video stream is needed to be generated at video camera. Alternatively, buffer memory may be saved since the video camera does not need to buffer video data for both a push and a pull video stream. Hence, part of the limited processing capability and/or buffer memory at the video camera may be released in favor of other functions at the video camera.

The system implementing the solution may have intelligence to handle different scenarios that can arise. For example, the video server may have access to information regarding which video streams that the video recorder has access to at the moment. In that case, the video server needs to initiate a push trigger to the camera only when the desired live video stream is not available in the video recorder.

The step of transmitting, from the video server, the push trigger to the video camera may comprise a direct transmission of the push trigger from the video server to the video camera.

The step of transmitting, from the video server, the push trigger to the video camera may comprise routing the push trigger via the video recorder.

The method may further comprise: at the video camera continuously analyzing the live video stream for detecting an event of interest in the live video stream; upon detecting an event of interest in the live video stream, initiating, at the video camera, a push of the live video stream to the video recorder. Hence, the initiating, at the video camera, of a push of the live video stream to the video recorder may either be performed in response to detecting an event of interest in the live video stream or to receiving the push trigger from the video server.

The method may further comprise upon initiating a push of the live video stream to the video recorder, checking whether the live video stream is already pushed to the video recorder; upon the live video stream being already pushed to the video recorder, preventing a further push of the live video stream to the video recorder. Hence, it may be secured so that only one stream is pushed from the video camera upon simultaneous push actions at the video camera.

The method may further comprise sending from the video camera information to the video recorder indicating the detected event of interest.

The method may further comprise, upon receiving the information indicating the detected event of interest at the video recorder, recording, at the video recorder, the live video stream.

According to a second aspect a video recorder is provided. The video recorder comprising a recorder control circuitry configured to execute: a live video stream receiving function configured to receive a live video stream pushed from a video camera; a recording function configured to record the live video stream upon receiving information from the video camera indicating a detected event in the live video stream; and a pull function configured to receive a pull request for the live video stream from a video server and to transmit the live video stream to the video server.

The recorder control circuitry may further be configured to execute a trigger routing function configured to route, to the video camera, a push trigger instructing the video camera to push the live video stream to the video recorder.

The above-mentioned features of the method according to the first aspect, when applicable, apply to this second aspect as well. In order to avoid undue repetition, reference is made to the above.

According to a third aspect a video server is provided. The video server comprising a server control circuitry configured to execute: a request function configured to, from a client device, receive a request for a live video stream from a video camera; a push trigger function configured to transmit a push trigger to the video camera, the push trigger instructing the video camera to push the live video stream to a video recorder; and a pull request function configured to transmit a pull request for the live video stream to the video recorder and to receive the live video stream pulled from the video recorder. The request function is further configured to transmit the live video stream received from the video recorder to the client device.

The above-mentioned features of the method according to the first aspect, when applicable, apply to this third aspect as well. In order to avoid undue repetition, reference is made to the above.

According to a fourth aspect a video camera is provided. The video camera comprising a camera transceiver configured to send and receive data from and to the video camera; and a camera control circuitry. The camera control circuitry is configured to execute: a live video stream function configured to generate a live video stream; a push function configured to open a push connection to a video recorder and to push the live video stream to the video recorder via the opened push connection; an event detection function configured to detect an event in the live video stream and upon detection of the event in the live video stream instruct the push function to push the live video stream to the video recorder; and a push trigger receiving function configured to receive, via the camera transceiver, a push trigger instructing the video camera to push the live video stream to the video recorder and to upon receiving the push trigger instruct the push function to push the live video stream to the video recorder. The push function is further configured to, upon receiving the instruction to push the live video stream to the video recorder, check whether the live video stream is already pushed via an already opened push connection and if so prevent opening of another push connection.

The event detection function may further be configured to, send metadata comprising information indicating the detected event in the live video stream to the video recorder.

The above-mentioned features of the method according to the first aspect, when applicable, apply to this fourth aspect as well. In order to avoid undue repetition, reference is made to the above.

According to a fifth aspect system for streaming a live video stream is provided. The system comprising: a video camera configured to generate the live video stream, a video recorder, and a video server configured to receive, from a client device, a request for the live video stream from the video camera, and to transmit a push trigger to the video camera, the push trigger instructing the video camera to push the live video stream to the video recorder. The video camera upon receiving the push trigger is configured to push the live video stream to the video recorder. The video server is configured to pull the live video stream from the video recorder and stream the live video stream to the client device.

The video recorder and video server may be separate devices connected in a network.

The video recorder and video server may be implemented in a same device.

The above-mentioned features of the method according to the first aspect, when applicable, apply to this fifth aspect as well. In order to avoid undue repetition, reference is made to the above.

The above-mentioned features of the video recorder according to the second aspect, when applicable, apply to the video recorder of the system according to the fifth aspect. In order to avoid undue repetition, reference is made to the above.

The above-mentioned features of the video server according to the third aspect, when applicable, apply to the video server of the system according to the fifth aspect. In order to avoid undue repetition, reference is made to the above.

The above-mentioned features of the video camera according to the fourth aspect, when applicable, apply to the video camera of the system according to the fifth aspect. In order to avoid undue repetition, reference is made to the above.

A further scope of applicability will become apparent from the detailed description given below. However, it should be understood that the detailed description and specific examples, while indicating preferred embodiments, are given by way of illustration only, since various changes and modifications will become apparent to those skilled in the art from this detailed description.

Hence, it is to be understood that the teachings are not limited to the particular component parts of the device described or acts of the methods described as such device and method may vary. It is also to be understood that the terminology used herein is for purpose of describing particular embodiments only and is not intended to be limiting. It must be noted that, as used in the specification and the appended claim, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements unless the context clearly dictates otherwise. Thus, for example, reference to “a unit” or “the unit” may include several devices, and the like. Furthermore, the words “comprising”, “including”, “containing” and similar wordings does not exclude other elements or steps.

