Synchronous video content collaboration across multiple clients in a distributed collaboration system
US-11178446-B2 · Nov 16, 2021 · US
US11910048B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11910048-B2 |
| Application number | US-202117527157-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 15, 2021 |
| Priority date | Mar 9, 2020 |
| Publication date | Feb 20, 2024 |
| Grant date | Feb 20, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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 from a first client-side node 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.
Opening claim text (preview).
What is claimed is: 1. A method including: designating, at a server, a first client node as a leader node; receiving, from the leader node, designation of a video to be synchronously played at a plurality of client nodes; storing, at the server, an index table comprising sequential frame numbers and corresponding display time stamps for the video with each sequential frame number, of the sequential frame numbers, identifying a particular frame of the video; receiving, at the server and from the first client node, a sync video message identifying a sync video event 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 index 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 identifying respective sync video events 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 from the first client node in the plurality of client nodes 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 index 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 from the first client node identifying a pause video event including a pause event time to pause play of the video at the first client node; 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 from the first client node identifying a seek video event including a seek event time to seek a frame in the video at the first client node; 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 from the first client node identifying a resume video event including a resume event time to resume play of the video at the first client node; 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 on the first client node; 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 8 , including: changing the designated leader node for the video from the first client node to another client node in the follower set. 10. The method of claim 1 , further including: receiving, at the server, a stop video message from the first client node identifying a stop video event including a stop event time to stop play of the video at the first client node; 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. 11. A non-transitory computer readable storage medium impressed with computer progra
Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen · CPC title
Synchronisation processes, e.g. processing of PCR [Programme Clock References] {(arrangements for synchronising broadcast or distribution via plural systems in broadcast distribution systems H04H20/18)} · CPC title
by decomposing the content in the time domain, e.g. in time segments · CPC title
Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals (home Audio Video Interoperability [HAVI] data switching networks H04L12/2805) · CPC title
directed to client · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.