# US 8,752,085 B1 · Advertisement insertion into media content for streaming

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

- Number: US 8,752,085 B1
- Document ID: US8752085B1
- Status: Granted
- Kind: B1
- Application number: 13/764,536
- Filed: 2013-02-11
- Granted: 2014-06-10
- Earliest claimed: 2012-02-14
- Assignees: Verizon Patent and Licensing Inc.
- Applicants: Uplynk, LLC
- Inventors: David F. Brueck; C. Ryan Owen; Tyler Bye; Nathan James Edwards; Ken Brueck
- Web page: https://patentgrep.com/patent/US8752085B1

## CPC

- H04N 21/23424: {involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement}
- H04L 65/756: adapting media to device capabilities
- H04N 21/235: Processing of additional data, e.g. scrambling of additional data or processing content descriptors
- H04N 21/262: Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists {(scheduling strategies for dispatcher in multiprogramming arrangements G06F9/4881; arrangements for scheduling broadcast services or broadcast-related services H04H60/06; flow control in packet networks H04L47/10; establishing a time schedule or organising the servicing of application requests H04L67/62)}
- H04N 21/4305: {Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets (arrangements for synchronising receiver with transmitter by comparing receiver clock with transmitter clock H04L7/0012; arrangements for synchronising receiver with transmitter wherein the receiver takes measures against momentary loss of synchronisation H04L7/0083)}
- H04N 21/435: Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
- H04N 21/44016: {involving splicing one content stream with another content stream, e.g. for substituting a video clip}
- H04N 21/6125: {involving transmission via Internet (transmission by internet of broadcast information H04H60/82)}
- H04N 21/812: {involving advertisement data (advertising per se G06Q30/02)}
- H04N 21/8133: {specifically related to the content, e.g. biography of the actors in a movie, detailed information about an article seen in a video programme}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods and systems for advertisement insertion into streaming media content are described. In one method, an advertisement insertion tool receives an advertisement insertion input. The advertisement insertion input identifies a presentation time in media content to insert an advertisement. In response to receiving the advertisement insertion input, the advertisement insertion tool inspects an original slice of the media content that contains the media content at the presentation time to locate a key frame at or prior to the presentation time. The advertisement insertion tool creates a first new slice comprising the media content of the original slice up to the presentation time and creates a second new slice comprising the media content of the original slice after the presentation time. The advertisement insertion tool updates a descriptor file to include the first new slice, the advertisement, and the second new slice for streaming.

## Claims

### Claim 1

A method comprising:
receiving advertisement insertion input at an advertisement insertion tool executing by a processing device, wherein the advertisement insertion input identifies a presentation time in media content to insert an advertisement;
in response the receiving, inspecting an original slice of the media content that contains the media content at the presentation time to locate a key frame at or prior to the presentation time, wherein the inspecting the original slice of the media content comprises:
reading a container comprising encoded video; and
decoding the key frame, any intervening delta frames and a last frame corresponding to the media content at the presentation time;
creating a first new slice comprising the media content of the original slice up to the presentation time, wherein the creating the first new slice comprises re-encoding the key frame, any intervening delta frames and the last frame to create the first new slice;
creating a second new slice comprising the media content of the original slice after the presentation time; and
updating a descriptor file to include the first new slice, the advertisement, and the second new slice for streaming by a media player executing on a client computing system.

### Claim 2 (depends on 1)

The method of claim 1, wherein the inspecting the original slice of the media content comprises:
reading a container comprising encoded video frames; and
pre-processing the encoded video frames to locate the key frame and a last frame corresponding to the media content at the presentation time,
wherein the creating the first new slice comprises creating the first new slice to include the key frame, any intervening delta frames, and the last frame.

### Claim 3 (depends on 1)

The method of claim 1, wherein the creating the second new slice of the media content comprises:
decoding a first frame of the media content after the presentation time from the original slice into raw video;
re-encoding the raw video of the first frame as a second key frame; and
creating the second new slice with the second key frame and subsequent frames after the first frame until an end of the original slice.

### Claim 4 (depends on 3)

The method of claim 3, wherein the creating the second new slice with the second key frame and the subsequent frames comprises copying the subsequent frames from the original slice without decoding the subsequent frames of the original slice.

### Claim 5 (depends on 3)

The method of claim 3, wherein the creating the second new slice with the second key frame and the subsequent frames comprises:
decoding the subsequent frames of the original slice into raw video; and
re-encoding the raw video of the subsequent frames of the original slice for the subsequent frames of the second new slice.

### Claim 6 (depends on 1)

The method of claim 1, wherein the inspecting the original slice of the media content comprises:
reading a container comprising encoded video frames and encoded audio samples;
splitting the encoded video frames into a first processing pipeline and the encoded audio samples into a second processing pipeline; and
inspecting the original slice of the media content to locate the key frame using the first processing pipeline.

### Claim 7 (depends on 1)

The method of claim 1, wherein the inspecting the original slice of the media content to locate the key frame comprises accessing an index of the media content that identifies key frames of the media content.

### Claim 8

A non-transitory computer readable storage medium including instructions that, when executed by a processing device, cause the processing device to perform operations comprising:
receiving advertisement insertion input at an advertisement insertion tool executing by the processing device, wherein the advertisement insertion input identifies a presentation time in media content to insert an advertisement;
in response the receiving, inspecting an original slice of the media content that contains the media content at the presentation time to locate a key frame at or prior to the presentation time;
creating a first new slice comprising the media content of the original slice up to the presentation time;
creating a second new slice comprising the media content of the original slice after the presentation time, wherein the creating the second new slice comprises:
decoding the key frame, any intervening delta frames and a first frame of the media content after the presentation time from the original slice into raw video;
re-encoding the raw video of the first frame as a second key frame; and
creating the second new slice with the second key frame and subsequent frames after the first frame until an end of the original slice; and
updating a descriptor file to include the first new slice, the advertisement, and the second new slice for streaming by a media player executing on a client computing system.

### Claim 9

A computing system comprising:
a memory; and
a processing device, coupled to the memory, wherein the processing device is configured to execute an advertisement insertion tool, wherein the advertisement insertion tool is to:
receive advertisement insertion input, wherein the advertisement insertion input identifies a presentation time in media content to insert an advertisement;
inspect an original slice of the media content that contains the media content at the presentation time to locate a key frame at or prior to the presentation time, wherein when inspecting the original slice of the media content, the processing device is to:
read a container comprising encoded video frames; and
pre-process the encoded video frames to locate the key frame and a last frame corresponding to the media content at the presentation time;
create first new slice comprising the media content of the original slice up to the presentation time, wherein when creating the first new slice, the processing device is to create the first new slice to include the key frame, any intervening delta frames, and the last frame;
create a second new slice comprising the media content of the original slice after the presentation time, wherein when creating the second new slice of the media content, the processing device is to:
decode a first frame of the media content after the presentation time from the original slice into raw video;
re-encode the raw video of the first frame as a second key frame; and
create the second new slice with the second key frame and subsequent frames after the first frame until an end of the original slice; and
update a descriptor file to include the first new slice, the advertisement, and the second new slice for streaming by a media player executing on a client computing system.

### Claim 10 (depends on 9)

The computing system of claim 9, wherein the advertisement insertion tool is further to:
read a container comprising encoded video frames; and
pre-process the encoded video frames to locate the key frame and a last frame corresponding to the media content at the presentation time,
wherein the first new slice is created to include the key frame, any intervening delta frames, and the last frame.

### Claim 11

A method comprising:
receiving advertisement insertion input at an advertisement insertion tool executing by a processing device, wherein the advertisement insertion input identifies a presentation time in media content to insert an advertisement;
in response the receiving, inspecting an original slice of the media content that contains the media content at the presentation time to locate a key frame at or prior to the presentation time, wherein the inspecting the original slice of the media content comprises:
reading a container comprising encoded video frames; and
pre-processing the encoded video frames to locate the key frame and a last frame corresponding to the media content at the presentation time,
creating a first new slice comprising the media content of the original slice up to the presentation time, wherein the creating the first new slice comprises creating the first new slice to include the key frame, any intervening delta frames, and the last frame;
creating a second new slice comprising the media content of the original slice after the presentation time, wherein the creating the second new slice comprises:
decoding the key frame, any intervening delta frames and a first frame of the media content after the presentation time from the original slice into raw video;
re-encoding the raw video of the first frame as a second key frame; and
creating the second new slice with the second key frame and subsequent frames after the first frame until an end of the original slice; and
updating a descriptor file to include the first new slice, the advertisement, and the second new slice for streaming by a media player executing on a client computing system.

### Claim 12 (depends on 11)

The method of claim 11, wherein the creating the first new slice comprises copying only the key frame, any intervening delta frames, and the last frame from the original slice without decoding the media content of the container.

### Claim 13 (depends on 11)

The method of claim 11, wherein the creating the first new slice comprises:
copying the media content of the original slice; and
discarding subsequent frames after the last frame corresponding to the presentation time, wherein the copying and the discarding are performed without decoding the media content of the container.

### Claim 14 (depends on 11)

The method of claim 11, wherein the creating the second new slice with the second key frame and the subsequent frames comprises copying the subsequent frames from the original slice without decoding the subsequent frames of the original slice.

### Claim 15 (depends on 11)

The method of claim 11, wherein the creating the second new slice with the second key frame and the subsequent frames comprises:
decoding the subsequent frames of the original slice into raw video; and
re-encoding the raw video of the subsequent frames of the original slice for the subsequent frames of the second new slice.

### Claim 16 (depends on 11)

The method of claim 11, wherein the inspecting the original slice of the media content comprises:
reading a container comprising encoded video frames and encoded audio samples;
splitting the encoded video frames into a first processing pipeline and the encoded audio samples into a second processing pipeline; and
inspecting the original slice of the media content to locate the key frame using the first processing pipeline.

### Claim 17 (depends on 11)

The method of claim 11, wherein the inspecting the original slice of the media content to locate the key frame comprises accessing an index of the media content that identifies key frames of the media content.

### Claim 18

A non-transitory computer readable storage medium including instructions that, when executed by a processing device, cause the processing device to perform operations comprising:
receiving advertisement insertion input at an advertisement insertion tool executing by the processing device, wherein the advertisement insertion input identifies a presentation time in media content to insert an advertisement;
in response the receiving, inspecting an original slice of the media content that contains the media content at the presentation time to locate a key frame at or prior to the presentation time, wherein the inspecting the original slice of the media content comprises:
reading a container comprising encoded video; and
decoding the key frame, any intervening delta frames and a last frame corresponding to the media content at the presentation time;
creating a first new slice comprising the media content of the original slice up to the presentation time, wherein the creating the first new slice comprises re-encoding the key frame, any intervening delta frames and the last frame to create the first new slice;
creating a second new slice comprising the media content of the original slice after the presentation time; and
updating a descriptor file to include the first new slice, the advertisement, and the second new slice for streaming by a media player executing on a client computing system.

### Claim 19 (depends on 18)

The non-transitory computer readable storage medium of claim 18, wherein the creating the first new slice comprises copying only the key frame, any intervening delta frames, and the last frame from the original slice without decoding the media content of the container.

### Claim 20 (depends on 18)

The non-transitory computer readable storage medium of claim 18, wherein the creating the second new slice of the media content comprises:
decoding a first frame of the media content after the presentation time from the original slice into raw video;
re-encoding the raw video of the first frame as a second key frame; and
creating the second new slice with the second key frame and subsequent frames after the first frame until an end of the original slice.

### Claim 21

A computing system comprising:
a memory; and
a processing device, coupled to the memory, wherein the processing device is configured to execute an advertisement insertion tool, wherein the advertisement insertion tool is to:
receive advertisement insertion input at an advertisement insertion tool executing by a processing device, wherein the advertisement insertion input identifies a presentation time in media content to insert an advertisement;
in response the receiving, inspect an original slice of the media content that contains the media content at the presentation time to locate a key frame at or prior to the presentation time, wherein when inspecting the original slice of the media content, the processing device is to:
read a container comprising encoded video; and
decode the key frame, any intervening delta frames and a last frame corresponding to the media content at the presentation time;
create a first new slice comprising the media content of the original slice up to the presentation time, wherein when creating the first new slice, the processing device is to re-encoding the key frame, any intervening delta frames and the last frame to create the first new slice;
create a second new slice comprising the media content of the original slice after the presentation time; and
update a descriptor file to include the first new slice, the advertisement, and the second new slice for streaming by a media player executing on a client computing system.

### Claim 22 (depends on 21)

The computing system of claim 21, wherein when creating the second new slice, the processing device is to:
decode subsequent frames after the first frame of the original slice into raw video; and
re-encode the raw video of the subsequent frames of the original slice for the subsequent frames of the second new slice.
