# US 10,873,781 B2 · Video fragment file processing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,873,781 B2
- Document ID: US10873781B2
- Status: Granted
- Kind: B2
- Application number: 15/621,192
- Filed: 2017-06-13
- Published: 2018-12-13
- Granted: 2020-12-22
- Earliest claimed: 2017-06-13
- Assignees: Comcast Cable Communications, LLC
- Applicants: Comcast Cable Communications, LLC
- Inventors: Kevin L. Pikus; Ryan McMurray; Yasser F. Syed
- Web page: https://patentgrep.com/patent/US10873781B2

## CPC

- H04N 21/4402: involving reformatting operations of video signals for household redistribution, storage or real-time display {(details of conversion of video standards at pixel level H04N7/01; video transcoding H04N19/40; adapting incoming signals to the display format of the display terminal G09G5/005; media handling at the source in data packet switching networks H04L65/764)}
- H04N 21/2312: Data placement on disk arrays {(data placement in general G06F3/0604)}
- H04N 21/23418: {involving operations for analysing video streams, e.g. detecting features or characteristics (television picture signal circuitry for scene change detection H04N5/147; filtering for image enhancement G06T5/00; methods or arrangements for recognising scenes G06V20/00; arrangements characterised by components specially adapted for monitoring, identification or recognition of video in broadcast systems H04H60/59)}
- H04N 21/2343: involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements {(video transcoding H04N19/40; media packet handling at the source H04L65/762)}
- H04N 21/234309: {by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo (conversion of standards in analog television systems H04N7/01)}
- H04N 21/234363: {by altering the spatial resolution, e.g. for clients with a lower screen resolution}
- H04N 21/234381: {by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping}
- H04N 21/23439: {for generating different versions}
- H04N 21/2402: {Monitoring of the downstream path of the transmission network, e.g. bandwidth available (traffic monitoring in data switching networks H04L43/00; monitoring data switching networks utilization H04L43/0876)}
- H04N 21/25825: {involving client display capabilities, e.g. screen resolution of a mobile phone (optimising the visualisation of content during browsing in the Internet G06F16/9577; processing of terminal status or physical abilities in wireless networks H04W8/22; authentication in wireless network security H04W12/06)}
- H04N 21/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
- H04N 21/6175: {involving transmission via Internet (broadcast-related systems characterised by the transmission system being the Internet H04H60/82)}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Methods and systems for packaging, transcoding, and fragmenting files (e.g., video content are described. Video content may be transcoded into fix size, variable duration fragments files that satisfy a target fragment file size. Those fragment files may be received, decoded to recover original frames of the underlying video, and then repackaged as new fragment files that are grouped based on overall file size. As a result, the new fragments may have different playback durations, but their overall file sizes may be the same and/or within a target fragment file size (TFS).

## Claims

### Claim 1

A method comprising:
receiving sequential first and second video fragments of a video content item, wherein the first and second video fragments are of different file sizes and are of a same playback duration;
determining, based on a video quality of the video content item and further based on a size of a storage medium, a target fragment size;
determining, based on the target fragment size and based on a total size of the first video fragment, one or more frames from a beginning portion of the second video fragment;
transcoding the first video fragment into a transcoded video fragment that comprises:
a plurality of frames of the first video fragment; and
the one or more frames from the beginning portion of the second video fragment; and
sending the transcoded video fragment as at least a portion of a stream of fragments, wherein fragments of the stream of fragments are of a same file size and are of different playback durations.

### Claim 2 (depends on 1)

The method of claim 1, wherein the sending the transcoded video fragment comprises sending a plurality of video fragments that comprise different quantities of frames and that have file sizes that satisfy the target fragment size.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first video fragment comprises one or more of:
a plurality of access units, or
a logical substructure of an elementary stream.

### Claim 4 (depends on 1)

The method of claim 1, wherein the storage medium comprises a buffer.

### Claim 5 (depends on 1)

The method of claim 1, wherein the plurality of frames of the first video fragment is generated by unpacking a packetized elementary stream (PES) into an elementary stream (ES) composed of the plurality of frames.

### Claim 6 (depends on 1)

The method of claim 1, wherein the sequential first and second video fragments are formatted in accordance with a Moving Pictures Experts Group (MPEG) standard.

### Claim 7 (depends on 1)

The method of claim 1, wherein the size of the storage medium comprises a sector size of the storage medium.

### Claim 8 (depends on 7)

The method of claim 7, wherein the target fragment size equals the sector size.

### Claim 9 (depends on 1)

The method of claim 1, wherein the sending the transcoded video fragment comprises sending the transcoded video fragment via an internet protocol (IP) stream, and wherein a maximum packet size of the IP stream is approximately a multiple of the target fragment size.

### Claim 10 (depends on 1)

The method of claim 1, wherein the video quality comprises one or more of: an amount of motion, a resolution, or a bitrate.

### Claim 11 (depends on 1)

The method of claim 1, further comprising:
determining, based on a complexity of the first video fragment, the video quality.

### Claim 12

A system comprising:
a transcoder and a client device;
wherein the transcoder is configured to:
receive, from a content provider, a first video stream comprising a first plurality of video fragments having a common playback duration and variable file sizes;
determine, based on a video quality of the first video stream and further based on a size of a storage medium of the client device, a target fragment size;
transcode the first video stream into a transcoded video stream comprising a second plurality of video fragments having a variable playback duration and a common file size that is based on the target fragment size; and
send the transcoded video stream; and
wherein the client device is configured to:
receive the transcoded video stream;
decode fragments in the transcoded video stream; and
output the decoded fragments for display at the video quality.

### Claim 13 (depends on 12)

The system of claim 12, wherein the transcoder is further configured to send the transcoded video stream by:
sending, via a quadrature amplitude modulation (QAM) stream, the transcoded video stream.

### Claim 14 (depends on 12)

The system of claim 12, wherein the first video stream comprises digitally encoded video, and wherein the video quality comprises a first video resolution.

### Claim 15 (depends on 12)

The system of claim 12, wherein the transcoder is configured to determine the target fragment size further based an available bandwidth.

### Claim 16 (depends on 12)

The system of claim 12, wherein the transcoder is further configured to:
encode, based on an amount of free space remaining in the first plurality of video fragments, each of a plurality of portions of the first video stream into one or more of: an IDR-Frame, an I-Frame, a B-Frame, a P-Frame, or an alternative picture type.

### Claim 17

A method comprising:
receiving, by a computing device, a first incoming fragment corresponding to video content;
determining that a size of the first incoming fragment exceeds a target fragment file size, wherein the target fragment file size is based on a size of a storage medium of a client device;
determining an initial portion of the first incoming fragment, wherein a total size of the initial portion satisfies the target fragment file size;
determining a remainder portion of the first incoming fragment, wherein a size of the remainder portion comprises an amount that the size of the first incoming fragment exceeds the target fragment file size;
receiving a second incoming fragment corresponding to the video content, wherein the second incoming fragment sequentially follows the first incoming fragment in the video content, and wherein the first incoming fragment and the second incoming fragment are of different file sizes and are of a same playback duration;
generating a first output fragment file comprising the initial portion of the first incoming fragment;
generating a second output fragment file comprising:
the remainder portion of the first incoming fragment, and
at least a portion of the second incoming fragment; and
sending, to the client device, the first output fragment file and the second output fragment file, wherein the first output fragment file and the second output fragment file are of a same file size and are of different playback durations.

### Claim 18 (depends on 17)

The method of claim 17, wherein the determining the initial portion of the first incoming fragment comprises determining, for each of a plurality of frames of the first incoming fragment, whether inclusion of the frame would cause the initial portion to exceed the target fragment file size.

### Claim 19 (depends on 18)

The method of claim 18, wherein the determining the initial portion of the first incoming fragment comprises determining, after a determination that inclusion of a particular frame in the initial portion would cause the initial portion to exceed the target fragment file size, to not include the particular frame in the initial portion.

### Claim 20 (depends on 17)

The method of claim 17, wherein the target fragment file size is further based on one or more of:
an available bandwidth, or
a video quality; and
wherein the video quality comprises one or more of:
a complexity of the video content, or
a resolution of the video content.
