BACKGROUND

The subject matter disclosed herein generally relates to the field of video networks, and more particularly to an apparatus and method for video image-based media stream bandwidth reduction.

In some video display application, such as video surveillance, a client application may receive and display several video streams simultaneously. Video streamed from a video camera or a video recording device may have a high frame rate and resolution, which can consume a substantial amount of network bandwidth, memory, and processing resources when streamed over a network to a video display device. This can result in choppy and distracting video output at the video display device. Inconsistent video playback rates due to network loading can add post-processing challenges at the video display device. Further, when video bandwidth demands are high, other network traffic may experience increased latency.

BRIEF SUMMARY

According to one embodiment, a video system includes one or more media sources and a media server configured to communicate with a video viewing device through a network. The media server includes memory and a processor configured to perform a plurality of operations. The operations include receiving a video stream from the one or more media sources, where the video stream includes a plurality of image frames. The operations also include determining whether throttling is enabled for the video stream. Based on determining that throttling is enabled, one or more of the image frames of the video stream are dropped until a predetermined condition is met and one of the image frames from the media server is transmitted through the network to the video viewing device after the predetermined condition is met. Based on determining that throttling is disabled, the image frames of the video stream are transmitted from the media server through the network to the video viewing device.

In addition to one or more of the features described above, or as an alternative, further embodiments may include where the operations include tracking a time and a number of frame drops since a last frame was transmitted while throttling is enabled, where the predetermined condition is based on one or more of the time and the number of frame drops since the last frame was transmitted.

In addition to one or more of the features described above, or as an alternative, further embodiments may include where the one or more media sources provide a plurality of video streams to the media server, and throttling is selectable on a per video stream basis.

In addition to one or more of the features described above, or as an alternative, further embodiments may include where throttling is commanded in response to a throttling request received from the video viewing device.

In addition to one or more of the features described above, or as an alternative, further embodiments may include where throttling is commanded based on a status of the network.

In addition to one or more of the features described above, or as an alternative, further embodiments may include where throttling is commanded based on a status of the media server.

In addition to one or more of the features described above, or as an alternative, further embodiments may include the one or more media sources include one or more of a video camera and a video recorder.

According to another embodiment, a method of controlling a video system includes receiving, at a media server, a video stream from one or more media sources, where the video stream includes a plurality of image frames. The method also includes determining whether throttling is enabled for the video stream. Based on determining that throttling is enabled, one or more of the image frames of the video stream are dropped until a predetermined condition is met and one of the image frames from the media server is transmitted through the network to the video viewing device after the predetermined condition is met. Based on determining that throttling is disabled, the image frames of the video stream are transmitted from the media server through the network to the video viewing device.

According to a further embodiment, a computer program product is provided. The computer readable storage medium has program instructions embodied therewith, the program instructions executable by a processor of a media server to cause the processor to perform a plurality of operations. The operations include receiving a video stream from one or more media sources, where the video stream includes a plurality of image frames. The operations also include determining whether throttling is enabled for the video stream. Based on determining that throttling is enabled, one or more of the image frames of the video stream are dropped until a predetermined condition is met and one of the image frames from the media server is transmitted through the network to the video viewing device after the predetermined condition is met. Based on determining that throttling is disabled, the image frames of the video stream are transmitted from the media server through the network to the video viewing device.

Technical effects of embodiments of the present disclosure include network bandwidth reduction during video streaming over a network.

The foregoing features and elements may be combined in various combinations without exclusivity, unless expressly indicated otherwise. These features and elements as well as the operation thereof will become more apparent in light of the following description and the accompanying drawings. It should be understood, however, that the following description and drawings are intended to be illustrative and explanatory in nature and non-limiting.

