System and method for optimized encoding and transmission of a plurality of substantially similar video fragments
A system and method for stitching separately encoded MPEG video fragments, each representing a different rectangular area of the screen together into one single full-screen MPEG encoded video fragment.
1. A method comprising:
receiving a plurality of encoded video segments, wherein the plurality of encoded video segments are encoded using a common group of pictures (GOP) pattern and associated with one or more rectangular regions of a frame of a video, and wherein the one or more rectangular regions do not overlap;
removing header information from all but one video segment:
stitching the plurality of encoded video segments with all but one video segment's header information removed to generate an encoded version of the frame of the video; and
decoding the encoded frame for output on a display.
2. The method of claim 1 , further comprising adding data to the encoded frame to ensure the video has a constant bitrate.
3. The method of claim 2 , wherein the adding data to the encoded frame comprises:
determining a target video buffer verification buffer size for the video; and
adding, based on the target video buffer verification buffer size, a number of zero or more zero-bytes to the encoded frame of the video.
4. The method of claim 1 , wherein the video has a variable bit rate, and wherein the method further comprises determining, based on a maximum bit rate of the received video segments, a bit rate of the video.
5. The method of claim 1 , further comprising determining, for the encoded frame, at least one of a vertical size value, a bit rate value, or a video buffer verification buffer size value.
6. The method of claim 1 , wherein the video comprises an advertisement.
7. An apparatus comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors, cause the apparatus to:
receive a plurality of encoded video segments, wherein the plurality of encoded video segments are encoded using a common group of pictures (GOP) pattern and associated with one or more rectangular regions of a frame of a video, and wherein the one or more rectangular regions do not overlap;
remove header information from all but one video segment
stitch the plurality of encoded video segments with all but one video segment's header information removed to generate an encoded version of the frame of the video; and
decode the encoded frame for output on a display.
8. The apparatus of claim 7 , wherein the instructions, when executed by the one or more processors, further cause the apparatus to add data to the encoded frame to ensure the video has a constant bitrate.
9. The apparatus of claim 8 , wherein the instructions that cause the apparatus to add data to the encoded frame cause the apparatus to:
determine a target video buffer verification buffer size for the video; and
add, based on the target video buffer verification buffer size, a number of zero or more zero-bytes to the encoded frame of the video.
10. The apparatus of claim 7 , wherein the video has a variable bit rate, and wherein the instructions, when executed by the one or more processors, further cause the apparatus to determine, based on a maximum bit rate of the received video segments, a bit rate of the video.
11. The apparatus of claim 7 , wherein the instructions, when executed by the one or more processors, further cause the apparatus to determine, for the encoded frame, at least one of a vertical size value, a bit rate value, or a video buffer verification buffer size value.
12. The apparatus of claim 7 , wherein the video comprises an advertisement.
13. A system comprising:
an encoder configured to send a plurality of encoded video segments, wherein the plurality of encoded video segments are encoded using a common group of pictures (GOP) pattern and associated with one or more rectangular regions of a frame of a video, and wherein the one or more rectangular regions do not overlap; and
a decoder configured to:
receive a plurality of encoded video segments;
remove header information from all but one video segment
stitch the plurality of encoded video segments with all but one video segment's header information removed to generate an encoded version of the frame of the video; and
decode the encoded frame for output on a display.
14. The system of claim 13 , wherein the decoder is further configured to add data to the encoded frame to ensure the video has a constant bitrate.
15. The system of claim 14 , wherein the decoder is further configured to:
determine a target video buffer verification buffer size for the video; and
add, based on the target video buffer verification buffer size, a number of zero or more zero-bytes to the encoded frame of the video.
16. The system of claim 13 , wherein the video has a variable bit rate, and wherein the decoder is further configured to determine, based on a maximum bit rate of the received video segments, a bit rate of the video.
17. The system of claim 13 , wherein the decoder is further configured to determine, for the encoded frame, at least one of a vertical size value, a bit rate value, or a video buffer verification buffer size value.