IP Library Granted Patent US 8,752,113
Granted Patent B1
US 8,752,113 · App. 13/842,464 · Granted Jun 10, 2014

Insertion of graphic overlays into a stream

Inventors: Charles F. Good (Cincinnati, OH); Ian Zenoni (Highlands Ranch, CO)
Assignee: Wowza Media Systems, LLC
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,752,113
App. No.
13/842,464
Granted
Jun 10, 2014
Kind
B1
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 (50)

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.

2. 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.

3. 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.

4. 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.

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

6. 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.

7. 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.

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.

9. 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.

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

11. 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.

12. 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.

13. 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.

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

15. 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.

16. 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.

17. 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.

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

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.

20. 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.

Assignments (2)
SECURITY INTEREST Recorded May 28, 2021
From: WOWZA MEDIA SYSTEMS, LLC
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 056422/0263 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2013
From: GOOD, CHARLES F.; ZENONI, IAN
To: WOWZA MEDIA SYSTEMS, LLC
Reel/Frame 030022/0775 →