US12342022B2 - Video failover recording - Google Patents
Video failover recording Download PDFInfo
- Publication number
- US12342022B2 US12342022B2 US18/530,479 US202318530479A US12342022B2 US 12342022 B2 US12342022 B2 US 12342022B2 US 202318530479 A US202318530479 A US 202318530479A US 12342022 B2 US12342022 B2 US 12342022B2
- Authority
- US
- United States
- Prior art keywords
- encoded video
- video streams
- communication network
- memory storage
- video stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23103—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2365—Multiplexing of several video streams
- H04N21/23655—Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/765—Interface circuits between an apparatus for recording and another apparatus
- H04N5/77—Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
- H04N7/183—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a single remote source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1059—End-user terminal functionalities specially adapted for real-time communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234327—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64784—Data processing by the network
- H04N21/64792—Controlling the complexity of the content stream, e.g. by dropping packets
Definitions
- the present invention generally relates to the field of camera surveillance, and in particular to a method for failover recording of video streams.
- the present invention further relates to a corresponding control unit, a camera, and a computer program.
- the camera captures and encodes a video stream and transmits the encoded video stream over a communication network with a given bandwidth to a server or otherwise remote storage.
- the encoded video stream is typically pushed continuously over the communication network for storage or to an interface so that a user can observe the captured video stream in near real-time from a location remote from the camera location.
- the camera is unable to push the video stream, encoded at some bitrate, across the network.
- a solution to a lost connection is to buffer the encoded video stream locally at the camera. Once the connection is restored, the buffered video stream is transmitted across the communication network.
- this requires a local storage at the camera and this type of storages, typically an SD card or RAM, have limited capacity.
- the present invention is based upon the realization that by storing encoded video streams with reduced bitrates, it is possible to buffer video of longer time periods so that a recording for the time duration of a lost or reduced connection can anyway be transmitted once the connection is restored. More specifically, the inventors realized to generate and store multiple parallel video streams with different bitrates. Once the memory storage is full, or close to full according to a storage threshold, one, or more, of the parallel video streams is discontinued and no longer stored, and subsequently discarded from the memory storage device, which provides free storage space on the memory storage device to continue storing the other video streams. Thus, even if the memory storage device has a limited storage capacity, failover video can anyway be stored over relatively extensive time durations of lost connections.
- Video streams may be viewable in their own, or in some implementations, need to be combined with another video stream where the combination is viewable. In case of video streams that are viewable in their own, it is a video stream in its own that provides the highest bit rate.
- the video stream is a video stream that needs to be combined with another one or more of the video streams to form a complete viewable video stream, where it is the combination that provides the highest bitrate. In this case, it is a video stream that needs to be combined, that is discarded.
- a video stream is generally a set of consecutive image frames captured over time. The consecutive image frames collectively form the video stream.
- the memory storage device is accessible to the camera may be that the memory storage device is an internal memory of the camera, such as a non-volatile flash memory like a secure digital (SD) card.
- a further possible internal memory is a random-access memory (RAM).
- the memory storage may in other developments be external to the camera but at the location near the camera, for example connected via data transfer cables such as USB or network cables or similar.
- the bandwidth of the communication network may be defined as the present capacity in bits per unit time that the communication network can transmit. If the present capacity of the bandwidth is less than the bitrate of the presently produced encoded video stream, the bandwidth of the communication network is insufficient to transmit the video stream.
- a bitrate is the number of bits per unit time that is being generated from the image frames of the video stream captured by the camera.
- the bits may be generated in an encoder which encodes the captured image frames according to an encoding protocol such as MP4.
- the bitrate is directly or indirectly indicative of the produced bits per unit time.
- the method may comprise detecting that the communication network is restored, and transmitting, over the communication network, one or more of the multiple parallel encoded video streams.
- the transmission is resumed once the connection across the communication network is restored, and a preferred one or more of the stored encoded video streams is transmitted.
- the video stream that provides the highest quality or resolution is transmitted. This is generally the single video stream or combination of video streams that result in the highest bitrate.
- the method may comprise detecting that the communication network is restored, determining a present bandwidth of the restored communication link, and transmitting one or more of the still stored bitrate video streams that combined does not exceed the present bandwidth of the restored communication link.
- the one or more video streams that are transmitted maximizes the bandwidth utilization of the communication link.
- the multiple parallel encoded video streams are generated with decreasing inter-stream bitrates.
- bitrates of the encoded video streams are encoded with bitrates where a first bitrate is larger than a second bitrate which is larger than a third bitrate, and so on.
- the decrease in bitrate may for example be a scaling in bitrate.
- the decrease in bitrate may be a scaling by half between the parallel video streams.
- discontinuing the storing may be to discontinue the storing the presently highest bitrate video stream, and wherein the presently highest bitrate video stream is discarded. This advantageously releases the most capacity on the memory storage.
- the multiple parallel encoded video streams may be encoded with different image resolutions or frame rate or degree of compression.
- image resolutions or frame rate or degree of compression any one or all of varying the image resolutions or the frame rate or the compression will affect the bitrate.
- the multiple parallel encoded video streams may comprise a base encoded video stream and a set of enhancement encoded video streams combinable with the base encoded video stream to form a higher resolution video stream than the base encoded video stream alone.
- the encoded video stream may be low resolution video stream that is complete in itself for transmission and display.
- One or more enhancement video streams are combined with the base encoded video stream to provide a higher resolution video stream.
- the enhancement video streams cannot generate a valid video by itself but must be combined with the base encoded video stream.
- discontinuing the storing may be to discontinue the storing of one or more of the enhancement encoded video streams, and wherein the one or more of the enhancement encoded video streams is discarded.
- the video stream that provides the highest bitrate, when combined with the base encoded video stream is discarded to leave free storage for continuing storing the other enhancement encoded video streams and the base encoded video stream.
- the memory storage threshold may be that the memory storage is full. Thus, once the memory storage indicates that it has reached its full capacity, discontinuing storing and discarding of a video stream is executed.
- the multiple parallel encoded video streams are generated for the same scene.
- the number of parallel video streams may be select based on a present implementation at hand but is preferably at least two. In possible implementations, the number of parallel video streams is five or more, or about eight to ten.
- control unit arranged to perform the method of the first aspect and embodiments thereof.
- a camera comprising a memory storage for storing encoded video streams and an input/output interface to communicate with a receiver device over a communication network, and a control unit according to the second aspect.
- the camera may be a surveillance network camera.
- a computer program product comprising program code for performing, when executed by a control unit, the method of any of the herein discussed embodiments.
- FIG. 1 conceptually illustrates an example application of embodiments of the invention
- FIG. 2 is a flow-chart of method steps according to embodiments of the invention.
- FIG. 3 is a flow-chart of method steps according to embodiments of the invention.
- FIG. 4 illustrate two graphs of time evolution of amount of stored data and number of video streams according to embodiments of the invention
- FIG. 5 schematically illustrates scalable video
- FIG. 6 is block-diagram of a control unit and data flow according to embodiments of the invention.
- the camera 200 further comprises an image capturing module 202 , an image processing pipeline 204 , an encoder 206 , a memory storage device 208 , and an input and output interface 210 configured as a communication interface between the camera 200 and the communication network 114 via the communication link 112 .
- the image capturing module 202 comprises various components such as a lens and an image sensor, where the lens is adapted to project an image onto the image sensor comprising multiple pixels.
- the image processing pipeline 204 is configured to perform a range of various operations on image frames received from the image sensor.
- Such operations may include filtering, demosaicing, color correction, noise filtering for eliminating spatial and/or temporal noise, distortion correction for eliminating effects of e.g., barrel distortion, global and/or local tone mapping, e.g., enabling imaging of scenes containing a wide range of intensities, transformation, e.g., rotation, flat-field correction, e.g., for removal of the effects of vignetting, application of overlays, e.g., privacy masks, explanatory text, etc.
- transformation operations such as correction of barrel distortion, rotation, etc.
- the image frames are forwarded to the encoder 206 , in which the image frames are encoded according to an encoding protocol and forwarded to a receiver, e.g., the client 116 and/or the server 118 , over the communication network 114 using the input/output interface 210 .
- a receiver e.g., the client 116 and/or the server 118
- the camera 200 illustrated in FIG. 1 also includes numerous other components, such as processors, additional memories, etc., which are common in conventional camera systems and whose purpose and operations are well known to those having ordinary skill in the art. Such components have been omitted from the illustration and description of FIG. 1 for clarity reasons.
- the camera 200 also comprise a memory storage device 208 for storing encoded video streams.
- the memory storage device 208 may be a non-volatile memory, such as an SD card.
- Some common video encoding formats that work with the various embodiments of the present invention include: JPEG, Motion JPEG (MJPEG), High Efficiency Video Coding (HEVC), also known as H.265 and MPEG-H Part 2; Advanced Video Coding (AVC), also known as H.264 and MPEG-4 Part 10; Versatile Video Coding (VVC), also known as H.266, MPEG-I Part 3 and Future Video Coding (FVC); VP9, VP10 and AOMedia Video 1 (AV1), just to give some examples.
- JPEG Joint JPEG
- Motion JPEG Motion JPEG
- HEVC High Efficiency Video Coding
- AVC Advanced Video Coding
- VVC Versatile Video Coding
- H.266 MPEG-I Part 3 and Future Video Coding
- AV1 AOMedia Video 1
- the image processing pipeline 204 and the encoder 206 may be operative on a control unit 212 .
- the camera 200 preferably comprises the control unit 212 and are provided as a single unit with a common housing. However, it is envisaged that the control unit 212 may be a separate stand-alone control.
- the camera 200 When monitoring the scene 1 , the camera 200 continuously captures image frames that jointly form a video stream using the image capturing module 202 , optionally processes the image frames in the image processing pipeline 204 , encodes the processed data in encoder 206 , and either stores the encoded image frames in the memory storage device 208 and/or directly transmits the encoded image frames over the communication network 114 depending on the presently available bandwidth in the communication network 114
- the encoded video stream may be stored on the memory storage device 208 , but this storage may fill up quickly.
- the inventors propose a method where multiple parallel video streams are generated and stored in parallel at different bitrates once the connection is lost or is insufficient for transmission.
- the video streams are consecutively discarded one by one as the memory storage device 208 fills up while the remaining video streams are continued.
- video streams may be ensured for the time during of the lost or insufficient connection with the trade-of and gradual decrease of video quality over time, instead of no video at all if the connection outage lasts beyond a certain time.
- FIG. 2 is a flow-chart of method steps according to embodiments of the invention and FIG. 6 is a block diagram of a control unit 212 and components thereof.
- the control unit 212 receives image data 201 in the form of a stream of images from the image capturing module 202 .
- step S 102 the control unit 212 detects that a bandwidth of a connection over the communication network 114 is insufficient for transmitting a video stream at a predetermined bitrate. This may include to detect that the present bandwidth of the communication network 114 is below or equal to a predetermined threshold in terms of transmission bitrate, i.e., expressed as bits per second. The control unit 212 may detect that the bandwidth is insufficient by attempting to transmit data over the communication network 114 using the input/output interface 210 .
- step S 104 the control unit 212 generates multiple parallel encoded video streams with different bitrates.
- the control unit 212 employs the encoder 206 for generating the parallel encoded video streams. That the video streams are parallel means that they capture the same scene for the same time duration. Thus, apart from their bitrates being different, the video streams include the same image scene representation.
- step S 106 the control unit 212 , stores the multiple parallel encoded video streams on the memory storage device 208 accessible to the camera 200 .
- the image frames of the encoded video streams are stored as they are generated. Thus, once an image frame has been encoded with a set of different bitrates, the encoded image frames are stored on the memory storage device 208 .
- the video streams may be complete video streams or in some embodiments may refer to a base encoded video stream with associated enhanced encoded video streams according to scalable video formats such as high efficiency video encoding sometimes known as H.265.
- step S 108 the control unit 212 detects that the memory storage usage of the memory storage device 208 exceeds a storage threshold.
- a storage threshold In other words, the amount of data stored on the memory storage device 208 exceeds a storage threshold.
- the threshold may indicate that the memory storage device 208 is nearly full, or that the memory storage device 208 is full, and has no more capacity to store additional data of the encoded video streams.
- step S 110 the control unit 212 , controls a discontinuing of the storing of one of the multiple encoded video streams. Discontinuing storing of a video stream means that the encoding of the image frames at the respective bitrate is no longer performed or that once encoding has been performed the resulting encoded image frames are immediately discarded.
- the discontinued encoded video stream is the encoded video stream that provides the highest bitrate among the multiple encoded video streams.
- the discontinued encoded video stream may be of different formats depending on the encoding scheme but is generally the encoded video stream for which a bitrate of the final viewable video is the highest, thus discontinuing storing one of the multiple encoded video streams sacrifices the highest bitrate video stream.
- the bitrate depends on at least resolution, degree of video compression, and frame rate, thus one of these are typically sacrificed to the benefit of releasing capacity on the memory storage device 208 .
- the multiple parallel encoded video streams may by encoded with different image resolutions and/or frame rates.
- step S 112 the control unit 212 controls a discarding of the one of the multiple encoded video streams that was discontinued for storing from the memory storage device 208 .
- the control unit 212 detects, or in some way receives information or a message of that the communication across the communication network 114 is restored, in step S 114 , then the control unit is configured to transmit, in step S 116 , over the communication network 114 , one or more of the multiple parallel encoded video streams 209 . Detecting that the communication network is restored may include to determine that the bandwidth of the connection across the communication network 114 exceeds some predetermined threshold indicative of stable connectivity.
- control unit 212 may determine a present bandwidth of the restored communication network 114 by attempting to transmit data. In other words, the control unit 212 may at some interval attempt to transmit the presently highest bitrate video stream to evaluate if the present bandwidth is sufficient for transmission. The interval, determined by an incremental backoff timer, may be for example to attempt transmitting data every 1, 2, 4, 8, 16, 32, 60, 60, 60 . . . seconds. Based on this initial evaluation, the control unit 212 may select and transmit one or more of the still stored encoded video streams that combined does exceed the present bandwidth of the restored communication network 114 , so that the one or more of the still stored encoded video streams can be transmitted across the communication network 114 .
- FIG. 4 which includes a first graph 402 of the amount of data from the encoded parallel video streams as a function of time, and a second graph 404 that illustrates the corresponding decrease in the number of stored encoded video streams.
- the threshold T may indicate that the memory storage device 208 is close to being full, that the memory storage device 208 has reached its full capacity.
- the threshold T may indicate that the memory storage device 208 is close to being full, that the memory storage device 208 has reached its full capacity.
- one of the encoded video streams is discarded from the memory storage device 208 , thus the number of video streams is reduced by 1 as indicated in the second graph 404 and the amount of data is reduced to level D.
- the remaining video streams are continued for storing until the memory storage device 208 again has reached to or near its full capacity at time t 2 , whereby a second encoded video stream with a bitrate different from the first encoded video stream discarded at time t 1 is discarded and the number of stored video streams is again reduced by one and the amount of stored data drops to level D.
- the remaining video streams are continued for storing until the memory storage device 208 again has reached to or near its full capacity at time t 3 , whereby a third encoded video stream with a bitrate different from the other encoded video streams is discarded at time t 3 .
- the number of stored video streams is again reduced by one and the amount of stored data drops to level D. This is repeated until the communication network 114 is restored, or until no more encoded video streams remain on the memory storage device 208 .
- the slopes k 1 , k 2 , k 3 decrease as the number of encoded video streams decrease.
- the multiple parallel encoded video streams are generated with decreasing inter-stream bitrates.
- the first encoded video stream that is discarded was encoded with the highest bitrate
- the second encoded video stream that is discarded was encoded with the second highest bitrate
- the third encoded video stream that is discarded was encoded with the third highest bitrate, and so on.
- relatively higher bitrate video streams are discarded before relatively lower bitrate video streams. With a lower bitrate it takes longer time to generate the same amount of data as with a higher bitrate.
- the number of parallel video streams is here in the graphs 402 and 404 exemplified as three.
- the number of parallel encoded video streams is at least two, such as 3, 4, 5, 6, 7, 8, 9, or 10 parallel encoded video streams.
- the decrease in bitrate is a scaling by half between the parallel video streams.
- the encoded video stream with highest bitrate will occupy 50% of the memory storage device 208 capacity while all the other video streams together occupy the remaining 50%.
- the first encoded video stream is discarded, and the remaining encoded video stream can use the freed space on the memory storage 208 .
- the amount of data D is 50% of the threshold T.
- the encoding may be for six video streams:
- video streams is means as an example to illustrate the present embodiment. Any multiple number of the above, or streams with further scaled bitstreams. Compared to saving only the full bitrate stream, the capacity of the memory storage device needs to have twice the capacity of storing the full bitrate stream. However, with the above scaling, the amount of additional space will never be more that this even for infinity number of streams since the since the total memory can be expressed as a geometric sum, 1 ⁇ 2+1 ⁇ 4+1 ⁇ 8, etc.
- the enhancement encoded video streams include information for increasing the quality of the base encoded video stream.
- Such information may for example be data to increase resolution or frame rate.
- enhancement encoded video streams 504 , 506 , 508 need to be combined or interleaved with the base encoded video stream 502 . Consequently, the bitrate of the resulting video stream increases with the number of enhancement encoded video streams, 504 - 508 , that are combined with the based encoded video stream 502 .
- the first enhancement encoded video stream 504 , the second enhancement encoded video stream 506 , and the third enhancement encoded video stream 508 may all be combined with the base encoded video stream 502 .
- the enhancement encoded video stream only contain the addition or difference to enhance for example frame rate or resolution and are not viewable in their own without the base encoded video stream 502 .
- the multiple parallel encoded video streams may comprise a base encoded video stream 502 and a set of enhancement encoded video streams 504 , 506 , 508 combinable with the base encoded video stream 502 to form a higher quality video stream than the base encoded video stream 502 alone.
- discontinuing the storing is to discontinue the storing of one or more of the enhancement encoded video streams 504 , 506 , 508 . Further, it is one or more of the enhancement encoded video streams 504 , 506 , 508 that is discarded.
- the enhancement encoded video stream 508 that together with the base encoded vides stream 502 and any intermediate enhancement encoded video stream 504 , 506 would result in the highest combined bitrate is the one that is discarded.
- the enhancement encoded video stream 508 would be discontinued and discarded first when the memory storage device 208 is full.
- the enhancement encoded video stream 506 is discontinued and discarded.
- the total number of parallel video streams 502 , 504 , 506 , 508 is four.
- further enhancement video streams are envisaged, such as 3 or 4 enhancement encoded video streams.
- FIG. 6 is a block diagram of a control unit 212 and data flow according to embodiments of the invention.
- a computer program 233 comprising instructions which, when the program is executed by the control unit 212 , cause the control unit 212 to carry out the method of any one of the methods described herein.
- the control unit 212 includes processing circuitry 230 that is arranged to perform the steps of the herein disclosed methods.
- the control unit receives image data 201 in the form of a stream of images from an image capturing module, 202 , e.g., 202 shown in FIG. 1 .
- image data 201 in the form of a stream of images from an image capturing module, 202 , e.g., 202 shown in FIG. 1 .
- the encoded video stream is transmitted over a communication network via an input/output interface 210 connected to a communication link 112 that provides access to the communication network 114 .
- control unit 212 When the control unit 212 detects that a bandwidth of a connection over the communication network is insufficient for transmitting a video stream, the control unit 212 initiates generation of multiple parallel encoded video streams, e.g., n parallel encoded video streams, with different bitrates that are stored on the memory storage device 208 that is accessible to the control unit 212 .
- multiple parallel encoded video streams e.g., n parallel encoded video streams
- the control unit 212 may detect that the memory storage usage of the memory storage device 208 exceeds a storage threshold. When this occurs, the control unit 212 discontinues of the storing of one of the multiple encoded video streams and continues the storing of the remaining n ⁇ 1 parallel encoded video streams. Subsequently, the control unit 212 discards the discontinued video stream from the memory storage device 208 which now stores only n ⁇ 1 video streams.
- control unit 212 transmits, using the input/output interface and the communication link 112 , one or more of the multiple parallel encoded video streams 209 .
- the control unit includes a microprocessor, microcontrol unit, programmable digital signal processor or another programmable device.
- the control unit may also, or instead, include an application specific integrated circuit, a programmable gate array or programmable array logic, a programmable logic device, or a digital signal processor.
- the control unit includes a programmable device such as the microprocessor, microcontrol unit or programmable digital signal processor mentioned above, the processor may further include computer executable code that controls operation of the programmable device.
- control functionality of the present disclosure may be implemented using existing computer processors, or by a special purpose computer processor for an appropriate system, incorporated for this or another purpose, or by a hardwire system.
- Embodiments within the scope of the present disclosure include program products comprising machine-readable medium for carrying or having machine-executable instructions or data structures stored thereon.
- Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor.
- machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor.
- a network or another communications connection either hardwired, wireless, or a combination of hardwired or wireless
- any such connection is properly termed a machine-readable medium.
- Machine-executable instructions include, for example, instructions and data which cause a general-purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
A method of failover recording of video streams in a camera connectable to a receiver device over a communication network, the method comprising: detecting that a bandwidth of a connection over the communication network is insufficient for transmitting a video stream at a predetermined bitrate, generating multiple parallel encoded video streams with different bitrates, storing the multiple parallel encoded video streams on a memory storage accessible to the camera, detecting that the memory storage usage of the memory storage exceeds a storage threshold, discontinuing the storing of one of the multiple encoded video streams being the encoded video stream that provides the highest bitrate among the multiple encoded video streams, and discarding the one of the multiple encoded video streams from the memory storage.
Description
The present invention generally relates to the field of camera surveillance, and in particular to a method for failover recording of video streams. The present invention further relates to a corresponding control unit, a camera, and a computer program.
In various camera surveillance applications, the camera captures and encodes a video stream and transmits the encoded video stream over a communication network with a given bandwidth to a server or otherwise remote storage. The encoded video stream is typically pushed continuously over the communication network for storage or to an interface so that a user can observe the captured video stream in near real-time from a location remote from the camera location.
However, if the connection across the communication network is lost, or the bandwidth is temporarily substantially reduced, the camera is unable to push the video stream, encoded at some bitrate, across the network.
A solution to a lost connection is to buffer the encoded video stream locally at the camera. Once the connection is restored, the buffered video stream is transmitted across the communication network. However, this requires a local storage at the camera and this type of storages, typically an SD card or RAM, have limited capacity.
Accordingly, there is room for improvements with regards to handling produced video data in a camera when a connection over its communication network is lost or substantially reduced.
In view of above-mentioned and other drawbacks of the prior art, it is an object of the present invention to provide an improved method of failover recording of video streams in a camera that alleviates at least some of the drawbacks of prior art.
According to a first aspect of the present invention, it is therefore provided a method of failover recording of video streams in a camera connectable to a receiver device over a communication network, the method comprising: detecting that a bandwidth of a connection over the communication network is insufficient for transmitting a video stream at a predetermined bitrate, generating multiple parallel encoded video streams with different bitrates, storing the multiple parallel encoded video streams on a memory storage accessible to the camera, detecting that the memory storage usage of the memory storage exceeds a storage threshold, discontinuing the storing of one of the multiple encoded video streams being the encoded video stream that provides the highest bitrate among the multiple encoded video streams, and discarding the one of the multiple encoded video streams from the memory storage.
The present invention is based upon the realization that by storing encoded video streams with reduced bitrates, it is possible to buffer video of longer time periods so that a recording for the time duration of a lost or reduced connection can anyway be transmitted once the connection is restored. More specifically, the inventors realized to generate and store multiple parallel video streams with different bitrates. Once the memory storage is full, or close to full according to a storage threshold, one, or more, of the parallel video streams is discontinued and no longer stored, and subsequently discarded from the memory storage device, which provides free storage space on the memory storage device to continue storing the other video streams. Thus, even if the memory storage device has a limited storage capacity, failover video can anyway be stored over relatively extensive time durations of lost connections.
Video streams may be viewable in their own, or in some implementations, need to be combined with another video stream where the combination is viewable. In case of video streams that are viewable in their own, it is a video stream in its own that provides the highest bit rate.
Another possible implementation is that the video stream is a video stream that needs to be combined with another one or more of the video streams to form a complete viewable video stream, where it is the combination that provides the highest bitrate. In this case, it is a video stream that needs to be combined, that is discarded.
A video stream is generally a set of consecutive image frames captured over time. The consecutive image frames collectively form the video stream.
That the memory storage device is accessible to the camera may be that the memory storage device is an internal memory of the camera, such as a non-volatile flash memory like a secure digital (SD) card. A further possible internal memory is a random-access memory (RAM). However, the memory storage may in other developments be external to the camera but at the location near the camera, for example connected via data transfer cables such as USB or network cables or similar.
The bandwidth of the communication network may be defined as the present capacity in bits per unit time that the communication network can transmit. If the present capacity of the bandwidth is less than the bitrate of the presently produced encoded video stream, the bandwidth of the communication network is insufficient to transmit the video stream.
A bitrate is the number of bits per unit time that is being generated from the image frames of the video stream captured by the camera. The bits may be generated in an encoder which encodes the captured image frames according to an encoding protocol such as MP4. The bitrate is directly or indirectly indicative of the produced bits per unit time.
According to an embodiment, the method may comprise detecting that the communication network is restored, and transmitting, over the communication network, one or more of the multiple parallel encoded video streams. Advantageously, the transmission is resumed once the connection across the communication network is restored, and a preferred one or more of the stored encoded video streams is transmitted. Preferably, the video stream that provides the highest quality or resolution is transmitted. This is generally the single video stream or combination of video streams that result in the highest bitrate.
According to an embodiment, the method may comprise detecting that the communication network is restored, determining a present bandwidth of the restored communication link, and transmitting one or more of the still stored bitrate video streams that combined does not exceed the present bandwidth of the restored communication link. Preferably, the one or more video streams that are transmitted maximizes the bandwidth utilization of the communication link.
According to an embodiment, the multiple parallel encoded video streams are generated with decreasing inter-stream bitrates. Thus, bitrates of the encoded video streams are encoded with bitrates where a first bitrate is larger than a second bitrate which is larger than a third bitrate, and so on. The decrease in bitrate may for example be a scaling in bitrate.
In one possible embodiment, the decrease in bitrate may be a scaling by half between the parallel video streams.
According to an embodiment, discontinuing the storing may be to discontinue the storing the presently highest bitrate video stream, and wherein the presently highest bitrate video stream is discarded. This advantageously releases the most capacity on the memory storage.
According to an embodiment, the multiple parallel encoded video streams may be encoded with different image resolutions or frame rate or degree of compression. Generally, any one or all of varying the image resolutions or the frame rate or the compression will affect the bitrate.
According to an embodiment, the multiple parallel encoded video streams may comprise a base encoded video stream and a set of enhancement encoded video streams combinable with the base encoded video stream to form a higher resolution video stream than the base encoded video stream alone. The encoded video stream may be low resolution video stream that is complete in itself for transmission and display. One or more enhancement video streams are combined with the base encoded video stream to provide a higher resolution video stream. The enhancement video streams cannot generate a valid video by itself but must be combined with the base encoded video stream.
According to an embodiment, discontinuing the storing may be to discontinue the storing of one or more of the enhancement encoded video streams, and wherein the one or more of the enhancement encoded video streams is discarded. Thus, in this way the video stream that provides the highest bitrate, when combined with the base encoded video stream, is discarded to leave free storage for continuing storing the other enhancement encoded video streams and the base encoded video stream.
In embodiments, the memory storage threshold may be that the memory storage is full. Thus, once the memory storage indicates that it has reached its full capacity, discontinuing storing and discarding of a video stream is executed.
The multiple parallel encoded video streams are generated for the same scene.
The number of parallel video streams may be select based on a present implementation at hand but is preferably at least two. In possible implementations, the number of parallel video streams is five or more, or about eight to ten.
According to a second aspect of the present invention, there is provided a control unit arranged to perform the method of the first aspect and embodiments thereof.
Further embodiments of, and effects obtained through this second aspect of the present invention are largely analogous to those described above for the first aspect of the invention.
According to a third aspect of the present invention, there is provided a camera comprising a memory storage for storing encoded video streams and an input/output interface to communicate with a receiver device over a communication network, and a control unit according to the second aspect.
The camera may be a surveillance network camera.
Further embodiments of, and effects obtained through this third aspect of the present invention are largely analogous to those described above for the first aspect and the second aspect of the invention.
According to a fourth aspect of the present invention, there is provided a computer program product comprising program code for performing, when executed by a control unit, the method of any of the herein discussed embodiments.
Further embodiments of, and effects obtained through this fourth aspect of the present invention are largely analogous to those described above for the other aspects of the invention.
Further features of, and advantages with, the present invention will become apparent when studying the appended claims and the following description. The skilled addressee realize that different features of the present invention may be combined to create embodiments other than those described in the following, without departing from the scope of the present invention.
The various aspects of the invention, including its particular features and advantages, will be readily understood from the following detailed description and the accompanying drawings, in which:
The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which currently preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided for thoroughness and completeness, and fully convey the scope of the invention to the skilled person. Like reference characters refer to like elements throughout.
Turning now to the drawings and to FIG. 1 in particular, there is shown a scene 1 being monitored by an image acquisition device 200, e.g., a network camera or more specifically a network surveillance camera. In the scene 1, there is a set of objects 104 a, 104 b, that may be for example vehicles in a parking lot, and persons 106 a-c.
The camera 200 may be mounted on a building, on a pole, or in any other suitable position depending on the specific application at hand. Further the camera 200 may be a fixed camera or a movable camera such as pan, tilt and zoom, or even a body worn camera. Further, the camera 200 may be a visible light camera, an infrared (IR) sensitive camera or a thermal (long-wavelength infrared (LWIR)) camera. Further, image acquisition devices employing LIDAR and radar functionalities may also be conceivable.
The camera 200 is continuously monitoring the scene 1 by capturing image frames forming a video stream of the scene 1. The scene 1 that is within the field of view of the camera 200 is here exemplified as including the objects 104 a-b and people 106 a-c. The camera 200 may transmit the video stream over a communication link 112 connected to a communication network 114 having a transmission capacity, i.e., a bandwidth, to a client 116 or a server 118 where video stream may be stored and/or observed by a user as a live stream.
The camera 200 further comprises an image capturing module 202, an image processing pipeline 204, an encoder 206, a memory storage device 208, and an input and output interface 210 configured as a communication interface between the camera 200 and the communication network 114 via the communication link 112.
The image capturing module 202 comprises various components such as a lens and an image sensor, where the lens is adapted to project an image onto the image sensor comprising multiple pixels.
The image processing pipeline 204 is configured to perform a range of various operations on image frames received from the image sensor. Such operations may include filtering, demosaicing, color correction, noise filtering for eliminating spatial and/or temporal noise, distortion correction for eliminating effects of e.g., barrel distortion, global and/or local tone mapping, e.g., enabling imaging of scenes containing a wide range of intensities, transformation, e.g., rotation, flat-field correction, e.g., for removal of the effects of vignetting, application of overlays, e.g., privacy masks, explanatory text, etc. However, it should be noted that some of these operations, e.g., transformation operations, such as correction of barrel distortion, rotation, etc., may be performed by one or more modules, components or circuits arranged outside the image processing pipeline 204, for example in one or more units between the image processing pipeline 204 and the encoder 206.
Following the image processing pipeline 204, the image frames are forwarded to the encoder 206, in which the image frames are encoded according to an encoding protocol and forwarded to a receiver, e.g., the client 116 and/or the server 118, over the communication network 114 using the input/output interface 210. It should be noted that the camera 200 illustrated in FIG. 1 also includes numerous other components, such as processors, additional memories, etc., which are common in conventional camera systems and whose purpose and operations are well known to those having ordinary skill in the art. Such components have been omitted from the illustration and description of FIG. 1 for clarity reasons.
The camera 200 also comprise a memory storage device 208 for storing encoded video streams. The memory storage device 208 may be a non-volatile memory, such as an SD card.
There are a number of conventional video encoding formats. Some common video encoding formats that work with the various embodiments of the present invention include: JPEG, Motion JPEG (MJPEG), High Efficiency Video Coding (HEVC), also known as H.265 and MPEG-H Part 2; Advanced Video Coding (AVC), also known as H.264 and MPEG-4 Part 10; Versatile Video Coding (VVC), also known as H.266, MPEG-I Part 3 and Future Video Coding (FVC); VP9, VP10 and AOMedia Video 1 (AV1), just to give some examples.
The image processing pipeline 204 and the encoder 206 may be operative on a control unit 212. The camera 200 preferably comprises the control unit 212 and are provided as a single unit with a common housing. However, it is envisaged that the control unit 212 may be a separate stand-alone control.
When monitoring the scene 1, the camera 200 continuously captures image frames that jointly form a video stream using the image capturing module 202, optionally processes the image frames in the image processing pipeline 204, encodes the processed data in encoder 206, and either stores the encoded image frames in the memory storage device 208 and/or directly transmits the encoded image frames over the communication network 114 depending on the presently available bandwidth in the communication network 114
However, if the connection to the communication network 114 is lost or reduced so that the bandwidth of the connection is insufficient for transmitting a video stream no video stream will be transmitted. The encoded video stream may be stored on the memory storage device 208, but this storage may fill up quickly.
To alleviate this problem, the inventors propose a method where multiple parallel video streams are generated and stored in parallel at different bitrates once the connection is lost or is insufficient for transmission. The video streams are consecutively discarded one by one as the memory storage device 208 fills up while the remaining video streams are continued. In this way, video streams may be ensured for the time during of the lost or insufficient connection with the trade-of and gradual decrease of video quality over time, instead of no video at all if the connection outage lasts beyond a certain time. Embodiments of the invention will now be described in more detail with reference to the drawings.
It is herein provided a method of failover recording of video streams in a camera 200 connectable to a receiver device 116, 118 over a communication network 114. The control unit 212 receives image data 201 in the form of a stream of images from the image capturing module 202.
In step S102, the control unit 212 detects that a bandwidth of a connection over the communication network 114 is insufficient for transmitting a video stream at a predetermined bitrate. This may include to detect that the present bandwidth of the communication network 114 is below or equal to a predetermined threshold in terms of transmission bitrate, i.e., expressed as bits per second. The control unit 212 may detect that the bandwidth is insufficient by attempting to transmit data over the communication network 114 using the input/output interface 210.
In step S104, the control unit 212 generates multiple parallel encoded video streams with different bitrates. The control unit 212 employs the encoder 206 for generating the parallel encoded video streams. That the video streams are parallel means that they capture the same scene for the same time duration. Thus, apart from their bitrates being different, the video streams include the same image scene representation.
In step S106, the control unit 212, stores the multiple parallel encoded video streams on the memory storage device 208 accessible to the camera 200. The image frames of the encoded video streams are stored as they are generated. Thus, once an image frame has been encoded with a set of different bitrates, the encoded image frames are stored on the memory storage device 208. The video streams may be complete video streams or in some embodiments may refer to a base encoded video stream with associated enhanced encoded video streams according to scalable video formats such as high efficiency video encoding sometimes known as H.265.
In step S108, the control unit 212 detects that the memory storage usage of the memory storage device 208 exceeds a storage threshold. In other words, the amount of data stored on the memory storage device 208 exceeds a storage threshold. The threshold may indicate that the memory storage device 208 is nearly full, or that the memory storage device 208 is full, and has no more capacity to store additional data of the encoded video streams.
In step S110, the control unit 212, controls a discontinuing of the storing of one of the multiple encoded video streams. Discontinuing storing of a video stream means that the encoding of the image frames at the respective bitrate is no longer performed or that once encoding has been performed the resulting encoded image frames are immediately discarded.
The discontinued encoded video stream is the encoded video stream that provides the highest bitrate among the multiple encoded video streams. As will be described in more detail below, the discontinued encoded video stream may be of different formats depending on the encoding scheme but is generally the encoded video stream for which a bitrate of the final viewable video is the highest, thus discontinuing storing one of the multiple encoded video streams sacrifices the highest bitrate video stream. Generally, the bitrate depends on at least resolution, degree of video compression, and frame rate, thus one of these are typically sacrificed to the benefit of releasing capacity on the memory storage device 208. The multiple parallel encoded video streams may by encoded with different image resolutions and/or frame rates.
In step S112, the control unit 212 controls a discarding of the one of the multiple encoded video streams that was discontinued for storing from the memory storage device 208.
Turning to the flow-chart in FIG. 3 in conjunction with FIG. 6 , if during to time of reduced or lost connectivity over the communication network 114, the control unit 212 detects, or in some way receives information or a message of that the communication across the communication network 114 is restored, in step S114, then the control unit is configured to transmit, in step S116, over the communication network 114, one or more of the multiple parallel encoded video streams 209. Detecting that the communication network is restored may include to determine that the bandwidth of the connection across the communication network 114 exceeds some predetermined threshold indicative of stable connectivity.
Furthermore, the control unit 212 may determine a present bandwidth of the restored communication network 114 by attempting to transmit data. In other words, the control unit 212 may at some interval attempt to transmit the presently highest bitrate video stream to evaluate if the present bandwidth is sufficient for transmission. The interval, determined by an incremental backoff timer, may be for example to attempt transmitting data every 1, 2, 4, 8, 16, 32, 60, 60, 60 . . . seconds. Based on this initial evaluation, the control unit 212 may select and transmit one or more of the still stored encoded video streams that combined does exceed the present bandwidth of the restored communication network 114, so that the one or more of the still stored encoded video streams can be transmitted across the communication network 114.
Now turning to FIG. 4 which includes a first graph 402 of the amount of data from the encoded parallel video streams as a function of time, and a second graph 404 that illustrates the corresponding decrease in the number of stored encoded video streams.
When all the parallel encoded video streams are initially stored, here represented by X number of streams, the amount of stored data increases until it reaches the threshold T. As discussed above, the threshold T may indicate that the memory storage device 208 is close to being full, that the memory storage device 208 has reached its full capacity. As this occurs, at time t1, one of the encoded video streams is discarded from the memory storage device 208, thus the number of video streams is reduced by 1 as indicated in the second graph 404 and the amount of data is reduced to level D.
The remaining video streams are continued for storing until the memory storage device 208 again has reached to or near its full capacity at time t2, whereby a second encoded video stream with a bitrate different from the first encoded video stream discarded at time t1 is discarded and the number of stored video streams is again reduced by one and the amount of stored data drops to level D.
The above is repeated, thus the remaining video streams are continued for storing until the memory storage device 208 again has reached to or near its full capacity at time t3, whereby a third encoded video stream with a bitrate different from the other encoded video streams is discarded at time t3. The number of stored video streams is again reduced by one and the amount of stored data drops to level D. This is repeated until the communication network 114 is restored, or until no more encoded video streams remain on the memory storage device 208.
As indicated in the graph 402, the slopes k1, k2, k3, decrease as the number of encoded video streams decrease. In this embodiment, the multiple parallel encoded video streams are generated with decreasing inter-stream bitrates. Further, it is preferred to discontinue the storing the presently highest bitrate video stream, and to discard the presently highest bitrate video stream. In other words, the first encoded video stream that is discarded was encoded with the highest bitrate, the second encoded video stream that is discarded was encoded with the second highest bitrate, the third encoded video stream that is discarded was encoded with the third highest bitrate, and so on. Thus, relatively higher bitrate video streams are discarded before relatively lower bitrate video streams. With a lower bitrate it takes longer time to generate the same amount of data as with a higher bitrate.
The number of parallel video streams is here in the graphs 402 and 404 exemplified as three. Preferably the number of parallel encoded video streams is at least two, such as 3, 4, 5, 6, 7, 8, 9, or 10 parallel encoded video streams.
In one embodiment, the decrease in bitrate is a scaling by half between the parallel video streams. In this way, when the memory storage device 208 is full, the encoded video stream with highest bitrate will occupy 50% of the memory storage device 208 capacity while all the other video streams together occupy the remaining 50%. The first encoded video stream is discarded, and the remaining encoded video stream can use the freed space on the memory storage 208. With this embodiment, the amount of data D is 50% of the threshold T. To schematically illustrate this embodiment, the encoding may be for six video streams:
-
- Stream 1: With full bitrate.
- Stream 2: With half bitrate.
- Stream 3: With quarter bitrate.
- Stream 4: With ⅛ bitrate.
- Stream 5: With 1/16 bitrate.
- Stream 6: With 1/32 bitrate.
However, six video streams is means as an example to illustrate the present embodiment. Any multiple number of the above, or streams with further scaled bitstreams. Compared to saving only the full bitrate stream, the capacity of the memory storage device needs to have twice the capacity of storing the full bitrate stream. However, with the above scaling, the amount of additional space will never be more that this even for infinity number of streams since the since the total memory can be expressed as a geometric sum, ½+¼+⅛, etc.
The enhancement encoded video streams, often called enhancement layers, include information for increasing the quality of the base encoded video stream. Such information may for example be data to increase resolution or frame rate.
Which enhancement encoded video streams 504, 506, 508 are combined or interleaved with the base encoded video stream 502 depends on the desired resolution of the final encoded video stream. Generally, first image frames of the base encoded video stream 502 are decoded, and then the image frames of the enhancement encoded video stream 504 are decoded and added to the decoded base video stream images. More specifically, a base frame 502 a is decoded and is scaled up in resolution. The scaled up base frame 502 a is used as a reference for one or more enhancement encoded image frames 504 a, 506 a, 508 a. Thus, to take full advantage and provide improved image quality of the scaled up base frame 502 a, the contents of one or more enhancement encoded image frames 504 a, 506 a, 508 a are added to the scaled up base frame 502 a.
The higher video quality is required, more enhancement encoded video streams 504, 506, 508 need to be combined or interleaved with the base encoded video stream 502. Consequently, the bitrate of the resulting video stream increases with the number of enhancement encoded video streams, 504-508, that are combined with the based encoded video stream 502.
If the resolution provided by the second enhancement encoded video stream 508 is desired, then the first enhancement encoded video stream 504, the second enhancement encoded video stream 506, and the third enhancement encoded video stream 508 may all be combined with the base encoded video stream 502. Generally, the enhancement encoded video stream only contain the addition or difference to enhance for example frame rate or resolution and are not viewable in their own without the base encoded video stream 502.
In view of the discussion of FIG. 5 and a further embodiment of the invention, the multiple parallel encoded video streams may comprise a base encoded video stream 502 and a set of enhancement encoded video streams 504, 506, 508 combinable with the base encoded video stream 502 to form a higher quality video stream than the base encoded video stream 502 alone. In this embodiment, discontinuing the storing is to discontinue the storing of one or more of the enhancement encoded video streams 504, 506, 508. Further, it is one or more of the enhancement encoded video streams 504, 506, 508 that is discarded.
The enhancement encoded video stream 508 that together with the base encoded vides stream 502 and any intermediate enhancement encoded video stream 504, 506 would result in the highest combined bitrate is the one that is discarded. Thus, in this example, the enhancement encoded video stream 508 would be discontinued and discarded first when the memory storage device 208 is full. Next time the memory storage device 208 is full, the enhancement encoded video stream 506 is discontinued and discarded. Here the total number of parallel video streams 502, 504, 506, 508 is four. However, further enhancement video streams are envisaged, such as 3 or 4 enhancement encoded video streams.
A computer program 233 comprising instructions which, when the program is executed by the control unit 212, cause the control unit 212 to carry out the method of any one of the methods described herein. The control unit 212 includes processing circuitry 230 that is arranged to perform the steps of the herein disclosed methods.
The control unit receives image data 201 in the form of a stream of images from an image capturing module, 202, e.g., 202 shown in FIG. 1 . Normally, the encoded video stream is transmitted over a communication network via an input/output interface 210 connected to a communication link 112 that provides access to the communication network 114.
When the control unit 212 detects that a bandwidth of a connection over the communication network is insufficient for transmitting a video stream, the control unit 212 initiates generation of multiple parallel encoded video streams, e.g., n parallel encoded video streams, with different bitrates that are stored on the memory storage device 208 that is accessible to the control unit 212.
As more image frames of the video streams are stored on the memory storage device 208, the control unit 212 may detect that the memory storage usage of the memory storage device 208 exceeds a storage threshold. When this occurs, the control unit 212 discontinues of the storing of one of the multiple encoded video streams and continues the storing of the remaining n−1 parallel encoded video streams. Subsequently, the control unit 212 discards the discontinued video stream from the memory storage device 208 which now stores only n−1 video streams.
Once a connection over the communication network is restored, the control unit 212 transmits, using the input/output interface and the communication link 112, one or more of the multiple parallel encoded video streams 209.
The control unit includes a microprocessor, microcontrol unit, programmable digital signal processor or another programmable device. The control unit may also, or instead, include an application specific integrated circuit, a programmable gate array or programmable array logic, a programmable logic device, or a digital signal processor. Where the control unit includes a programmable device such as the microprocessor, microcontrol unit or programmable digital signal processor mentioned above, the processor may further include computer executable code that controls operation of the programmable device.
The control functionality of the present disclosure may be implemented using existing computer processors, or by a special purpose computer processor for an appropriate system, incorporated for this or another purpose, or by a hardwire system. Embodiments within the scope of the present disclosure include program products comprising machine-readable medium for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a machine, the machine properly views the connection as a machine-readable medium. Thus, any such connection is properly termed a machine-readable medium. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions include, for example, instructions and data which cause a general-purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions.
Although the figures may show a sequence the order of the steps may differ from what is depicted. Also, two or more steps may be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on designer choice. All such variations are within the scope of the disclosure. Likewise, software implementations could be accomplished with standard programming techniques with rule-based logic and other logic to accomplish the various connection steps, processing steps, comparison steps and decision steps. Additionally, even though the invention has been described with reference to specific exemplifying embodiments thereof, many different alterations, modifications and the like will become apparent for those skilled in the art.
In addition, variations to the disclosed embodiments can be understood and effected by the skilled addressee in practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims. Furthermore, in the claims, the word “comprising” does not exclude other elements or steps, and the indefinite article “a” or “an” does not exclude a plurality.
Claims (9)
1. A method of failover recording of video streams in a camera connectable to a receiver device over a communication network, the method comprising:
detecting that a connection to the communication network is lost or reduced so that present capacity of a bandwidth of the connection over the communication network is less than a bitrate of a presently produced encoded video stream,
in response to the lost or reduced connection, generating multiple parallel encoded video streams with decreasing bitrates being a scaling of the bitrates,
storing the multiple parallel encoded video streams on a memory storage device accessible to the camera,
detecting that the amount of data stored on the memory storage device exceeds a storage threshold,
when the amount of data exceeds the storage threshold, discontinuing the storing of one of the multiple encoded video streams being the encoded video stream that provides the highest bitrate among the multiple encoded video streams, and
discarding the one of the multiple encoded video streams from the memory storage device; the method further comprising:
detecting that the communication network is restored, and
transmitting, over the communication network, one or more of the stored multiple parallel encoded video streams.
2. The method according to claim 1 , comprising:
determining a present bandwidth of the restored communication network, and
transmitting one or more of the still stored bitrate video streams that combined does not exceed the present bandwidth of the restored communication network.
3. The method according to claim 1 , wherein the decrease in bitrate is a scaling by half between the parallel video streams.
4. The method according to claim 1 , wherein discontinuing the storing is to discontinue the storing the presently highest bitrate video stream, and wherein the presently highest bitrate video stream is discarded.
5. The method according to claim 1 , wherein the multiple parallel encoded video streams are encoded with different image resolutions and/or frame rates.
6. The method according to claim 1 , wherein the storage threshold is that the memory storage device is full.
7. The method according to claim 1 , wherein the number of parallel video streams is at least two.
8. A camera comprising a memory storage for storing encoded video streams, an input/output interface to communicate with a receiver device over a communication network, and a control unit, for implementing a method for failover recording of video streams in the camera, the method comprising:
detecting that a connection to the communication network is lost or reduced so that present capacity of a bandwidth of the connection over the communication network is less than a bitrate of a presently produced encoded video stream,
in response to the lost or reduced connection, generating multiple parallel encoded video streams with decreasing bitrates being a scaling of the bitrates,
storing the multiple parallel encoded video streams in the memory storage,
detecting that the amount of data stored on the memory storage exceeds a storage threshold,
when the amount of data exceeds the memory storage threshold, discontinuing the storing of one of the multiple encoded video streams being the encoded video stream that provides the highest bitrate among the multiple encoded video streams, and
discarding the one of the multiple encoded video streams from the memory storage; the method further comprising:
detecting that the communication network is restored, and
transmitting, over the communication network, one or more of the stored multiple parallel encoded video streams.
9. A non-transitory computer readable recording medium comprising a computer program product comprising program code for performing, when executed by a control unit, method for failover recording of video streams in a camera connectable to a receiver device over a communication network, the method comprising:
detecting that a connection to the communication network is lost or reduced so that present capacity of a bandwidth of the connection over the communication network is less than a bitrate of a presently produced encoded video stream, in response to the lost or reduced connection, generating multiple parallel encoded video streams with decreasing bitrates being a scaling of the bitrates,
storing the multiple parallel encoded video streams on a memory storage device accessible to the camera,
detecting that the amount of data stored on the memory storage device exceeds a storage threshold,
when the amount of data exceeds the storage threshold, discontinuing the storing of one of the multiple encoded video streams being the encoded video stream that provides the highest bitrate among the multiple encoded video streams, and
discarding the one of the multiple encoded video streams from the memory storage device; the method further comprising:
detecting that the communication network is restored, and
transmitting, over the communication network, one or more of the stored multiple parallel encoded video streams.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP22212005 | 2022-12-07 | ||
| EP22212005.7 | 2022-12-07 | ||
| EP22212005.7A EP4383729B1 (en) | 2022-12-07 | 2022-12-07 | Video failover recording |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20240196035A1 US20240196035A1 (en) | 2024-06-13 |
| US12342022B2 true US12342022B2 (en) | 2025-06-24 |
Family
ID=84439892
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/530,479 Active 2044-01-30 US12342022B2 (en) | 2022-12-07 | 2023-12-06 | Video failover recording |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US12342022B2 (en) |
| EP (1) | EP4383729B1 (en) |
| KR (1) | KR20240085151A (en) |
| CN (1) | CN118158429A (en) |
Citations (49)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020067768A1 (en) | 2000-10-10 | 2002-06-06 | Hurst Robert N. | Rate control for bitstream re-encoding |
| US20040031054A1 (en) * | 2001-01-04 | 2004-02-12 | Harald Dankworth | Methods in transmission and searching of video information |
| US6711126B1 (en) * | 1999-11-12 | 2004-03-23 | Alcatel | Congestion control of AAL2 connections |
| US20040117427A1 (en) * | 2001-03-16 | 2004-06-17 | Anystream, Inc. | System and method for distributing streaming media |
| US20070123280A1 (en) * | 2005-07-13 | 2007-05-31 | Mcgary Faith | System and method for providing mobile device services using SMS communications |
| US20070273762A1 (en) | 2004-03-11 | 2007-11-29 | Johannes Steensma | Transmitter and Receiver for a Surveillance System |
| US20080186988A1 (en) * | 2007-02-07 | 2008-08-07 | Agere Systems Inc. | Crc checking and mac-hs processing in an hsdpa-compatible receiver in a 3g wireless network |
| US20100149308A1 (en) * | 2008-12-15 | 2010-06-17 | Oki Electric Industry Co., Ltd. | Data processing apparatus and method, and network system |
| US20100211843A1 (en) * | 2005-08-05 | 2010-08-19 | Sony Corporation | Systems and methods for transmitting data over lossy networks |
| US20110022705A1 (en) * | 2009-07-21 | 2011-01-27 | Vivu, Inc | Method and apparatus for subscription-based bandwidth balancing for interactive heterogeneous clients |
| US20110050913A1 (en) | 2009-08-28 | 2011-03-03 | Samsung Electronics Co., Ltd. | Method of controlling digital photographing apparatus having memory, recording medium for recording the method, and digital photographing apparatus |
| US20120179742A1 (en) * | 2011-01-11 | 2012-07-12 | Videonetics Technology Private Limited | Integrated intelligent server based system and method/systems adapted to facilitate fail-safe integration and/or optimized utilization of various sensory inputs |
| US20120198506A1 (en) * | 2011-02-01 | 2012-08-02 | Verizon Patent And Licensing Inc. | Multicast adaptive stream switching for delivery of over the top video content |
| US20120250762A1 (en) * | 2010-07-15 | 2012-10-04 | Hagen Kaye | System and method for implementation of dynamic encoding rates for mobile devices |
| US20130097309A1 (en) | 2010-05-04 | 2013-04-18 | Azuki Systems, Inc. | Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction |
| US20130219073A1 (en) * | 2012-02-20 | 2013-08-22 | Vixs Systems, Inc. | Adaptive display streams |
| US20130336627A1 (en) | 2012-06-18 | 2013-12-19 | Micropower Technologies, Inc. | Synchronizing the storing of streaming video |
| US9307217B1 (en) | 2013-06-12 | 2016-04-05 | Ambarella, Inc. | Portable video camera/recorder having video security feature |
| US20170078890A1 (en) * | 2015-09-11 | 2017-03-16 | Intel IP Corporation | Systems and methods for cross-layer bearer splitting and cross-radio access technology retransmission |
| US20170111295A1 (en) * | 2014-08-13 | 2017-04-20 | Metamako Technology Lp | Apparatus and method for low latency switching |
| US20170171264A1 (en) * | 2015-12-09 | 2017-06-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Recording of abr content |
| US20170195385A1 (en) * | 2015-12-31 | 2017-07-06 | Le Holdings (Beijing) Co., Ltd. | Method and electronic device for playing video |
| US20180007362A1 (en) | 2016-06-30 | 2018-01-04 | Sony Interactive Entertainment Inc. | Encoding/decoding digital frames by down-sampling/up-sampling with enhancement information |
| US20180070134A1 (en) | 2011-05-04 | 2018-03-08 | Verint Americas Inc. | Systems and methods for managing video transmission and storage |
| US20180091217A1 (en) * | 2015-03-02 | 2018-03-29 | Uavia | System for transmitting commands and a video stream between a remote controlled machine such as a drone and a ground station |
| US10003830B1 (en) * | 2011-05-20 | 2018-06-19 | Arris Enterprises Llc | Controller to manage streaming video of playback devices |
| US20180184142A1 (en) | 2016-12-28 | 2018-06-28 | Google Inc. | Scheme for zero-copy adaptive bitrate video streaming |
| US20180276961A1 (en) | 2017-03-23 | 2018-09-27 | Ring Inc. | Streaming and Storing Audio/Video Content Captured by Audio/Video Recording and Communication Devices |
| US10271079B1 (en) * | 2015-10-20 | 2019-04-23 | Halogen Networks, LLC | Live video streaming system and method |
| US20190141292A1 (en) * | 2017-11-06 | 2019-05-09 | Blue Jeans Network, Inc. | System and methods for aggregated meeting joining for video conferences with built in resilience to allow for a common meeting experience |
| US10349059B1 (en) * | 2018-07-17 | 2019-07-09 | Wowza Media Systems, LLC | Adjusting encoding frame size based on available network bandwidth |
| US20190261007A1 (en) | 2018-02-20 | 2019-08-22 | Netgear, Inc. | Adaptive encoding in security camera applications |
| US20190268797A1 (en) * | 2016-11-11 | 2019-08-29 | Huawei Technologies Co., Ltd. | Data transmission method and apparatus |
| US20200033923A1 (en) * | 2015-07-27 | 2020-01-30 | R. Kent Koeninger | Smart internet and power connector |
| US20200053142A1 (en) * | 2010-09-30 | 2020-02-13 | Comcast Cable Communications, Llc | Delivering Content in Multiple Formats |
| US20200186575A1 (en) * | 2017-08-23 | 2020-06-11 | Falmouth University | Collaborative session over a network |
| US10687028B2 (en) * | 2008-01-24 | 2020-06-16 | Axis Ab | Video delivery systems using wireless cameras |
| US10728299B2 (en) * | 2013-03-14 | 2020-07-28 | Comcast Cable Communications, Llc | Delivery of content |
| US10728438B1 (en) | 2018-05-31 | 2020-07-28 | Amazon Technologies, Inc. | Distributed video and network camera management |
| EP3742739A1 (en) | 2019-05-22 | 2020-11-25 | Axis AB | Method and devices for encoding and streaming a video sequence over a plurality of network connections |
| US20200404389A1 (en) * | 2019-06-21 | 2020-12-24 | Nokia Solutions And Networks Oy | Method and apparatus for transmitting video streams in wifi mesh networks |
| US10958947B1 (en) * | 2020-03-12 | 2021-03-23 | Amazon Technologies, Inc. | Content delivery of live streams with playback-conditions-adaptive encoding |
| US20220191572A1 (en) * | 2019-09-03 | 2022-06-16 | GeoPost, Inc. | Gateway device |
| US20220345762A1 (en) | 2017-09-18 | 2022-10-27 | Intel IP Corporation | Apparatus, system and method of video encoding |
| US11501791B1 (en) * | 2021-11-22 | 2022-11-15 | Hopin Ltd | Loopback audio channels for echo cancellation in web browsers |
| US20230155951A1 (en) * | 2021-11-16 | 2023-05-18 | Crius Technology Group, LLC | Methods, systems, and apparatus for network communications and operation |
| US20240179357A1 (en) * | 2022-02-04 | 2024-05-30 | Livearena Technologies Ab | System and method for producing a video stream |
| US20240177740A1 (en) * | 2021-10-15 | 2024-05-30 | Livearena Technologies Ab | System and method for producing a video stream |
| US20250054518A1 (en) * | 2022-08-02 | 2025-02-13 | Livearena Technologies Ab | System and method for producing a video stream |
-
2022
- 2022-12-07 EP EP22212005.7A patent/EP4383729B1/en active Active
-
2023
- 2023-10-12 KR KR1020230135766A patent/KR20240085151A/en active Pending
- 2023-11-30 CN CN202311622148.4A patent/CN118158429A/en active Pending
- 2023-12-06 US US18/530,479 patent/US12342022B2/en active Active
Patent Citations (49)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6711126B1 (en) * | 1999-11-12 | 2004-03-23 | Alcatel | Congestion control of AAL2 connections |
| US20020067768A1 (en) | 2000-10-10 | 2002-06-06 | Hurst Robert N. | Rate control for bitstream re-encoding |
| US20040031054A1 (en) * | 2001-01-04 | 2004-02-12 | Harald Dankworth | Methods in transmission and searching of video information |
| US20040117427A1 (en) * | 2001-03-16 | 2004-06-17 | Anystream, Inc. | System and method for distributing streaming media |
| US20070273762A1 (en) | 2004-03-11 | 2007-11-29 | Johannes Steensma | Transmitter and Receiver for a Surveillance System |
| US20070123280A1 (en) * | 2005-07-13 | 2007-05-31 | Mcgary Faith | System and method for providing mobile device services using SMS communications |
| US20100211843A1 (en) * | 2005-08-05 | 2010-08-19 | Sony Corporation | Systems and methods for transmitting data over lossy networks |
| US20080186988A1 (en) * | 2007-02-07 | 2008-08-07 | Agere Systems Inc. | Crc checking and mac-hs processing in an hsdpa-compatible receiver in a 3g wireless network |
| US10687028B2 (en) * | 2008-01-24 | 2020-06-16 | Axis Ab | Video delivery systems using wireless cameras |
| US20100149308A1 (en) * | 2008-12-15 | 2010-06-17 | Oki Electric Industry Co., Ltd. | Data processing apparatus and method, and network system |
| US20110022705A1 (en) * | 2009-07-21 | 2011-01-27 | Vivu, Inc | Method and apparatus for subscription-based bandwidth balancing for interactive heterogeneous clients |
| US20110050913A1 (en) | 2009-08-28 | 2011-03-03 | Samsung Electronics Co., Ltd. | Method of controlling digital photographing apparatus having memory, recording medium for recording the method, and digital photographing apparatus |
| US20130097309A1 (en) | 2010-05-04 | 2013-04-18 | Azuki Systems, Inc. | Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction |
| US20120250762A1 (en) * | 2010-07-15 | 2012-10-04 | Hagen Kaye | System and method for implementation of dynamic encoding rates for mobile devices |
| US20200053142A1 (en) * | 2010-09-30 | 2020-02-13 | Comcast Cable Communications, Llc | Delivering Content in Multiple Formats |
| US20120179742A1 (en) * | 2011-01-11 | 2012-07-12 | Videonetics Technology Private Limited | Integrated intelligent server based system and method/systems adapted to facilitate fail-safe integration and/or optimized utilization of various sensory inputs |
| US20120198506A1 (en) * | 2011-02-01 | 2012-08-02 | Verizon Patent And Licensing Inc. | Multicast adaptive stream switching for delivery of over the top video content |
| US20180070134A1 (en) | 2011-05-04 | 2018-03-08 | Verint Americas Inc. | Systems and methods for managing video transmission and storage |
| US10003830B1 (en) * | 2011-05-20 | 2018-06-19 | Arris Enterprises Llc | Controller to manage streaming video of playback devices |
| US20130219073A1 (en) * | 2012-02-20 | 2013-08-22 | Vixs Systems, Inc. | Adaptive display streams |
| US20130336627A1 (en) | 2012-06-18 | 2013-12-19 | Micropower Technologies, Inc. | Synchronizing the storing of streaming video |
| US10728299B2 (en) * | 2013-03-14 | 2020-07-28 | Comcast Cable Communications, Llc | Delivery of content |
| US9307217B1 (en) | 2013-06-12 | 2016-04-05 | Ambarella, Inc. | Portable video camera/recorder having video security feature |
| US20170111295A1 (en) * | 2014-08-13 | 2017-04-20 | Metamako Technology Lp | Apparatus and method for low latency switching |
| US20180091217A1 (en) * | 2015-03-02 | 2018-03-29 | Uavia | System for transmitting commands and a video stream between a remote controlled machine such as a drone and a ground station |
| US20200033923A1 (en) * | 2015-07-27 | 2020-01-30 | R. Kent Koeninger | Smart internet and power connector |
| US20170078890A1 (en) * | 2015-09-11 | 2017-03-16 | Intel IP Corporation | Systems and methods for cross-layer bearer splitting and cross-radio access technology retransmission |
| US10271079B1 (en) * | 2015-10-20 | 2019-04-23 | Halogen Networks, LLC | Live video streaming system and method |
| US20170171264A1 (en) * | 2015-12-09 | 2017-06-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Recording of abr content |
| US20170195385A1 (en) * | 2015-12-31 | 2017-07-06 | Le Holdings (Beijing) Co., Ltd. | Method and electronic device for playing video |
| US20180007362A1 (en) | 2016-06-30 | 2018-01-04 | Sony Interactive Entertainment Inc. | Encoding/decoding digital frames by down-sampling/up-sampling with enhancement information |
| US20190268797A1 (en) * | 2016-11-11 | 2019-08-29 | Huawei Technologies Co., Ltd. | Data transmission method and apparatus |
| US20180184142A1 (en) | 2016-12-28 | 2018-06-28 | Google Inc. | Scheme for zero-copy adaptive bitrate video streaming |
| US20180276961A1 (en) | 2017-03-23 | 2018-09-27 | Ring Inc. | Streaming and Storing Audio/Video Content Captured by Audio/Video Recording and Communication Devices |
| US20200186575A1 (en) * | 2017-08-23 | 2020-06-11 | Falmouth University | Collaborative session over a network |
| US20220345762A1 (en) | 2017-09-18 | 2022-10-27 | Intel IP Corporation | Apparatus, system and method of video encoding |
| US20190141292A1 (en) * | 2017-11-06 | 2019-05-09 | Blue Jeans Network, Inc. | System and methods for aggregated meeting joining for video conferences with built in resilience to allow for a common meeting experience |
| US20190261007A1 (en) | 2018-02-20 | 2019-08-22 | Netgear, Inc. | Adaptive encoding in security camera applications |
| US10728438B1 (en) | 2018-05-31 | 2020-07-28 | Amazon Technologies, Inc. | Distributed video and network camera management |
| US10349059B1 (en) * | 2018-07-17 | 2019-07-09 | Wowza Media Systems, LLC | Adjusting encoding frame size based on available network bandwidth |
| EP3742739A1 (en) | 2019-05-22 | 2020-11-25 | Axis AB | Method and devices for encoding and streaming a video sequence over a plurality of network connections |
| US20200404389A1 (en) * | 2019-06-21 | 2020-12-24 | Nokia Solutions And Networks Oy | Method and apparatus for transmitting video streams in wifi mesh networks |
| US20220191572A1 (en) * | 2019-09-03 | 2022-06-16 | GeoPost, Inc. | Gateway device |
| US10958947B1 (en) * | 2020-03-12 | 2021-03-23 | Amazon Technologies, Inc. | Content delivery of live streams with playback-conditions-adaptive encoding |
| US20240177740A1 (en) * | 2021-10-15 | 2024-05-30 | Livearena Technologies Ab | System and method for producing a video stream |
| US20230155951A1 (en) * | 2021-11-16 | 2023-05-18 | Crius Technology Group, LLC | Methods, systems, and apparatus for network communications and operation |
| US11501791B1 (en) * | 2021-11-22 | 2022-11-15 | Hopin Ltd | Loopback audio channels for echo cancellation in web browsers |
| US20240179357A1 (en) * | 2022-02-04 | 2024-05-30 | Livearena Technologies Ab | System and method for producing a video stream |
| US20250054518A1 (en) * | 2022-08-02 | 2025-02-13 | Livearena Technologies Ab | System and method for producing a video stream |
Non-Patent Citations (2)
| Title |
|---|
| Communication pursuant to Article 94(3) EPC dated Oct. 2, 2024 for European Patent Application No. 22 212 1 005.7. |
| European Search Report issued on May 25, 2023 for European Patent Application No. 22212005.7. |
Also Published As
| Publication number | Publication date |
|---|---|
| CN118158429A (en) | 2024-06-07 |
| EP4383729C0 (en) | 2025-11-05 |
| KR20240085151A (en) | 2024-06-14 |
| US20240196035A1 (en) | 2024-06-13 |
| EP4383729A1 (en) | 2024-06-12 |
| EP4383729B1 (en) | 2025-11-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9813732B2 (en) | System and method for encoding video content using virtual intra-frames | |
| US10277901B2 (en) | Encoding a video stream having a privacy mask | |
| CN105991976A (en) | Method and system for generating event video sequence, and camera comprising the system | |
| JP7346518B2 (en) | Image processing devices, cameras, and methods for encoding sequences of video images | |
| US11295589B2 (en) | Image processing device and method for simultaneously transmitting a plurality of pieces of image data obtained from a plurality of camera modules | |
| US9948903B2 (en) | Method for configuration of video stream output from a digital video camera | |
| WO2011024361A1 (en) | Network camera and video distribution system | |
| CN113556462B (en) | Method and system for controlling pan tilt zoom camera and storage medium | |
| US20150109436A1 (en) | Smart Dual-View High-Definition Video Surveillance System | |
| US12342022B2 (en) | Video failover recording | |
| US20190306462A1 (en) | Image processing apparatus, videoconference system, image processing method, and recording medium | |
| US20030190154A1 (en) | Method and apparatus for data compression of multi-channel moving pictures | |
| US9883195B2 (en) | Image processing system and method for decoding during non-rendering period | |
| US10848769B2 (en) | Method and system for encoding video streams | |
| CN115695921B (en) | Code stream control method, network camera, electronic device and storage medium | |
| KR102546764B1 (en) | Apparatus and method for image processing | |
| KR20150095080A (en) | Apparatus and Method for Transmitting Video Data | |
| US20250024054A1 (en) | Video data processing technology for reducing transmission bandwidth | |
| US20250133226A1 (en) | Video stream encoding both overview and region-of-interest(s) of a scene | |
| EP3989587A1 (en) | Image processing device and method of pre-processing images of a video stream before encoding |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| AS | Assignment |
Owner name: AXIS AB, SWEDEN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:EDPALM, VIKTOR;CREMON, JONAS;REEL/FRAME:071200/0535 Effective date: 20231003 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |