# US 8,789,090 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,789,090 B1
- Document ID: US8789090B1
- Status: Granted
- Kind: B1
- Application number: 13/764,563
- Filed: 2013-02-11
- Granted: 2014-07-22
- Earliest claimed: 2012-02-14
- Assignees: Uplynk, LLC
- Applicants: Verizon Patent and Licensing, Inc.
- Inventors: David F. Brueck; C. Ryan Owen; Tyler Bye; Nathan James Edwards; Ken Brueck
- Web page: https://patentgrep.com/patent/US8789090B1

## 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 a first indication of a start time of where an advertisement is to be inserted into media content and a second indication comprising at least one of an end time of the advertisement or a duration of the advertisement. The advertisement insertion tool inspects a first original slice of the media content that contains the media content at the start time to locate a first key frame at or prior to the start time and creates a first new slice comprising the media content of the first original slice up to the start time. The advertisement insertion tool inspects a second original slice of the media content that contains the media content at the end time to locate a second key frame at or prior to the end time and creates a second new slice comprising the media content of the second original slice after the end time until an end of the second original slice.

## Claims

### Claim 1

A method comprising:
receiving, by an advertisement insertion tool executing by a processing device, a first indication of a start time of where an advertisement is to be inserted into media content;
receiving, by the advertisement insertion tool, a second indication comprising at least one of an end time of the advertisement or a duration of the advertisement;
inspecting a first original slice of the media content that contains the media content at the start time to locate a first key frame at or prior to the start time;
creating a first new slice comprising the media content of the first original slice up to the start time;
inspecting a second original slice of the media content that contains the media content at the end time to locate a second key frame at or prior to the end time; and
creating a second new slice comprising the media content of the second original slice after the end time until an end of the second original slice,
wherein the inspecting the first original slice and the inspecting the second original slice comprises:
reading a container comprising encoded video frames; and
pre-processing the encoded video frames to locate the first key frame and a last frame corresponding to the media content at the start time and to locate the second key frame and a first frame corresponding to the media content after the end time;
wherein the creating the first new slice comprises creating the first new slice to include the first key frame, any intervening delta frames, and the last frame, and
wherein the creating the second new slice comprises:
converting the first frame into a third key frame; and
creating the second new slice to include the third key frame and subsequent frames after the third key frame until an end of the second original slice.

### Claim 2 (depends on 1)

The method of claim 1, wherein the receiving the second indication comprises:
receiving the duration of the advertisement; and
determining the end time of the advertisement from the start time and the duration.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first indication is a start of black frames in the media content and the second indication is an end of the black frames.

### Claim 4 (depends on 3)

The method of claim 3, wherein the start of black frames and the end of black frames are determined by an automated process.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first indication is a start of an original advertisement in the media content and the second indication is an end of the original advertisement.

### Claim 6 (depends on 1)

The method of claim 1, further comprising 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 and to exclude any intervening slices between the first original slice and the second original slice.

### Claim 7 (depends on 1)

The method of claim 1, wherein the creating the second new slice comprises copying the subsequent frames from the second original slice without decoding the subsequent frames of the second original slice.

### 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, by an advertisement insertion tool executing by a processing device, a first indication of a start time of where an advertisement is to be inserted into media content;
receiving, by the advertisement insertion tool, a second indication comprising at least one of an end time of the advertisement or a duration of the advertisement;
inspecting a first original slice of the media content that contains the media content at the start time to locate a first key frame at or prior to the start time;
creating a first new slice comprising the media content of the first original slice up to the start time;
inspecting a second original slice of the media content that contains the media content at the end time to locate a second key frame at or prior to the end time; and
creating a second new slice comprising the media content of the second original slice after the end time until an end of the second original slice,
wherein the inspecting the first original slice and the inspecting the second original slice comprises:
reading a container comprising encoded video frames; and
pre-processing the encoded video frames to locate the first key frame and a last frame corresponding to the media content at the start time and to locate the second key frame and a first frame corresponding to the media content after the end time;
wherein the creating the first new slice comprises creating the first new slice to include the first key frame, any intervening delta frames, and the last frame, and
wherein the creating the second new slice comprises:
converting the first frame into a third key frame; and
creating the second new slice to include the third key frame and subsequent frames after the third key frame until an end of the second original slice.

### Claim 9 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the receiving the second indication comprises:
receiving the duration of the advertisement; and
determining the end time of the advertisement from the start time and the duration.

### Claim 10 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the first indication is a start of black frames in the media content and the second indication is an end of the black frames.

### Claim 11 (depends on 10)

The non-transitory computer readable storage medium of claim 10, wherein the start of black frames and the end of black frames are determined by an automated process.

### Claim 12 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the first indication is a start of an original advertisement in the media content and the second indication is an end of the original advertisement.

### Claim 13 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the operations further comprise 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 and to exclude any intervening slices between the first original slice and the second original slice.

### Claim 14 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the creating the second new slice comprises copying the subsequent frames from the second original slice without decoding the subsequent frames of the second original slice.

### Claim 15

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 a first indication of a start time of where an advertisement is to be inserted into media content;
receive a second indication comprising at least one of an end time of the advertisement or a duration of the advertisement;
inspect a first original slice of the media content that contains the media content at the start time to locate a first key frame at or prior to the start time;
create a first new slice comprising the media content of the first original slice up to the start time, wherein when creating the first new slice the processing device is to create the first new slice to include the first key frame, any intervening delta frames, and the last frame;
inspect a second original slice of the media content that contains the media content at the end time to locate a second key frame at or prior to the end time; and
create a second new slice comprising the media content of the second original slice after the end time until an end of the second original slice,
wherein when creating the second new slice, the processing device is to:
convert the first frame into a third key frame; and
create the second new slice to include the third key frame and subsequent frames after the third key frame until an end of the second original slice,
wherein when inspecting the first original slice and the inspecting the second original slice, the processing device is to:
read a container comprising encoded video frames; and
pre-process the encoded video frames to locate the first key frame and a last frame corresponding to the media content at the start time and to locate the second key frame and a first frame corresponding to the media content after the end time.

### Claim 16 (depends on 15)

The computing system of claim 15, wherein the receiving the second indication comprises:
receive the duration of the advertisement; and
determine the end time of the advertisement from the start time and the duration.

### Claim 17 (depends on 15)

The computing system of claim 15, wherein the first indication is a start of black frames in the media content and the second indication is an end of the black frames.

### Claim 18 (depends on 15)

The computing system of claim 15, wherein the first indication is a start of an original advertisement in the media content and the second indication is an end of the original advertisement.
