IP Library Granted Patent US 11,856,329
Granted Patent B2
US 11,856,329 · App. 16/749,950 · Granted Dec 26, 2023

Dynamic advertisement stream replacement

Inventors: Kent Karlsson (San Francisco, CA); Gabriel Netterdag (Stockholm, SE); Martin Linderoth (Arsta, SE); Ola Hållmarker (Hagersten, SE)
Assignee: TiVo Corporation
H04N7/165G06Q30/02H04N21/23424H04N21/4347H04N21/6131H04N21/6408H04N21/6437H04N21/64315H04N21/812
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 11,856,329
App. No.
16/749,950
Granted
Dec 26, 2023
Kind
B2
Abstract

Mechanisms are provided for replacing default advertisement streams in a media stream with replacement advertisement streams. User profile information is obtained for a particular user and/or device. A default advertisement stream is identified and replaced with advertisement streams selected using the user profile information. Timestamp information and sequence number information is maintained to allow uninterrupted delivery of the modified media stream while customizing media streams for particular users.

Claims (64)

1. A method to be performed by a content server, the method comprising:

maintaining a plurality of replacement advertisement streams in an advertisement database;

receiving a media stream from a content provider;

receiving a request for the media stream from a device;

using an advertisement marker flag set in a header field of the media stream to identify a default advertisement stream between a first portion and a second portion of the media stream;

replacing the default advertisement stream with a replacement advertisement stream selected from the advertisement database, comprising:

modifying sequence information related to the replacement advertisement stream if the sequence information is different from sequence information related to the default advertisement stream being replaced;

determining that a number of packets in the replacement advertisement stream is different from a number of packets in the default advertisement stream;

modifying sequence information related to the second portion of the media stream by reconciling an end packet identifier of the replacement advertisement stream with a restart point packet identifier of the second portion;

incrementing one or more audio encoding timestamps by a packetization interval multiplied by an audio sampling rate; and

transmitting the media stream to the device.

2. The method of claim 1 , wherein the first and second portions of the media stream comprise a live media stream and replacing the default advertisement stream comprises dynamically replacing the default advertisement stream.

3. The method of claim 1 , wherein the replacement advertisement stream is selected based on device location information.

4. The method of claim 1 , further comprising:

modifying a bitrate of the replacement advertisement stream to match a bitrate of the media stream received from the content provider.

5. The method of claim 1 , wherein removing and replacing the default advertisement stream with the replacement advertisement stream further comprises removing a plurality of data segments corresponding to the default advertisement stream and inserting a plurality of data segments corresponding to the replacement advertisement stream.

6. The method of claim 1 , wherein transmitting the media stream to the device comprises

providing seamless playback of the media stream and the replacement advertisement stream on the device.

7. The method of claim 1 , wherein the media stream and the plurality of replacement advertisement streams operate according to one or more streaming protocols configured to deliver media streams to devices.

8. The method of claim 1 , wherein the replacement advertisement stream is selected based at least partially on a timestamp information match with the default advertisement stream.

9. The method of claim 1 , wherein the media stream is one of a plurality of media streams received from a plurality of content providers, and the plurality of content providers include a plurality of cable and satellite providers.

10. The method of claim 1 , wherein the reconciling comprises modifying sequence numbers indicating the end packet identifier of the replacement advertisement stream and the restart point packet identifier of the second portion.

11. The method of claim 10 , wherein the sequence numbers are sequential integers.

12. The method of claim 11 , wherein the reconciling comprises modifying sequence numbers of an entire content stream after the replacement advertisement stream.

13. The method of claim 1 , wherein replacing the default advertisement stream comprises dynamically inserting replacement advertisement packets as default advertainment packets are removed.

14. A system for providing a modified media stream, the system configurable to cause:

maintaining a plurality of replacement advertisement streams in an advertisement database;

receiving a plurality of media streams from a content provider;

receiving a request for a media stream from one of a device;

using an advertisement marker flag set in a header field of the media stream to identify a default advertisement stream between a first portion and a second portion of the media stream; and

replacing the default advertisement stream with a replacement advertisement stream selected from the advertisement database, comprising:

modifying sequence information related to the replacement advertisement stream if the sequence information is different from sequence information related to the default advertisement stream;

determining that a number of packets in the replacement advertisement stream is different from a number of packets in the default advertisement stream;

modifying sequence information related to the second portion of the media stream by reconciling an end packet identifier of the replacement advertisement stream with a restart point packet identifier of the second portion;

incrementing one or more audio encoding timestamps by a packetization interval multiplied by an audio sampling rate; and

transmitting the media stream to the device.

15. The system of claim 14 , wherein the first and second portions of the media stream comprise a live media stream and replacing the default advertisement stream comprises dynamically replacing the default advertisement stream.

16. The system of claim 14 , wherein the replacement advertisement stream is selected based on device location information.

17. The system of claim 10 , further configurable to cause:

modifying a bitrate of the replacement advertisement stream to match a bitrate of the media stream received from the content provider.

18. The system of claim 14 , wherein replacing the default advertisement stream with the replacement advertisement stream further comprises removing a plurality of data segments corresponding to the default advertisement stream and inserting a plurality of data segments corresponding to the replacement advertisement stream.

19. The system of claim 14 , wherein transmitting the media stream to the device comprises providing seamless playback of the media stream and the replacement advertisement stream on the device.

20. The system of claim 14 , wherein the plurality of media streams and the plurality of replacement advertisement streams operate according to one or more streaming protocols configured to deliver media streams to devices.

21. The system of claim 14 , wherein the reconciling comprises modifying sequence numbers indicating the end packet identifier of the replacement advertisement stream and the restart point packet identifier of the second portion.

22. The system of claim 21 , wherein the sequence numbers are sequential integers.

23. The system of claim 22 , wherein the reconciling comprises modifying sequence numbers of an entire content stream after the end packet identifier of the replacement advertisement stream.

24. A computer program product comprising computer-readable program code capable of being executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code comprising instructions configurable to cause:

maintaining a plurality of replacement advertisement streams in an advertisement database;

receiving a plurality of media streams from a content provider;

receiving a request for a media stream from one of a plurality of devices;

using an advertisement marker flag set in a header field of the media stream to identify a default advertisement stream between a first portion and a second portion of the media stream;

replacing the default advertisement stream with a replacement advertisement stream selected from the advertisement database, comprising:

modifying sequence information related to the replacement advertisement stream if the sequence information is different from sequence information related to the default advertisement stream being replaced;

determining that a number of packets in the replacement advertisement stream is different from a number of packets in the default advertisement stream;

modifying sequence information related to the second portion of the media stream by reconciling an end packet identifier of the replacement advertisement stream with a restart point packet identifier of the second portion;

incrementing one or more audio encoding timestamps by the packetization interval multiplied by an audio sampling rate; and

transmitting the media stream to the device.

25. The computer program product of claim 24 , wherein the media stream comprises a live media stream and replacing the default advertisement stream comprises dynamically replacing the default advertisement stream.

26. The computer program product of claim 24 , wherein the replacement advertisement stream is selected based on device location information.

27. The computer program product of claim 24 , the program code instructions further configurable to cause:

modifying a bitrate of the replacement advertisement stream to match a bitrate of the media stream received from the content provider.

28. The computer program product of claim 24 , wherein the reconciling comprises modifying sequence numbers indicating the end packet identifier of the replacement advertisement stream and the restart point packet identifier of the second portion.

29. The computer program product of claim 28 , wherein the sequence numbers are sequential integers.

30. The computer program product of claim 29 , wherein the reconciling comprises modifying sequence numbers of an entire content stream after the end packet identifier of the replacement advertisement stream.

Assignments (6)
CHANGE OF NAME Recorded Mar 31, 2026
From: ADEIA MEDIA HOLDINGS LLC
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 075303/0980 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO CORPORATION
To: TIVO LLC
Reel/Frame 069083/0250 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO LLC
To: ADEIA MEDIA HOLDINGS LLC
Reel/Frame 069083/0325 →
SECURITY INTEREST Recorded May 19, 2023
From: ADEIA GUIDES INC.; ADEIA MEDIA HOLDINGS LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 063707/0884 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2021
From: MOBITV, INC.; MOBITV SERVICES, INC.
To: TIVO CORPORATION
Reel/Frame 056444/0076 →
SECURITY INTEREST Recorded Oct 21, 2020
From: MOBITV, INC.
To: ALLY BANK
Reel/Frame 054128/0963 →