IP Library Patent Application 18414254
Patent Application
App. No. 18/414,254

SYNCHRONIZING VIDEO CONTENT AMONG CLIENTS IN A COLLABORATION SYSTEM

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 None
App. No.
18/414,254
Abstract

Systems and techniques are provided for synchronizing playback of a video at a plurality of client-side nodes in a network including a server-side node and the plurality of client-side nodes. The system includes logic to receive a sync video message at the server identifying a sync event time. The system includes logic to map the sync event time at the server to a sync frame identifier. The server sends a follower sync video message to a follower set of one or more other client-side nodes including the sync frame identifier. In response to the follower sync video message the one or more client-side nodes in the follower set can synchronize playing the video at a frame corresponding to the sync frame identifier.

Claims (84)

1 . A method including:

storing, at a server, a table comprising sequential frame numbers and corresponding display time stamps for a video to be synchronously played at a plurality of client nodes, with each sequential frame number, of the sequential frame numbers, identifying a particular frame of the video;

receiving, at the server, a sync video message including a sync event time, wherein playback of the video is to be synchronized to the sync event time at one or more other client nodes in a follower set;

using, at the server, a mapping result prepared from the table stored at the server, wherein the mapping result maps the sync event time to a sync frame identifier, the sync frame identifier including one sequential frame number for the video; and

sending, from the server, a follower sync video message to the one or more other client nodes in the follower set, the follower sync video message including the sync frame identifier, such that, in response to receiving the follower sync video message, the one or more other client nodes in the follower set can synchronize playback of the video at a frame corresponding to the frame number included in the sync frame identifier.

2 . The method of claim 1 , including:

receiving, at the server, a sequence of sync video messages including the sync video message, the sequence of sync video messages including respective sync event times; and

sending, from the server and to the one or more other client nodes in the follower set, a sequence of follower sync video messages, including the sync video message.

3 . The method of claim 1 , further including:

executing an API at the server for the sync video message and the follower sync video message.

4 . The method of claim 1 , further including:

receiving, at the server, a load video message identifying a load video event including an identifier of the video; and

sending, from the server, a follower load video message to the one or more other client nodes in the follower set, the follower load video message including data identifying the video, in response to which the video can be downloaded at the one or more other client nodes.

5 . The method of claim 4 , further including:

receiving, at the server and from client nodes of the plurality of client nodes, acknowledgement messages after the sending of the follower load video message; and

listing client nodes in the follower set of the one or more other client nodes in response to receipt of the acknowledgement messages within a pre-determined cut-off time interval.

6 . The method of claim 4 , further including:

composing the table comprising sequential frame numbers and corresponding display time stamps for the video in response to the load video event, wherein

the display time stamps are presentation time stamps and represent relative display times.

7 . The method of claim 1 , further including:

using a system configured for displaying views of a workspace on an interactive workspace display or an interactive display in a network including the server and the plurality of client nodes; and

delivering, from the server to client nodes of the plurality of client nodes, at least part of a log of entries to identify events in the workspace, the events identified by the entries in the log being related to graphical targets having coordinates within the workspace including a graphical object representing the video, wherein an entry in the log, which identifies an event, comprises data specifying coordinates of a location within the workspace of the graphical target related to the event, wherein a target identifier of the graphical target related to the event is to be displayed on a display of a client node and the target identifier includes a link to the video.

8 . The method of claim 1 , further including:

receiving, at the server, a pause video message including a pause event time to pause play of the video;

mapping, at the server, the pause event time to a pause frame identifier; and

sending, from the server, a follower pause video message to the one or more other client nodes in the follower set including the pause frame identifier, in response to which the one or more other client nodes in the follower set can synchronize pausing the video at a frame corresponding to the pause frame identifier;

receiving, at the server, a seek video message identifying a seek video event including a seek event time to seek a frame in the video;

mapping, at the server, the seek event time to a seek frame identifier; and

sending, from the server, a follower seek video message to the one or more other client nodes in the follower set including the seek frame identifier, in response to which the one or more other client nodes in the follower set can synchronize seeking the video at a frame corresponding to the seek frame identifier;

receiving, at the server, a resume video message including a resume event time to resume play of the video;

mapping, at the server, the resume event time to a resume frame identifier; and

sending, from the server, a follower resume video message to the one or more other client nodes in the follower set including the resume frame identifier, in response to which the one or more other client nodes in the follower set can synchronize resuming play of the video at a frame corresponding to the resume frame identifier;

receiving, at the server, an ask video message from an additional client node to enable synchronized playback of the video at the additional client node; and

sending, from the server, a next follower sync video message in a sequence of follower sync video messages, in response to which the additional client node can synchronize playing the video at a frame corresponding to the sync frame identifier;

receiving, at the server, a late video message from one of the client nodes in the follower set to synchronize playback of the video at the one of the client nodes in the follower set after the playback of the video has started; and

sending, from the server, a next follower sync video message in the sequence of follower sync video messages, in response to which the one of the client nodes in the follower set can synchronize playing the video at a frame corresponding to the sync frame identifier.

9 . The method of claim 1 , further including:

receiving, at the server, a stop video message identifying a stop event time to stop play of the video;

mapping, at the server, the stop event time to a stop frame identifier; and

sending, from the server, a follower stop video message to the one or more other client nodes in the follower set including the stop frame identifier, in response to which the one or more other client nodes in the follower set can synchronize stopping play of the video at a frame corresponding to the stop frame identifier.

10 . The method of claim 1 , wherein the table is an index table.

11 . A non-transitory computer readable storage medium impressed with computer program instructions, the instructions, when executed, implementing a method including:

storing, at a server, a table comprising sequential frame numbers and corresponding display time stamps for a video to be synchronously played at a plurality of client nodes, with each sequential frame number, of the sequential frame numbers, identifying a particular frame of the video;

receiving, at the server, a sync video message including a sync event time, wherein playback of the video is to be synchronized to the sync event time at one or more other client nodes in a follower set;

using, at the server, a mapping result prepared from the table stored at the server, wherein the mapping result maps the sync event time to a sync frame identifier, the sync frame identifier including one sequential frame number for the video; and

sending, from the server, a follower sync video message to the one or more other client nodes in the follower set, the follower sync video message including the sync frame identifier, such that, in response to receiving the follower sync video message, the one or more other client nodes in the follower set can synchronize playback of the video at a frame corresponding to the frame number included in the sync frame identifier.

12 . The non-transitory computer readable storage medium of claim 11 , wherein the table is an index table.

13 . A system including one or more processors including or having access to memory loaded with computer instructions, the instructions, when executed on the one or more processors, implementing actions comprising:

storing, at a server, a table comprising sequential frame numbers and corresponding display time stamps for a video to be synchronously played at a plurality of client nodes, with each sequential frame number, of the sequential frame numbers, identifying a particular frame of the video;

receiving, at the server, a sync video message including a sync event time, wherein playback of the video is to be synchronized to the sync event time at one or more other client nodes in a follower set;

using, at the server, a mapping result prepared from the table stored at the server, wherein the mapping result maps the sync event time to a sync frame identifier, the sync frame identifier including one sequential frame number for the video; and

sending, from the server, a follower sync video message to the one or more other client nodes in the follower set, the follower sync video message including the sync frame identifier, such that, in response to receiving the follower sync video message, the one or more other client nodes in the follower set can synchronize playback of the video at a frame corresponding to the frame number included in the sync frame identifier.

14 . The system of claim 13 , further implementing actions comprising:

receiving, at the server, a sequence of sync video messages including the sync video message, the sequence of sync video messages including respective sync event times; and

sending, from the server and to the one or more other client nodes in the follower set, a sequence of follower sync video messages, including the sync video message.

15 . The system of claim 13 , further implementing actions comprising:

executing an API at the server for the sync video message and the follower sync video message.

16 . The system of claim 15 , the API further implementing actions comprising:

receiving, at the server, a load video message including an identifier of the video; and

sending, from the server, a follower load video message to the one or more other client nodes in the follower set, the follower load video message including data identifying the video, in response to which the video can be downloaded at the one or more other client nodes.

17 . The system of claim 16 , the API further implementing actions comprising:

receiving, at the server and from client nodes of the plurality of client nodes, acknowledgement messages after the sending of the follower load video message; and

listing client nodes in the follower set of the one or more other client nodes in response to receipt of the acknowledgement messages within a pre-determined cut-off time interval.

18 . The system of claim 16 , further implementing actions comprising:

composing the table comprising sequential frame numbers and corresponding display time stamps for the video in response to the load video message, wherein

the display time stamps are presentation time stamps and represent relative display times.

19 . The system of claim 15 , the API further implementing actions comprising:

receiving, at the server, a pause video message including a pause event time to pause play of the video;

mapping, at the server, the pause event time to a pause frame identifier; and

sending, from the server, a follower pause video message to the one or more other client nodes in the follower set including the pause frame identifier, in response to which the one or more other client nodes in the follower set can synchronize pausing the video at a frame corresponding to the pause frame identifier;

receiving, at the server, a seek video message including a seek event time to seek a frame in the video;

mapping, at the server, the seek event time to a seek frame identifier; and

sending, from the server, a follower seek video message to the one or more other client nodes in the follower set including the seek frame identifier, in response to which the one or more other client nodes in the follower set can synchronize seeking the video at a frame corresponding to the seek frame identifier;

receiving, at the server, a resume video message including a resume event time to resume play of the video;

mapping, at the server, the resume event time to a resume frame identifier; and

sending, from the server, a follower resume video message to the one or more other client nodes in the follower set including the resume frame identifier, in response to which the one or more other client nodes in the follower set can synchronize resuming play of the video at a frame corresponding to the resume frame identifier;

receiving, at the server, a stop video message including a stop event time to stop play of the video;

mapping, at the server, the stop event time to a stop frame identifier; and

sending, from the server, a follower stop video message to the one or more other client nodes in the follower set including the stop frame identifier, in response to which the one or more other client nodes in the follower set can synchronize stopping play of the video at a frame corresponding to the stop frame identifier;

receiving, at the server, an ask video message from an additional client node to enable synchronized playback of the video at the additional client node; and

sending, from the server, a next follower sync video message in a sequence of follower sync video messages to the additional client node, in response to which the additional client node can synchronize playing the video at a frame corresponding to the sync frame identifier;

receiving, at the server, a late video message from one of the client nodes in the follower set to synchronize playback of the video at the one of the client nodes in the follower set after the playback of the video has started; and

sending, from the server, a next follower sync video message in the sequence of follower sync video messages to the additional client node, in response to which the one of the client nodes in the follower set can synchronize playing the video at a frame corresponding to the sync frame identifier.

20 . The system of claim 13 , wherein the table is an index table.

Assignments (3)
INTELLECTUAL PROPERTY ASSIGNMENT AGREEMENT Recorded Oct 14, 2024
From: THOUGHT STREAM LLC; HAWORTH, INC.
To: BLUESCAPE BUYER, LLC
Reel/Frame 069163/0654 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2024
From: HAWORTH, INC.
To: BLUESCAPE BUYER LLC (DBA BLUESCAPE)
Reel/Frame 069082/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2024
From: KIRYANOV, YURI; CHANDA, RUPEN
To: HAWORTH, INC.
Reel/Frame 066182/0101 →