Video encoding for reduced streaming latency
First Claim
1. A non-transitory computer-readable medium comprising instructions for streaming a video, the instructions executable by a processor and comprising instructions for:
- receiving, from a client device, a request to stream the video for playback by the client device;
accessing a video frame from video frames included in the video, the video frame being a last frame in a group of pictures included in the video, the group of pictures comprising an intra-coded video frame and one or more inter-coded video frames;
segmenting the video frame into a plurality of frame segments;
identifying a frame boundary segment immediately preceding a frame segment in another group of pictures included in the video;
generating segment headers indicating a sequence order of the frame segments, the segment headers comprising a frame marking header, the frame marking header indicating a boundary of the video frame relative to other video frames in the video and including a flag identifying the frame boundary segment;
generating communication packets each having a payload comprising one of the segment headers and a corresponding one of the frame segments, the communication packets comprising a communication packet with a payload comprising the frame boundary segment and the frame marking header; and
transmitting the communication packets to the client device for playback of the video frame, the client device rendering the video frame using the frame marking header.
3 Assignments
0 Petitions
Accused Products
Abstract
A client device requests a streaming video from a storage device, which encodes the video'"'"'s frame in communication packets according to an encoding protocol for transmission to the client. The client device decodes the communication packets to obtain frame segments and a frame marking header indicating a boundary of the video frame relative to other video frames in the video. The communication packets may also include other segment headers indicating a relative ordering of corresponding frame segments. The client device determines, based on the frame marking header, whether a sufficient number of communication packets have been received to render a video frame. In response to determining that the sufficient number of communication packets has been received, the client device assembles the video frame from the frame segments corresponding to the video frame and presents at least a portion of the video by rendering the assembled video frame.
-
Citations
8 Claims
-
1. A non-transitory computer-readable medium comprising instructions for streaming a video, the instructions executable by a processor and comprising instructions for:
-
receiving, from a client device, a request to stream the video for playback by the client device; accessing a video frame from video frames included in the video, the video frame being a last frame in a group of pictures included in the video, the group of pictures comprising an intra-coded video frame and one or more inter-coded video frames; segmenting the video frame into a plurality of frame segments; identifying a frame boundary segment immediately preceding a frame segment in another group of pictures included in the video; generating segment headers indicating a sequence order of the frame segments, the segment headers comprising a frame marking header, the frame marking header indicating a boundary of the video frame relative to other video frames in the video and including a flag identifying the frame boundary segment; generating communication packets each having a payload comprising one of the segment headers and a corresponding one of the frame segments, the communication packets comprising a communication packet with a payload comprising the frame boundary segment and the frame marking header; and transmitting the communication packets to the client device for playback of the video frame, the client device rendering the video frame using the frame marking header.
-
-
2. The computer-readable medium of 1, wherein generating the segment headers comprises:
-
determining a total number of frame segments included in the frame segments; and generating the frame marking header specifying the total number of frame segments.
-
-
3. The computer-readable medium of 1,
wherein generating the segment headers comprises: identifying the frame boundary segment at an end of the sequence order of the frame segments.
-
4. The computer-readable medium of 1, wherein the instructions further comprise instructions for:
-
generating a subsequent set of communication packets comprising frame segments of a next video frame immediately following the video frame; and transmitting the subsequent set of communication packets corresponding to the next video frame after transmitting all the communication packets corresponding to the video frame.
-
-
5. A camera comprising:
-
an image sensor; a processor; and a non-transitory computer-readable medium comprising instructions for transferring a video captured by the image sensor, the instructions executable by a processor and comprising instructions for; receiving, from a client device, a request to stream the video for playback by the client device; accessing a video frame from video frames included in the video, the video frame being a last frame in a group of pictures included in the video, the group of pictures comprising an intra-coded video frame and one or more inter-coded video frames; segmenting the video frame into a plurality of frame segments; identifying a frame boundary segment immediately preceding a frame segment in another group of pictures included in the video; generating segment headers each indicating a sequence order of the frame segments, the segment headers comprising a frame marking header, the frame marking header indicating a boundary of the video frame relative to other video frames in the video and including a flag identifying the frame boundary segment; generating communication packets each having a payload comprising one of the segment headers and a corresponding one of the frame segments, the communication packets comprising a communication packet with a payload comprising the frame boundary segment and the frame marking header; and transmitting the communication packets to the client device for playback of the video frame, the client device rendering the video frame using the frame marking header. - View Dependent Claims (6, 7, 8)
-
Specification