Patent classifications
H04N21/2405
Encoder tuning to improve tradeoffs between latency and video quality in cloud gaming applications
A method for cloud gaming. The method including generating a plurality of video frames when executing a video game at a cloud gaming server. The method including encoding the plurality of video frames at an encoder bit rate, wherein the plurality of video frames that is compressed is transmitted to a client from a streamer of the cloud gaming server. The method including measuring a maximum receive bandwidth of a client. The method including monitoring the encoding of the plurality of video frames at the streamer. The method including dynamically tuning a parameter of the encoder based on the monitoring of the encoding.
SYSTEMS AND METHODS FOR TRANSMISSION OF DATA STREAMS
Systems and methods for real-time transmission of data streams are disclosed. A controller receives data representing selected stream parameters from a browser residing on a computing device. The controller transmits the received data to a video transmitting device. A transcoder receives a first data stream generated according to the selected stream parameters from the video transmitting device. The transcoder generates a second data stream from the first data stream, the second data stream formatted for browser display; and then transmits the second data stream to the browser. A user may remotely control the video transmitting device using the browser. A user may view data streams from multiple video transmitting devices using the browser.
DISTRIBUTED MULTI-DATACENTER VIDEO PACKAGING SYSTEM
A content streaming system and methodology for facilitating the management of content streaming. A video packaging and origination service requests streaming content that is organized according to content segments. Individual content segments will be encoded according to a plurality of encoding profiles and generated by different encoders. The video packaging and origination service utilizes synchronization information provided to the encoders to select individual encoded content segments responsive to the request for streaming content.
Dynamic Allocation of Compute Capacity in Video Stream Processing
Approaches for dynamically allocating compute capacity for processing a video stream. Video complexity information for two or more digital video streams actively being processed by one or more video encoders is determined at periodic intervals. Video complexity information describes the complexity of digital video carried by the digital video streams across a bounded number of consecutive digital frames which includes digital frames not yet processed by the one or more video encoders. A determination is made as to whether the compute capacity allocated for processing a particular digital video stream should be adjusted in some manner based on the determined video complexity information. The amount of compute capacity allocated for processing the particular digital video stream may be dynamically adjusted in response to maximizing a measure of optimal video quality calculated for the two or more digital video streams using, at least in part, the determined video complexity information.
DYNAMIC DESIGNATED FORWARDER ELECTION PER MULTICAST STREAM FOR EVPN ALL-ACTIVE HOMING
A method is performed by a first provider edge (PE) of a redundancy group including provider edges configured with an Ethernet virtual private network (EVPN) segment identifier (EVI) and an Ethernet segment identifier (ESI) and that are multi-homed to a customer edge (CE). The method includes, upon receiving from the CE a join request including a group address for a multicast stream, electing a designated forwarder (DF) for the multicast stream. The electing includes: computing for each PE a respective affinity for the DF as a function of a respective address of the PE, the EVI, and the group address; and determining which PE has a largest affinity. The method further includes, if the first PE has the largest affinity or does not have the largest affinity, configuring the first PE as the designated forwarder or not configuring the first PE as the designated forwarder for the multicast stream, respectively.
Video frame-based media stream bandwidth reduction
A video system includes one or more media sources and a media server configured to communicate with a video viewing device through a network. The media server includes memory and a processor configured to perform a plurality of operations. The operations include receiving a video stream from the one or more media sources, where the video stream includes one or more sequences of a key frame followed by one or more secondary frames. The operations also include determining whether throttling is enabled for the video stream, dropping the one or more secondary frames with transmission of the key frame to the video viewing device based on determining that throttling is enabled, and transmitting the key frame and the one or more secondary frames to the video viewing device based on determining that throttling is disabled.
Video image-based media stream bandwidth reduction
A video system includes one or more media sources and a media server configured to communicate with a video viewing device through a network. The media server includes memory and a processor configured to perform operations. The operations include receiving a video stream from the one or more media sources, where the video stream includes a plurality of image frames. The operations also include determining whether throttling is enabled for the video stream. Based on determining that throttling is enabled, one or more of the image frames of the video stream are dropped until a predetermined condition is met and one of the image frames from the media server is transmitted through the network to the video viewing device after the predetermined condition is met. Based on determining that throttling is disabled, the image frames are transmitted from the media server through the network to the video viewing device.
RECORDED CONTENT STORAGE AND DELIVERY MANAGEMENT
Systems and methods for managing the storage and delivery of recorded content in a network digital video recorder (DVR) system are disclosed. A plurality of requests to record a program may be received, wherein the program may comprise a plurality of segments. A segment from the plurality of segments may be determined to be copied to a first storage. A copy of the segment may be received from a second storage and a plurality of copies of the segment may be created in the first storage from the copy of the segment received from the second storage. The quantity of the plurality of copies of the segment may be equal to the quantity of the plurality of requests to record the program.
SYSTEMS AND METHODS FOR PRODUCTION OF FRAGMENTED VIDEO CONTENT
A system for producing fragmented video content is provided. The system includes a processing device, a non-transitory data store, and a memory storage device having at least a Manifest Processing Service (MPS) unit stored therein. The MPS unit is configured to generate at least one master manifest and store the master manifest in the non-transitory data store, the master manifest comprising a timing reference for a video fragment of the fragmented video content, wherein the timing reference indicates a temporal boundary of processing for the video fragment.
Dynamic allocation of CPU cycles in video stream processing
Approaches for dynamically allocating CPU cycles for use in processing a video stream. Video complexity information for two or more digital video streams actively being processed by one or more video encoders is determined at periodic intervals. Video complexity information describes the complexity of digital video carried by the digital video streams across a bounded number of consecutive digital frames which includes digital frames not yet processed by the one or more video encoders. A determination is made as to whether a number of CPU cycles allocated for processing a particular digital video stream should be adjusted based on the determined video complexity information. The number of CPU cycles allocated for processing the particular digital video stream may be dynamically adjusted by maximizing a measure of optimal video quality calculated for the two or more digital video streams using, at least in part, the determined video complexity information.