IP Library Granted Patent US 11,276,086
Granted Patent B2
US 11,276,086 · App. 16/930,087 · Granted Mar 15, 2022

Client-side video advertisement replacement using automatic content recognition

Inventor: Steven M. Cormie (Cambridge, GB)
Assignee: Roku, Inc.
G06Q30/0269G06Q30/0261H04L67/1095H04N21/23424H04N21/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,276,086
App. No.
16/930,087
Granted
Mar 15, 2022
Kind
B2
Abstract

Systems and method for advertisement replacement are disclosed. A server may receive a server feed, generate a plurality of server fingerprints for a respective plurality of segments of the server feed, receive a synchronization message comprising a client fingerprint and a client time, match the client fingerprint with one of the plurality of server fingerprints, and send a synchronization response indicative of a server time associated with the one of the plurality of server fingerprints.

Claims (60)

1. A method comprising:

receiving, at a client device, a client feed comprising media content from a source device;

generating, by the client device, at least one client fingerprint for at least one segment of the received client feed;

sending a synchronization message comprising the at least one client fingerprint from the client device to a server device, wherein the server device is configured to identify a corresponding at least one server fingerprint generated by the server device for a corresponding segment of a server feed that matches the at least one client fingerprint;

receiving, at the client device, a synchronization response from the server device, the synchronization response comprising:

data indicative of a time difference between a server feed time associated with the identified at least one server fingerprint that matches the at least one client fingerprint and a client feed time associated with the at least one client fingerprint; and

an upcoming server time for an upcoming segment to be replaced; and

determining, by the client device, a replacement time of the client feed for the segment to be replaced based on at least the upcoming server time and the time difference; and

replacing, by the client device, the segment to be replaced in the client feed with a replacement advertisement at the replacement time.

2. The method of claim 1 , wherein the synchronization response from the server device further comprises a preceding server fingerprint of at least one frame that immediately precedes the upcoming server segment to be replaced.

3. The method of claim 2 , wherein determining, by the client device, the replacement time of the client feed for the segment to be replaced further comprises:

determining, by the client device, when the client device generates a corresponding preceding client fingerprint of the client feed that matches the preceding server fingerprint received from the server device.

4. The method of claim 1 , wherein the synchronization response from the server device further comprises a length of the segment to be replaced.

5. The method of claim 1 , further comprising:

retrieving, by the client device, the replacement advertisement in response to receiving the synchronization response from the server device.

6. The method of claim 1 , further comprising:

generating, by the client device, a sequence of client fingerprints for segments of the received client feed, each client fingerprint comprising a corresponding segment and a corresponding client feed time indicating when the corresponding segment was received by the client device.

7. The method of claim 6 , further comprising, in response to generating each client fingerprint:

sending a corresponding synchronization message comprising a most recent generated client fingerprint from the client device to the sever device; and

receiving, at the client device, a corresponding synchronization response from the server device.

8. A client device comprising:

a processing device;

a memory in communication with the processing device, wherein the memory stores instructions that, when executed by the processing device, cause the processing device to perform operations comprising:

receiving a client feed comprising media content from a source device;

generating at least one client fingerprint for at least one segment of the received client feed;

sending a synchronization message comprising the at least one client fingerprint from the client device to a server device, wherein the server device is configured to identify a corresponding at least one server fingerprint generated by the server device for a corresponding segment of a server feed that matches the at least one client fingerprint;

receiving a synchronization response from the server device, the synchronization response comprising:

data indicative of a time difference between a server feed time associated with the identified at least one server fingerprint that matches the at least one client fingerprint and a client feed time associated with the at least one client fingerprint; and

an upcoming server time for an upcoming segment to be replaced; and

determining a replacement time of the client feed for the segment to be replaced based on at least the upcoming server time and time difference; and

replacing the segment to be replaced in the client feed with a replacement advertisement at the replacement time.

9. The client device of claim 8 , wherein the synchronization response from the server device further comprises a preceding server fingerprint of at least one frame that immediately precedes the upcoming server segment to be replaced.

10. The client device of claim 9 , wherein determining the replacement time of the client feed for the segment to be replaced further comprises:

determining when the client device generates a corresponding preceding client fingerprint of the client feed that matches the preceding server fingerprint received from the server device.

11. The client device of claim 8 , wherein the synchronization response from the server device further comprises a length of the segment to be replaced.

12. The client device of claim 8 , wherein the operations further comprise:

retrieving the replacement advertisement in response to receiving the synchronization response from the server device.

13. The client device of claim 8 , wherein the operations further comprise:

generating a sequence of client fingerprints for segments of the received client feed, each client fingerprint comprising a corresponding segment and a corresponding client feed time indicating when the corresponding segment was received by the client device;

sending a corresponding synchronization message comprising a most recent generated client fingerprint from the client device to the sever device; and

receiving a corresponding synchronization response from the server device.

14. A non-transitory computer-readable medium comprising instruction which, when executed by a processing device in a client device, cause the processing device to perform operations comprising:

receiving a client feed comprising media content from a source device;

generating at least one client fingerprint for at least one segment of the received client feed;

sending a synchronization message comprising the at least one client fingerprint from the client device to a server device, wherein the server device is configured to identify a corresponding at least one server fingerprint generated by the server device for a corresponding segment of a server feed that matches the at least one client fingerprint;

receiving a synchronization response from the server device, the synchronization response comprising:

data indicative of a time difference between a server feed time associated with the identified at least one server fingerprint that matches the at least one client fingerprint and a client feed time associated with the at least one client fingerprint; and

an upcoming server time for an upcoming segment to be replaced; and

determining a replacement time of the client feed for the segment to be replaced based on at least the upcoming server time and time difference; and

replacing the segment to be replaced in the client feed with a replacement advertisement at the replacement time.

15. The non-transitory computer-readable medium of claim 14 , wherein the synchronization response from the server device further comprises a preceding server fingerprint of at least one frame that immediately precedes the upcoming server segment to be replaced.

16. The non-transitory computer-readable medium of claim 15 , wherein determining the replacement time of the client feed for the segment to be replaced further comprises:

determining when the client device generates a corresponding preceding client fingerprint of the client feed that matches the preceding server fingerprint received from the server device.

17. The non-transitory computer-readable medium of claim 14 , wherein the synchronization response from the server device further comprises a length of the segment to be replaced.

18. The non-transitory computer-readable medium of claim 14 , wherein the operations further comprise:

retrieving the replacement advertisement in response to receiving the synchronization response from the server device.

19. The non-transitory computer-readable medium of claim 14 , wherein the operations further comprise:

generating a sequence of client fingerprints for segments of the received client feed, each client fingerprint comprising a corresponding segment and a corresponding client feed time indicating when the corresponding segment was received by the client device;

sending a corresponding synchronization message comprising a most recent generated client fingerprint from the client device to the sever device; and

receiving, at the client device, a corresponding synchronization response from the server device.

Assignments (6)
SECURITY INTEREST Recorded Sep 18, 2024
From: ROKU, INC.
To: CITIBANK, N.A.
Reel/Frame 068982/0377 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT (REEL/FRAME 056982/0194) Recorded Feb 22, 2023
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROKU, INC.; ROKU DX HOLDINGS, INC.
Reel/Frame 062826/0664 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Jun 29, 2021
From: ROKU, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 056982/0194 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2021
From: THE NIELSEN COMPANY (US), LLC
To: ROKU, INC.
Reel/Frame 056106/0376 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2020
From: CORMIE, STEVEN M.
To: SORENSON MEDIA, INC.
Reel/Frame 053221/0125 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2020
From: SORENSON MEDIA, INC.
To: THE NIELSEN COMPANY (US), LLC
Reel/Frame 053221/0167 →