Dynamic video overlays
First Claim
1. A method for dynamically providing a video overlay, the method comprising:
- accessing, by one or more processors, a video input stream that includes first video content from a first content provider;
based on the first video content of the video input stream, selecting replacement video content for a video output stream, wherein the replacement video content of the video output stream is different from the first video content of the video input stream, wherein the replacement video content is selected in response to a video identification system receiving a query fingerprint from a query fingerprint generator of a client device and the video identification system identifying a match between the query fingerprint and at least one reference fingerprint generated by a reference fingerprint generator, wherein the query fingerprint is generated based on a frame of the first video content, and wherein the video identification system and the reference fingerprint generator are remote from the client device;
causing the replacement video content of the video output stream to be presented on a display of the client device;
while the display is presenting the replacement video content of the video output stream, determining, by the one or more processors, that a first change in the video input stream has occurred, wherein the first change indicates a change from the first content provider to a second content provider of the video input stream has occurred, wherein the video input stream includes second video content from the second content provider after the first change has occurred;
in response to determining the change from the first content provider to the second content provider has occurred, causing the second video content of the video input stream to be presented on the display instead of the replacement video content;
after causing the second video content of the video input stream to be presented on the display;
accessing, from a database, a template corresponding to a screen portion of the display for third video content generated by an intermediate device;
analyzing, by the one or more processors, the video input stream to determine that at least a portion of the third video content of a frame of the video input stream matches the template when the video input stream includes the first video content from the first content provider and the third video content generated by the intermediate device, wherein the third video content is configured to be presented on the display to indicate an identity of the first content provider;
based on the at least the portion of the third video content of the frame of the video input stream matching the template, determining that a second change in the video input stream indicates a return to the first content provider of the video input stream; and
in response to the determination that the first content provider of the video input stream has been returned to;
modifying the video output stream to include the replacement video content and the third video content, andcausing a presentation of the replacement video content and the third video content of the modified video output stream on the display, wherein the third video content is presented as the video overlay on the replacement video content.
11 Assignments
0 Petitions
Accused Products
Abstract
A client device accesses a video input stream from an intermediate device for display. The client device analyzes the video input stream to determine that the video input stream matches a template indicating a change of content source. The analysis is performed while the client device is generating a video output stream that replaces video content received from a content source via the intermediate device. Based on the video input stream matching the template, the client device ceases replacement of the video input stream. The client device continues to analyze the video input stream and determines that the video input stream matches a second template indicating a return to the original content source. Based on the video input stream matching the second template, the client device resumes replacement of the video input stream.
78 Citations
20 Claims
-
1. A method for dynamically providing a video overlay, the method comprising:
-
accessing, by one or more processors, a video input stream that includes first video content from a first content provider; based on the first video content of the video input stream, selecting replacement video content for a video output stream, wherein the replacement video content of the video output stream is different from the first video content of the video input stream, wherein the replacement video content is selected in response to a video identification system receiving a query fingerprint from a query fingerprint generator of a client device and the video identification system identifying a match between the query fingerprint and at least one reference fingerprint generated by a reference fingerprint generator, wherein the query fingerprint is generated based on a frame of the first video content, and wherein the video identification system and the reference fingerprint generator are remote from the client device; causing the replacement video content of the video output stream to be presented on a display of the client device; while the display is presenting the replacement video content of the video output stream, determining, by the one or more processors, that a first change in the video input stream has occurred, wherein the first change indicates a change from the first content provider to a second content provider of the video input stream has occurred, wherein the video input stream includes second video content from the second content provider after the first change has occurred; in response to determining the change from the first content provider to the second content provider has occurred, causing the second video content of the video input stream to be presented on the display instead of the replacement video content; after causing the second video content of the video input stream to be presented on the display; accessing, from a database, a template corresponding to a screen portion of the display for third video content generated by an intermediate device; analyzing, by the one or more processors, the video input stream to determine that at least a portion of the third video content of a frame of the video input stream matches the template when the video input stream includes the first video content from the first content provider and the third video content generated by the intermediate device, wherein the third video content is configured to be presented on the display to indicate an identity of the first content provider; based on the at least the portion of the third video content of the frame of the video input stream matching the template, determining that a second change in the video input stream indicates a return to the first content provider of the video input stream; and in response to the determination that the first content provider of the video input stream has been returned to; modifying the video output stream to include the replacement video content and the third video content, and causing a presentation of the replacement video content and the third video content of the modified video output stream on the display, wherein the third video content is presented as the video overlay on the replacement video content. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for dynamically providing a video overlay, the system comprising:
-
a memory that stores instructions; and one or more processors configured by the instructions to perform operations comprising; accessing a video input stream that includes first video content from a first content provider; based on the first video content of the video input stream, selecting replacement video content for a video output stream, wherein the replacement video content of the video output stream is different from the first video content of the video input stream, wherein the replacement video content is selected in response to a video identification system receiving a query fingerprint from a query fingerprint generator of a client device and the video identification system identifying a match between the query fingerprint and at least one reference fingerprint generated by a reference fingerprint generator, wherein the query fingerprint is generated based on a frame of the first video content, and wherein the video identification system and the reference fingerprint generator are remote from the client device; causing the replacement video content of the video output stream to be presented on a display of the client device; while the display is presenting the replacement video content of the video output stream, determining, by the one or more processors, that a first change in the video input stream has occurred, wherein the first change indicates a change from the first content provider to a second content provider of the video input stream has occurred, wherein the video input stream includes second video content from the second content provider after the first change has occurred; in response to determining the change from the first content provider to the second content provider has occurred, causing the second video content of the video input stream to be presented on the display instead of the replacement video content; after causing the second video content of the video input stream to be presented on the display; accessing, from a database, a template corresponding to a screen portion of the display for third video content generated by an intermediate device; analyzing the video input stream to determine that at least a portion of the third video content of a frame of the video input stream matches the template when the video input stream includes the first video content from the first content provider and the third video content generated by the intermediate device, wherein the third video content is configured to be presented on the display to indicate an identity of the first content provider; based on the at least the portion of the third video content of the frame of the video input stream matching the template, determining that a second change in the video input stream indicates a return to the first content provider of the video input stream; and in response to the determination that the first content provider of the video input stream has been returned to; modifying the video output stream to include the replacement video content and the third video content, and causing a presentation of the replacement video content and the third video content of the modified video output stream on the display, wherein the third video content is presented as the video overlay on the replacement video content. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory machine-readable medium that stores instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
-
accessing a video input stream that includes first video content from a first content provider; based on the first video content of the video input stream, selecting replacement video content for a video output stream, wherein the replacement video content of the video output stream is different from the first video content of the video input stream, wherein the replacement video content is selected in response to a video identification system receiving a query fingerprint from a query fingerprint generator of a client device and the video identification system identifying a match between the query fingerprint and at least one reference fingerprint generated by a reference fingerprint generator, wherein the query fingerprint is generated based on a frame of the first video content, and wherein the video identification system and the reference fingerprint generator are remote from the client device; causing the replacement video content of the video output stream to be presented on a display of the client device; while the display is presenting the replacement video content of the video output stream, determining, by the one or more processors, that a first change in the video input stream has occurred, wherein the first change indicates a change from the first content provider to a second content provider of the video input stream has occurred, wherein the video input stream includes second video content from the second content provider after the first change has occurred; in response to determining the first change from the first content provider to the second content provider has occurred, causing the second video content of the video input stream to be presented on the display instead of the replacement video content; after causing the second video content of the video input stream to be presented on the display; accessing, from a database, a template corresponding to a screen portion of the display for third video content generated by an intermediate device; analyzing the video input stream to determine that at least a portion of the third video content of a frame of the video input stream matches the template when the video input stream includes the first video content from the first content provider and the third video content generated by the intermediate device, wherein the third video content is configured to be presented on the display to indicate an identity of the first content provider; based on the at least the portion of the third video content of the frame of the video input stream matching the template, determining that a second change in the video input stream indicates a return to the first content provider of the video input stream; and in response to the determination that the first content provider of the video input stream has been returned to; modifying the video output stream to include the replacement video content and the third video content, and causing a presentation of the replacement video content and the third video content of the modified video output stream on the display, wherein the third video content is presented as a video overlay on the replacement video content. - View Dependent Claims (18, 19, 20)
-
Specification