# US 8,752,113 B1 · Insertion of graphic overlays into a stream

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

- Number: US 8,752,113 B1
- Document ID: US8752113B1
- Status: Granted
- Kind: B1
- Application number: 13/842,464
- Filed: 2013-03-15
- Granted: 2014-06-10
- Earliest claimed: 2013-03-15
- Assignees: Wowza Media Systems, LLC
- Applicants: Wowza Media Systems, LLC
- Inventors: Charles F. Good; Ian Zenoni
- Web page: https://patentgrep.com/patent/US8752113B1

## CPC

- H04L 65/762: {at the source (reformatting of additional data in video distribution servers H04N21/2355)}
- H04L 65/65: Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
- H04N 19/40: using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
- 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/47202: {for requesting content on demand, e.g. video on demand}
- H04N 21/8153: {comprising still images, e.g. texture, background image}
- H04N 21/845: Structuring of content, e.g. decomposing content into time segments
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Systems and methods of inserting overlays into a stream are disclosed. A media server may receive a stream. The media server may selectively add one or more images (e.g., graphics and/or text) to the stream prior to scaling the stream to produce one or more scaled streams. The media server may also selectively add one or more images to the scaled streams. The scaled streams may be encoded for adaptive streaming to a computing device.

## Claims

### Claim 1

A method comprising:
receiving, at a media server, requests for a portion of a first rendition and a second rendition of a plurality of renditions of a stream, wherein each of the plurality of renditions has a distinct bitrate, wherein the plurality of renditions and one or more overlay parameters are identified by a transcoding template stored at the media server;
generating a portion of the first rendition of the stream based on a first set of overlay parameters of the one or more overlay parameters associated with the first rendition, wherein generating the portion of the first rendition includes:
determining whether one or more first overlay images are enabled by the first set of overlay parameters; and
inserting the one or more first overlay images into one or more frames of the portion of the first rendition conditioned on the one or more first overlay images being enabled;
generating a portion of a second rendition of the stream based on a second set of overlay parameters of the one or more overlay parameters that are different from the first set of overlay parameters wherein generating the portion of the second rendition includes:
determining whether one or more second overlay images are enabled by the second set of overlay parameters; and
inserting the one or more second overlay images into one or more frames of the portion of the second rendition conditioned on the one or more second overlay images being enabled; and
sending the portion of the first rendition to a first computing device and sending the portion of the second rendition to a second computing device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first set of overlay parameters identifies a different number of overlay images than the second set of overlay parameters.

### Claim 3 (depends on 2)

The method of claim 2, wherein the first set of overlay parameters identifies a first overlay location for a particular overlay image and wherein the second set of overlay parameters identifies a second overlay location for the particular overlay image, wherein the first overlay location is different from the second overlay location.

### Claim 4 (depends on 1)

The method of claim 1, wherein inserting of the one or more first overlay images occurs repeatedly at one or more frame locations until one of the first set of overlay parameters is changed.

### Claim 5 (depends on 1)

The method of claim 1, further comprising scaling the stream to generate a plurality of scaled streams.

### Claim 6 (depends on 1)

The method of claim 1, further comprising inserting the one or more first overlay images into the one or more frames of the portion of the first rendition in response to determining that the one or more first overlay images are enabled.

### Claim 7 (depends on 1)

The method of claim 1, further comprising refraining from inserting the one or more first overlay images into the one or more frames of the portion of the first rendition in response to determining that the one or more first overlay images are not enabled.

### Claim 8

A media server comprising:
a processor;
a decoder configured to decode a stream to generate a decoded stream;
a transcoder executable by the processor to:
generate a portion of a first rendition of the stream based on a first set of overlay parameters, wherein generating the portion of the first rendition includes:
determining whether one or more first overlay images are enabled by the first set of overlay parameters; and
inserting the one or more first overlay images into one or more frames of the portion of the first rendition conditioned on the one or more first overlay images being enabled;
generate a portion of a second rendition of the stream based on a second set of overlay parameters that are different from the first set of overlay parameters, wherein generating the portion of the second rendition includes:
determining whether one or more second overlay images are enabled by the second set of overlay parameters; and
inserting the one or more second overlay images into one or more frames of the portion of the second rendition conditioned on the one or more second overlay images being enabled;
an encoder configured to encode the portion of the first rendition and the portion of the second rendition; and
a network interface configured to send the encoded portion of the first rendition to a first computing device and to send the encoded portion of the second rendition to a second computing device.

### Claim 9 (depends on 8)

The media server of claim 8, further comprising a data storage device configured to store the one or more first overlay images and the one or more second overlay images.

### Claim 10 (depends on 8)

The media server of claim 8, wherein a first overlay module, a video scaler, and a second overlay module are integrated into the transcoder.

### Claim 11 (depends on 10)

The media server of claim 10, wherein at least one of the first overlay module and the second overlay module is executable by the processor to dynamically generate an overlay image for insertion into the stream, where the overlay image is generated based on information generated at the media server, second information retrieved from an external source, user-provided executable code, or any combination thereof.

### Claim 12 (depends on 10)

The media server of claim 10, wherein the first overlay module is executable by the processor to retrieve the one or more first overlay images from a data storage device.

### Claim 13 (depends on 10)

The media server of claim 10, wherein the second overlay module is executable by the processor to retrieve the one or more second overlay images from a data storage device.

### Claim 14 (depends on 8)

The media server of claim 8, further comprising a memory storing overlay configuration information.

### Claim 15 (depends on 14)

The media server of claim 14, wherein the overlay configuration information indicates, for at least one overlay, a z-order of an image, a path of the image, a display opacity, a display location, a display alignment, whether to check for updates to the image, or any combination thereof.

### Claim 16 (depends on 15)

The media server of claim 15, wherein when a z-order of a particular image is greater than a z-order of a frame of video, the particular image is inserted into a first layer above a layer that includes the frame of video, and wherein when the z-order of the particular image is less than the z-order of the frame of video, the particular image is inserted into a second layer under the layer that includes the frame of video.

### Claim 17 (depends on 8)

The media server of claim 8, wherein the portion of the first rendition includes a different number of overlay images than the portion of the second rendition, and wherein the first rendition and the second rendition are different renditions of a live stream.

### Claim 18 (depends on 8)

The media server of claim 8, wherein the network interface is further configured to receive the stream.

### Claim 19

A computer-readable storage device storing instructions that,
when executed by a computer, cause the computer to:
receive a stream at a media server;
decode the stream to generate a decoded stream;
generate a portion of a first rendition of the stream based on a first set of overlay parameters-associated with the first rendition, wherein generating the portion of the first rendition includes:
determining whether one or more first overlay images are enabled by the first set of overlay parameters; and
inserting the one or more first overlay images into one or more frames of the portion of the first rendition conditioned on the one or more first overlay images being enabled;
generate a portion of a second rendition of the stream based on a second set of overlay parameters that are different from the first set of overlay parameters wherein generating the portion of the second rendition includes:
determining whether one or more second overlay images are enabled by the second set of overlay parameters; and
inserting the one or more second overlay images into one or more frames of the portion of the second rendition conditioned on the one or more second overlay images being enabled;
encode the portion of the first rendition and the portion of the second rendition; and
send the encoded portion of the first rendition to a first computing device and send the encoded portion of the second rendition to a second computing device.

### Claim 20 (depends on 19)

The computer-readable storage device of claim 19, wherein the one or more first overlay images and the one or more second overlay images include graphics data, text data, or any combination thereof.
