IP Library › Granted Patent US 11,461,535
Granted Patent B2
US 11,461,535 · App. 16/885,048 · Granted Oct 4, 2022

Video buffering for interactive videos using a markup language

Inventor: Shankar Sangoli (Langhorne, PA)
Assignee: Bank of America Corporation
G06F40/143G06F3/0481G06T13/80H04L65/60H04N21/44004G06F9/451
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,461,535
App. No.
16/885,048
Granted
Oct 4, 2022
Kind
B2
Abstract

A device configured to receive a video request that includes source scene information for generating the plurality of video scenes for a Hypertext Markup Language (HTML) video. For each video scene, the device is configured to identify a video scene from the source scene information and to assign a video scene entry in a video timing map to the identified video scene. The device is further configured to identify animation instructions for animations associated with the identified video scene from the source scene information and to populate the video scene entry in the video timing map based on the animation instructions for the animations that are associated with the identified video scene. The device is further configured to output the video timing map.

Claims (105)

1. An interactive video generating device, comprising:

a hardware network interface configured to receive video request comprising source scene information and animation instructions, wherein:

the source scene information comprises instructions for generating a plurality of video scenes for a Hypertext Markup Language (HTML) video; and

the animation instructions identify animations associated with video scenes from among the plurality of video scenes; and

a processor operably coupled to the hardware network interface, and configured to:

receive a video request for generating the plurality of video scenes for the HTML video;

for each video scene from the plurality of video scenes:

identify a video scene from the source scene information, wherein:

the video scene comprises one or more elements that are interactable by a user;

the one or more elements comprise a button, a slider, a switch, and a text field; and

while the video scene is playing and when the user interacts with a particular element from among the one or more elements, the video scene is modified based at least in part upon a type of interaction with the particular element, such that the efficiency of providing context to the user is improved;

assign a video scene entry in a video timing map to the identified video scene, wherein assigning the video scene entry to the identified video scene comprises populating the video scene entry with:

a source scene identifier for the identified video scene;

a start time that identifies a time on a progress bar when the identified video scene is scheduled to play;

a run time that identifies an amount of time it takes for the identified video scene to play; and

HTML code for the identified video scene;

identify animation instructions for animations associated with the identified video scene from the source scene information;

populate the video scene entry in the video timing map based on the animation instructions for the animations that are associated with the identified video scene, wherein populating the video scene entry in the video timing map based on the animation instructions comprises:

generating a plurality of animation entries that each identifies:

 an animation identifier that identifies an animation within the identified video scene; and

 a timestamp that identifies a time when the animation is scheduled to play with respect to other animations for the identified video scene;

setting a timestamp for a first animation scheduled to play in the identified video scene to a value of zero seconds; and

setting subsequent timestamps for animation entries to a value in seconds based on a run time of preceding animations;

determine a runtime duration for the identified video scene based on timestamps for animations that are associated with the identified video scene; and

update the run time in the video scene entry based on the determined run time duration; and

output the video timing map.

2. The device of claim 1 , wherein the processor is further configured to:

identify a first video scene entry for a first video scene in the video timing map;

render the first video scene by compiling HTML code that is associated with the first video scene;

display the first video scene on a graphical user interface;

identify a second video scene entry for a second video scene the video timing map, wherein the second video scene is configured to play after the first video scene; and

render the second video scene after displaying at least a portion of the first video scene.

3. The device of claim 2 , wherein the processor is further configured to play the first video scene before the second video scene has finished rendering.

4. The device of claim 1 , wherein the processor is further configured to:

determine a total run time for the HTML video based on the video timing map;

generate the progress bar for the HTML video based on the video timing map and the total run time for the HTML video; and

display the progress bar that is mapped to the total run time for the HTML video.

5. The device of claim 1 , wherein outputting the video timing map comprises storing the video timing map in a memory.

6. An interactive video generating method, comprising:

receiving a video request that comprises source scene information for generating a plurality of video scenes for a Hypertext Markup Language (HTML) video and animation instructions that identify animations associated with video scenes from among the plurality of video scenes;

for each video scene from the plurality of video scenes:

identifying a video scene from the source scene information, wherein:

the video scene comprises one or more elements that are interactable by a user;

the one or more elements comprise a button, a slider, a switch, and a text field; and

while the video scene is playing and when the user interacts with a particular element from among the one or more elements, the video scene is modified based at least in part upon a type of interaction with the particular element, such that the efficiency of providing context to the user is improved;

assigning a video scene entry in a video timing map to the identified video scene, wherein assigning the video scene entry to the identified video scene comprises populating the video scene entry with:

a source scene identifier for the identified video scene;

a start time that identifies a time on a progress bar when the identified video scene is scheduled to play;

a run time that identifies an amount of time it takes for the identified video scene to play; and

HTML code for the identified video scene;

identifying animation instructions for animations associated with the identified video scene from the source scene information;

populating the video scene entry in the video timing map based on the animation instructions for the animations that are associated with the identified video scene, wherein populating the video scene entry in the video timing map based on the animation instructions comprises:

generating a plurality of animation entries that each identifies:

an animation identifier that identifies an animation within the identified video scene; and

a timestamp that identifies a time when the animation is scheduled to play with respect to other animations for the identified video scene;

setting a timestamp for the first animation scheduled to play in the identified video scene to a value of zero seconds; and

setting subsequent timestamps for animation entries to a value in seconds based on a run time of preceding animations;

determining a runtime duration for the identified video scene based on timestamps for animations that are associated with the identified video scene; and

updating the run time in the video scene entry based on the determined run time duration; and

outputting the video timing map.

7. The method of claim 6 , further comprising:

identifying a first video scene entry for a first video scene in the video timing map;

rendering the first video scene by compiling HTML code that is associated with the first video scene;

displaying the first video scene on a graphical user interface;

identifying a second video scene entry for a second video scene the video timing map, wherein the second video scene is configured to play after the first video scene; and

rendering the second video scene after displaying at least a portion of the first video scene.

8. The method of claim 7 , further comprising playing the first video scene before the second video scene has finished rendering.

9. The method of claim 6 , further comprising:

determining a total run time for the HTML video based on the video timing map;

generating the progress bar for the HTML video based on the video timing map and the total run time for the HTML video; and

displaying the progress bar that is mapped to the total run time for the HTML video.

10. The method of claim 6 , wherein outputting the video timing map comprises storing the video timing map in a memory.

11. A computer program comprising executable instructions stored in a non-transitory computer readable medium that when executed by a processor causes the processor to:

receive a video request that comprises source scene information for generating a plurality of video scenes for a Hypertext Markup Language (HTML) video and animation instructions that identify animations associated with video scenes from among the plurality of video scenes;

for each video scene from the plurality of video scenes:

identify a video scene from the source scene information, wherein:

the video scene comprises one or more elements that are interactable by a user;

the one or more elements comprise a button, a slider, a switch, and a text field; and

while the video scene is playing and when the user interacts with a particular element from among the one or more elements, the video scene is modified based at least in part upon a type of interaction with the particular element, such that the efficiency of providing context to the user is improved;

assign a video scene entry in a video timing map to the identified video scene, wherein assigning the video scene entry to the identified video scene comprises populating the video scene entry with:

a source scene identifier for the identified video scene;

a start time that identifies a time on a progress bar when the identified video scene is scheduled to play;

a run time that identifies an amount of time it takes for the identified video scene to play; and

HTML code for the identified video scene;

identify animation instructions for animations associated with the identified video scene from the source scene information;

populate the video scene entry in the video timing map based on the animation instructions for the animations that are associated with the identified video scene, wherein populating the video scene entry in the video timing map based on the animation instructions comprises:

generating a plurality of animation entries that each identifies:

an animation identifier that identifies an animation within the identified video scene; and

a timestamp that identifies a time when the animation is scheduled to play with respect to other animations for the identified video scene;

setting a timestamp for a first animation scheduled to play in the identified video scene to a value of zero seconds; and

setting subsequent timestamps for animation entries to a value in seconds based on a run time of preceding animations;

determine a runtime duration for the identified video scene based on the time stamps for animation that are associated with the identified video scene;

update the run time in the video scene entry based on the determined run time duration; and

output the video timing map.

12. The computer program of claim 11 , further comprising instructions that when executed by the processor causes the processor to:

identify a first video scene entry for a first video scene in the video timing map;

render the first video scene by compiling HTML code that is associated with the first video scene;

display the first video scene on a graphical user interface;

identify a second video scene entry for a second video scene the video timing map, wherein the second video scene is configured to play after the first video scene; and

render the second video scene after displaying at least a portion of the first video scene.

13. The computer program of claim 12 , further comprising instructions that when executed by the processor causes the processor to play the first video scene before the second video scene has finished rendering.

14. The computer program of claim 11 , further comprising instructions that when executed by the processor causes the processor to:

determine a total run time for the HTML video based on the video timing map;

generate the progress bar for the HTML video based on the video timing map and the total run time for the HTML video; and

display the progress bar that is mapped to the total run time for the HTML video.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2020
From: SANGOLI, SHANKAR
To: BANK OF AMERICA CORPORATION
Reel/Frame 052766/0289 →
Continuity (1)
Related Publication 20210374328A1 · Dec 2, 2021
Cited By (2)
US 12,645,473 US 12,717,598