Collaborative video recording
Through reference clock synchronization technology, the problem of misalignment of timestamps recorded by different devices is solved, and time stamp synchronization and shared timeline generation between devices are realized, which is convenient for the integration and playback of video data.
Patent Information
- Application Number
- CN202380066331.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-09-15
- Filing Date
- 2023-09-19
- Publication Date
- 2025-07-22
AI Technical Summary
In large-scale activities, due to system clock deviations of different mobile computing devices, the recorded video timestamps are not aligned and difficult to synchronize and integrate.
The reference clock synchronization technology is adopted to provide synchronization codes to the device through a collaborative video recording system to ensure that the device clock is synchronized with the reference clock, and generate a shared timeline to synchronize the time stamp of the video recording device.
The time stamp synchronization of video recorded by different devices is realized, and a unified shared timeline is generated to facilitate the integration and playback of subsequent video data.
Smart Images

Figure CN120359759A_ABST
Abstract
Description
Background Art
[0001] Large events and gatherings often have many attendees recording videos throughout the event. Each of these attendees can store and share portions of these videos with individual friends or via social media posts. The event host can request that the attendees transmit their videos for collection for subsequent organization or viewing. The event host can attempt to determine the relative timing of each video based on the metadata associated with the corresponding video.
[0002] The different videos provided by different attendees may indicate timestamps. However, each of these timestamps may be based on the different system clocks of different mobile computing devices. The different system clocks may be affected by different clock drifts, such that the corresponding timestamps on different videos may not necessarily be aligned. Thus, a particular point in time may be represented by different timestamps on different videos. Summary of the Invention
[0003] Various systems and methods for synchronizing devices in a collaborative video recording session are described herein. A base station computer can be configured as a collaborative video recording system for managing a collaborative video recording session among these devices. The collaborative video recording system can include a reference clock, which can be a reference clock for these devices. These devices can be synchronized to the reference clock such that videos recorded by one device are synchronized in time to other devices that are also synchronized to the reference clock. The collaborative video recording system can be configured to provide information that can configure these devices to participate in the collaborative video recording session. The collaborative video recording system can provide a synchronization code to these devices. For example, the synchronization code can be presented on a display device connected to the collaborative video recording system.
[0004] These devices can detect the synchronization code via any capable input device coupled to these devices. These devices can capture an image of the synchronization code via a camera. These devices can utilize one or more processors to process the image to analyze the synchronization code to extract data from the captured image. For example, these devices can interpret the synchronization code to determine the current time of the reference clock. The synchronization code can also include other information indicating the collaborative video recording session. These devices can register in the collaborative video recording session based on the information encoded in the synchronization code.
[0005] These devices may include an image capture device (such as a camera) configured to record video. These devices may include a system clock configured to maintain the current system time. When recording video, the current system time may be stored with the video as metadata indicating that a particular time point of the video coincides with a particular time point of the system clock that has been synchronized with the reference clock. For example, the metadata may indicate that recording of the video was initiated at a particular time point. The particular time point may be expressed in a format including the current date and time (such as ISO 8601 format or Unix time).
[0006] During or after the collaborative video recording session, these devices may transmit the recorded video to the collaborative video recording system. The collaborative video recording system may generate a shared timeline that includes references to each of the recorded videos in the recorded videos. The shared timeline may indicate which videos have data for different time points. A client may select a particular time point and retrieve any or all of the videos that have data for that particular time point.
[0007] In one aspect, a system for managing a collaborative video recording session is described. The system may include a reference clock configured to track a reference time. The system may include one or more processors and a memory storing instructions that, when executed on or across the one or more processors, cause the one or more processors to implement a collaborative video system. The collaborative video system may provide a synchronization code for a collaborative video recording session to a plurality of recording devices. The collaborative video system may identify the plurality of recording devices as participants in the collaborative video recording session based on providing the synchronization code to the plurality of recording devices. The collaborative video system may coordinate the execution of the collaborative video recording session. The collaborative video recording session may include broadcasting one or more synchronization signals to synchronize the plurality of recording devices to the reference time tracked by the reference clock. The collaborative video recording session may include receiving a plurality of videos from the plurality of recording devices, where the plurality of videos include timestamps based on synchronization to the reference time. The collaborative video recording session may include generating a shared timeline for the plurality of videos, where the shared timeline synchronizes the timestamps among the plurality of videos.
[0008] In another aspect, a method for managing a collaborative video recording session is described. The method may include providing a synchronization code for a collaborative video recording session managed by a collaborative video system to a plurality of recording devices from the collaborative video system. The method may include identifying the plurality of mobile devices as participants in the collaborative video recording session based on providing the synchronization code to the plurality of mobile devices. The method may further include coordinating the execution of the collaborative video recording session. The collaborative video recording session synchronizes the plurality of recording devices to a reference time tracked by a reference clock. The collaborative video recording session may further include receiving a plurality of videos from the plurality of recording devices, wherein the plurality of videos include time stamps based on synchronization to the reference time. The collaborative video recording session may further include generating a shared timeline for the plurality of videos, wherein the shared timeline synchronizes the time stamps among the plurality of videos.
[0009] In yet another aspect, one or more computer-readable storage media for managing a collaborative video recording session are described. The one or more computer-readable storage media store instructions that, when executed on one or more processors or across one or more processors, cause the one or more processors to perform operations. The operations may include generating a synchronization code for a collaborative video recording session based on a reference clock to be synchronized to a plurality of recording devices. The operations may include providing the synchronization code to the plurality of recording devices. The operations may include identifying the plurality of recording devices as participants in the collaborative video recording session based on providing the synchronization code to a plurality of mobile devices. The operations may include coordinating the execution of the collaborative video recording session. The collaborative video recording session may include synchronizing the plurality of recording devices to a reference time tracked by a reference clock. The collaborative video recording session may include generating a shared timeline for the plurality of videos in response to receiving the plurality of videos from the plurality of recording devices, wherein the plurality of videos include time stamps based on synchronization to the reference time, and wherein the shared timeline synchronizes the time stamps among the plurality of videos. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Figure 1 A system diagram of a system for collaborative video recording according to some embodiments is illustrated.
[0011] Figure 2 An example diagram of a plurality of recording devices capturing video of a scene according to some embodiments.
[0012] Figure 3 An example diagram of a plurality of recording devices communicating with a collaborative video system according to some embodiments.
[0013] Figure 4 An interface for a shared timeline for a plurality of videos received from a plurality of users according to some embodiments is illustrated.
[0014] Figure 5 is a flowchart of a method for generating a shared timeline by a collaborative video system according to some embodiments.
[0015] Figure 6 is a flowchart of a method for a recording device participating in a collaborative video recording session according to some embodiments.
[0016] Figure 7 is a block diagram of various embodiments of a computer system that may include collaborative video recording.
[0017] Although the embodiments described in this disclosure may be subject to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will be described in detail herein. However, it should be understood that the drawings and the detailed description thereof are not intended to limit the embodiments to the particular forms disclosed, but rather are intended to cover all modifications, equivalents, and alternative forms that fall within the spirit and scope of the appended claims. Detailed Description
[0018] Figure 1 Illustrates a system diagram of a system 100 for collaborative video recording. According to some embodiments, system 100 may include a collaborative video recording system 110 and a plurality of recording devices, such as mobile computing devices 120a... 120n. According to various embodiments, the collaborative video recording system 110 may coordinate the execution of a collaborative video recording session. According to some embodiments, the collaborative video recording system 110 may include one or more hardware components that together form a computing device. According to some embodiments, each of the plurality of mobile computing devices 120a... 120n may include one or more hardware components.
[0019] According to some embodiments, the mobile computing device 120 may respectively include a display 122, a camera 124, and a device clock 126. The mobile computing device 120 may use the camera 124 to capture images, such as video 128 or image 129. The camera 124 may include a microphone or be coupled to a microphone for capturing audio to be included as part of the video 128. In some embodiments, the collaborative video recording system 110 may also coordinate video recording from other recording devices. For example, the collaborative video recording system 110 may also receive and manage timestamps for desktop computing devices, laptop computing devices, standalone camera devices, network cameras, etc. In some specific implementations, the mobile computing device 120 may include one or more of these types of devices for recording video to be synchronized with the collaborative video recording system 110.
[0020] The collaborative video recording system 110 may include a reference clock 112 configured to track a reference time. The reference clock 112 may be synchronized to other devices participating in a collaborative video recording session. In some embodiments, the reference clock 112 may be expressed in a format including the current date and time, such as the ISO 8601 format or Unix time. For example, the reference clock 112 may represent the time 00:09:41:07 and synchronize this time to other devices. The reference clock 112 may be set by the collaborative video recording system 110 for use across the devices (capturing video). The reference clock 112 may be used as a synchronization time reference to which the mobile computing device 120 synchronizes. In some cases, each of the mobile computing devices in the mobile computing device 120 has a certain level of manufacturing tolerance that may cause the device to drift over time when the device 120 operates alone. In some embodiments, the collaborative video recording system 110 may repeatedly reset the device clock 126 in response to each tick of the reference clock 112. For example, the devices 120 may share the same time reference according to the reference clock 112. The collaborative video recording system 110 may distribute reference timestamps on the time reference. In some cases, repeating pulses generate a rhythm, and the timestamps of the reference clock 112 are suitable for an established period.
[0021] Recording devices, such as the mobile computing device 120a, may initially not be registered or enrolled with the collaborative video recording system 110. The mobile computing device 120a may have one or more components configured to implement a device clock 126a to track the device time of the mobile computing device 120a. In some cases, the device clock 126a may initially not be synchronized with the reference clock 126. As an illustrative example, the device time indicated by the device clock 126a may be 00:09:41:31, while the reference time of the reference clock is 00:09:41:07. The mobile computing device 120 may enroll with the collaborative video recording system 110 to synchronize to the reference clock 112.
[0022] According to some embodiments, the mobile computing device 120b initiates a synchronization operation with the collaborative video recording system 110 to synchronize the mobile computing device 120b with the reference clock 112. As part of the synchronization operation, the mobile computing device 120b may obtain information from the collaborative video recording system 110. In some embodiments, the camera 124b of the mobile computing device 120b may capture an image of the identification information from the collaborative video recording system 110. For example, the camera 124b may capture the synchronization code 114, which is associated with the collaborative video recording system 110. In some implementations, the synchronization code 114 may be displayed on the display device of the collaborative video recording system 110. In other implementations, the synchronization code 114 may be displayed on an offline item (such as a printout, poster, or sign). In some embodiments, the synchronization code 114 may be used as part of an opt-in system such that only the mobile computing devices 120 of users who voluntarily wish to be included in the collaborative video recording session may be included.
[0023] According to some embodiments, the synchronization code 114 may include identification information for the collaborative video recording system 110. For example, the synchronization code 114 may include a system identifier for the collaborative video recording system 110. As another example, the synchronization code 114 may include an indication of the reference time to which the mobile computing device 120 is to be synchronized. As yet another example, the synchronization code 114 may include additional security information that the mobile computing device 120 may use to indicate that the video 128 and the image 129 are authorized to be included as part of the collaborative video session. In some embodiments, the synchronization code 114 may include destination information for the video 128 and the image 129. For example, the mobile computing device 120 may transmit the video to a video storage destination based on the destination information.
[0024] According to some embodiments, the mobile computing device 120b may obtain the synchronization code 114 and modify the device clock 126b to synchronize with the reference clock 112. For example, the device clock 126b may be synchronized with the reference clock 112 such that both the device clock 126b and the reference clock 112 indicate the current time 00:09:41:07. The display 122b may display a confirmation of the synchronization of the mobile computing device 120b with the collaborative video recording system 110. After synchronization, the mobile computing device 120b may record one or more videos 128b that include timestamps that have been synchronized to the reference clock 112. The mobile computing device 120b may capture one or more images 129b that include timestamps that have been synchronized to the reference clock 112. In some embodiments, one or more frames of the one or more videos 128 captured by the mobile computing device 120 may be synchronized at least in part based on the reference clock. For example, a particular frame may be captured in response to a tick of the device clock 126. Timestamps associated with the frames of the videos 128b or images 129b may facilitate synchronization between the respective frames captured by different mobile computing devices in the mobile computing device 120. In some embodiments, a pulse may cause one or more frames of the one or more videos 128 to be captured. For example, a clock tick or a timestamp may trigger the pulse.
[0025] According to some embodiments, registered mobile computing devices in the mobile computing device 120 may record videos 128 of portions of a collaborative video recording event from various perspectives or viewing angles. As an illustrative example, the registered mobile computing devices may include at least the mobile computing device 120c and the mobile computing device 120n. The mobile computing device 120c may include a camera 124c that is configured to capture a video 128c of a scene or environment. According to various embodiments, the video 128c may be displayed via the display 122b of the mobile computing device 120c. The mobile computing device 120n may include a camera 124n that is configured to capture a video 128n of the scene or environment from a perspective different from that of the mobile computing device 120c. According to various embodiments, the video 128n may be displayed via the display 122n of the mobile computing device 120n.
[0026] The collaborative video recording system 110 may transmit a synchronization signal 116 to registered mobile computing devices such as mobile computing devices 120b, 120c, and 120n. In some embodiments, the collaborative video recording system 110 may periodically or repeatedly transmit the synchronization signal 116 to the registered mobile computing devices to provide a current reference time, thereby ensuring that the respective frames from these devices are perceived as being captured at the same moment. The repeatedly provided current reference time may enable the registered mobile computing devices to maintain synchronization with the reference clock 112 in cases where the device clock 126 has a clock drift that may cause the device clock 126 to increment time at a different rate than the collaborative video recording system 110.
[0027] According to some embodiments, the collaborative video recording system 110 is connected to a network 160. For example, the network 160 may include one or more of a local area network or a wide area network that can be accessed by various computing devices. As another example, the network 160 may include a mobile network or a cellular network that can be accessed by various computing devices. According to some embodiments, the mobile computing device 120 may transmit one or more videos 128 in the video 128 to the collaborative video recording system 110 via the network 160. For example, the mobile computing device 120c may transmit the video 128c to the collaborative video recording system 110 via the network 160. The collaborative video recording system 110 may determine whether a particular video provided by a particular mobile computing device is authorized to be included as part of a collaborative video recording session.
[0028] According to some embodiments, the storage service 162 may store at least one video in the video 128 on behalf of the collaborative video recording system 110 or the mobile computing device 120. The storage service 162 may be indicated as part of the destination information included in the synchronization code 114. For example, the collaborative video recording system 110 may delegate the storage of the video 128 to the storage service 162. In some embodiments, the storage service 162 may include a cloud-based storage service. In other embodiments, the storage service 162 may include a network-accessible storage device. During or after a collaborative video recording session, the mobile computing device 120 may transmit the video 128 to the collaborative video recording system 110 and / or the storage service 162.
[0029] According to some embodiments, the storage service 162 may authorize the mobile computing device 120 based on registration in a collaborative video recording session. For example, the collaborative video recording system 110 may provide authentication information to the storage service 162 for verification against the authentication information provided by the mobile computing device 120. For example, the mobile computing device 120a may be restricted from uploading the video 128a to the collaborative video recording system 110 or the storage service 162 as part of a collaborative video recording session. As another example, the mobile computing devices 120b, 120c, or 120n may be authorized to upload the videos 128b, 128c, and 128n to the collaborative video recording system 110 or the storage service 162 based on authentication performed by the collaborative video recording system 110 or the storage service 162. In some embodiments, the mobile computing device 120 may communicate with the collaborative video recording system 110 or the storage service 162 using a peer-to-peer communication protocol between the mobile computing devices 120.
[0030] According to various embodiments, each of the mobile computing devices 120 may communicate with the collaborative video recording system 110 or the storage service 162 without communicating with other mobile computing devices 120. For example, the mobile computing device 120c may upload the video 128c to the storage service 162 without having to communicate with the mobile computing device 120n. In some implementations, each of the mobile computing devices 120 may not be aware that other mobile computing devices 120 are also participating in a collaborative video recording session. In other implementations, the mobile computing device 120 may access a version of a shared timeline that includes at least a portion of the videos 128 that have been provided by the mobile computing device 120.
[0031] Figure 2 is an example diagram of a plurality of mobile computing devices 220 capturing video 228 of a scene 210 according to some embodiments. According to various embodiments, the mobile computing devices 220 may each include a display 222, a camera 224, and a device clock 226. The scene 210 may include various objects 212, 214, and 216. The mobile computing devices 220 may each register with a collaborative video system (such as Figure 1 the collaborative video recording system 110).
[0032] The mobile computing device 220 can be synchronized to the reference clock of the collaborative video system. According to some embodiments, the mobile computing device 220 can record video 228 or capture images 229, and these videos or images include timestamps synchronized to the reference clock. For example, the video 228 and the images 229 can include metadata that indicates that a given timestamp corresponds to a corresponding time point relative to the reference clock. As another example, the device clocks 226a, 226b, 226c, and 226n are synchronized to the reference clock and are set to the same time.
[0033] The camera 224 can have a corresponding field of view 230 of the scene 210. For example, the camera 224a of the mobile computing device 220a has a field of view 230a of the scene 210. The display 222a of the mobile computing device 220a can include an image of the scene 210 as viewed according to the field of view 230a. As another example, each mobile computing device in the mobile computing device 220 can have a corresponding display 222 with a field of view 230 of the scene 210.
[0034] Based on the mobile computing device 220 being in different positions at a given time point, the video 228 can have different views of the scene 210. In some embodiments, the mobile computing device 220 can transmit the video 228 to a collaborative video recording system or a storage service based on the destination information provided by the collaborative video system.
[0035] Figure 3 FIG. is an example diagram of a system 300 for sending recorded images and videos from multiple mobile devices 320 to a storage destination of a collaborative video system 310 according to some embodiments. According to various embodiments, the collaborative video system 310 can coordinate the execution of a collaborative video recording session. According to some embodiments, the collaborative video system 310 can be coupled to a storage service 362 via a network 360. According to various embodiments, the mobile computing devices 320 can respectively include a display 322, a camera 324, and a device clock 326. The mobile computing devices 320 can each register with the collaborative video system 310.
[0036] The mobile computing device 220 can be synchronized to the reference clock of the collaborative video system. According to some embodiments, the mobile computing device 220 can record video 228 or capture images 229, and these videos or images include timestamps synchronized to the reference clock. For example, the video 228 and the images 229 can include metadata that indicates that a given timestamp corresponds to a corresponding time point relative to the reference clock. As another example, the device clocks 226a, 226b, 226c, and 226n are synchronized to the reference clock and are set to the same time.
[0037] According to some embodiments, during or after a collaborative video recording session, the mobile computing device 320 may transmit one or more of the video 328 or the image 329 to a destination as part of an image or video transmission 330. In some implementations, the destination of the image or video transmission 330 may be the collaborative video system 110. In other implementations, the destination of the image or video transmission 330 may be the storage service 362. In various embodiments, the collaborative video system 310 may indicate the destination to the mobile computing device 320 via a synchronization code or synchronization signal transmitted to the mobile computing device 320.
[0038] According to some embodiments, after the collaborative video session ends, the collaborative video system 310 may transmit a request 312 for images and videos to the mobile computing device 320. For example, the collaborative video system 310 may notify the mobile computing device 320 that the collaborative video session has ended and that any untransmitted video 328 or image 329 may be transmitted to the collaborative video system 310.
[0039] Figure 4 is a diagram illustrating an interface 400 including a timeline 402 of different videos of a collaborative video recording session. According to some embodiments, the interface 400 may be generated by a collaborative video system (such as Figure 1 the collaborative video recording system 110). According to some embodiments, the videos may be recorded by different mobile computing devices (such as Figure 1 the mobile computing device 120 or Figure 2 the mobile computing device 220).
[0040] According to some embodiments, the timeline 402 may indicate the start and the end of a collaborative video recording session 404. According to some embodiments, the timeline 402 may include user interface (UI) elements for selecting a time point to obtain a video having video data for the selected time point. For example, the timeline 402 may include a selection indicator 408 that may select a time point. In some implementations, the user may move the selection indicator 408 along the timeline to obtain a video for the selected time point. In other implementations, the user may enter the time point as a text entry. In still other implementations, the user may utilize an interactive element (such as a scroll wheel menu or a drop-down menu) configured to receive a time entry to enter the time point.
[0041] According to some embodiments, the interface 400 may include videos received from different users associated with different mobile computing devices. For example, a first user 410a may provide videos 412a and 414a, a second user 410b may provide videos 412b, 414b, and 416b, a third user 410c may provide videos 412c and 414c, and an Nth user may provide videos 410n and 414n. The number of users 410 or videos may vary according to different implementations.
[0042] According to some embodiments, the interface 400 may further include images received from different users associated with different mobile computing devices. For example, a first user 410a may provide an image 420a, a second user 410b may provide an image 420b, a third user may provide images 420b and 422c, and an Nth user may provide an image 420n. The number of images may vary according to different implementations.
[0043] According to some embodiments, based on the selection of a time point using the selection indicator 408, the interface 400 may provide a video including video data for that time point. As an illustrative example, the selection indicator 408 may be set to time 00:09:41:07. In some embodiments, the arrangement of the UI elements for the video may indicate the time range in which the video data exists in the corresponding video. The video including the video data for the selected time point may appear below the selection indicator 408 in the interface 400. In this example, videos 412a, 412b, 412c, and 414n include video data at 00:09:41:07.
[0044] According to some embodiments, the interface 400 may include views of videos 412a, 412b, 412c, and 414n. The interface 400 may further include video playback controls for viewing one or more of these videos. For example, videos 412a, 412b, 412c, and 414n may be viewed synchronously to show different camera angles of a scene. As another example, a single video (such as video 412a) may be viewed individually while other videos (such as videos 412b, 412c, and 414n) remain stopped or not played. In some implementations, the playback along the timeline 402 may display and hide different videos based on whether the video has video data for the current time point along the timeline 402. For example, based on the video reaching the end of its video data or not including video data for another time point, the video may be hidden. As another example, based on the video having video data for a given time point, the video may be presented during the playback of the timeline 402. In some cases, videos and images may have different resolution and quality settings. The interface 400 may provide one or more options for normalizing or resampling the videos and images so that the output video stream may be unified by resolution.
[0045] Figure 5 is a flowchart of a method 500 for generating a shared timeline by a collaborative video system according to some embodiments. According to some embodiments, method 500 may be performed by a collaborative video system (such as Figure 1 the collaborative video recording system 110).
[0046] Method 500 may include: at 502, generating, by the collaborative video system, a synchronization code for a collaborative video recording session managed by the collaborative video system, wherein the collaborative video system has a reference clock configured to track a reference time. According to some embodiments, the synchronization code may include information identifying the collaborative video system. In some embodiments, the synchronization code may include security information for authorizing a mobile computing device to access portions of the collaborative video system. The synchronization code may include an indication of the current reference time of the reference clock.
[0047] Method 500 may include: at 504, providing the synchronization code to a plurality of mobile computing devices, wherein the synchronization code configures the mobile computing devices to synchronize to the reference clock of the collaborative video system. In some embodiments, the collaborative video system may provide the synchronization code via a display device coupled to the collaborative video system. In other embodiments, the collaborative video system may provide the synchronization code to an output device configured to append the synchronization code to a tangible medium. For example, the collaborative video system may provide the synchronization code to a printer to print the synchronization code on paper. In other embodiments, the collaborative video system may transmit the synchronization code via a wireless communication protocol. For example, the collaborative video system may transmit the synchronization code to the mobile computing device via a network connection or a peer-to-peer connection.
[0048] Method 500 may further include: at 506, during the collaborative video recording session, broadcasting a synchronization signal to resynchronize the plurality of mobile computing devices. In some embodiments, the collaborative video system may periodically or repeatedly broadcast the synchronization signal to ensure that the mobile computing devices are synchronized to the reference clock. For example, a mobile computing device may receive the synchronization signal and verify that the device clock of the mobile computing device is synchronized. In some embodiments, the collaborative video system may broadcast the synchronization signal via a beacon signal. In other embodiments, the collaborative video system may broadcast the synchronization signal to the mobile computing devices via heartbeat communication over a network connection.
[0049] Method 500 may further include: at 508, receiving, from the plurality of mobile computing devices, a plurality of videos recorded during the collaborative video recording session, where the videos have timestamps synchronized to the reference clock. In some embodiments, during or after the collaborative video recording session, the mobile computing devices may transmit the videos to the collaborative video system. For example, when the collaborative video recording session is in progress, once a video is recorded, a given mobile computing device may upload the videos to the collaborative video system. As another example, when the given mobile computing device meets network conditions (e.g., connected to a Wi-Fi network), the given mobile computing device may wait until after the collaborative video recording session has ended before transmitting the videos. Different videos may be received from different mobile computing devices over a period of time.
[0050] Method 500 may further include: at 510, generating a shared timeline for the plurality of videos, the shared timeline synchronizing the timestamps among the plurality of videos. In some embodiments, the shared timeline may indicate which of the plurality of videos have content at a particular point in time relative to the reference clock. In some implementations, the particular point in time may be expressed as an absolute time value. In other implementations, the particular point in time may be expressed as a relative time value relative to the start of the collaborative video recording session.
[0051] Method 500 may further include: at 512, receiving, from a client, a request for a video recorded at a specified time during the collaborative video recording session. According to some embodiments, the client may transmit the request as part of a video management session. The request may include an indication of the specified time. In some embodiments, the request may be received on a timeline interface. In other embodiments, the request may be received as a text input for the specified time. According to some embodiments, the collaborative video system may identify a subset of videos based on the specified time. For example, the collaborative video system may identify videos that have recorded content at the specified time. The synchronized timestamps may indicate that a portion of a given video was recorded at the specified time. For example, a given video may include metadata that indicates the time range during which the video data was recorded.
[0052] Method 500 may further include: at 514, providing to the client a subset of the plurality of videos recorded at the specified time based on the corresponding timestamps of the specified time. According to some embodiments, the collaborative video system may provide an indication of the subset through a user interface that provides access to the videos for viewing through the client. In some embodiments, the collaborative video system may transmit the subset of videos to the client.
[0053] Figure 6is a flowchart of method 600 for a mobile computing device to participate in a collaborative video recording session according to some embodiments. According to some embodiments, the mobile computing device may be one of the mobile computing devices in mobile computing device 120 of Figure 1 or one of the mobile computing devices in mobile computing device 220 of Figure 2 . According to some embodiments, the collaborative video recording session may be managed by a collaborative video system (such as Figure 1 collaborative video recording system 110).
[0054] Method 600 may include: at 602, receiving, at the mobile computing device, a synchronization code for a collaborative video recording session managed by the collaborative video system. In some embodiments, the mobile computing device may include an image capture device configured to capture image data and video data of the environment. For example, the mobile computing device may include a camera. In some embodiments, the synchronization code may be embedded in a graphical representation or an image. For example, the synchronization code may be included as part of a QR code. In some embodiments, the camera of the mobile computing device may capture an image of the QR code to obtain the synchronization code from the collaborative video system. In other embodiments, the collaborative video system may provide the synchronization code via network communication between the collaborative system and the mobile computing device. The mobile computing device may interpret and apply the synchronization code after receiving it.
[0055] Method 600 may further include: at 604, registering the mobile computing device in the collaborative video recording session according to the synchronization code. In some embodiments, the mobile computing device may transmit a registration request to the collaborative video system. For example, the mobile computing device may generate the registration request based on at least a portion of the synchronization code. The collaborative video system may register the mobile computing device in response to the registration request.
[0056] Method 600 may further include: at 606, synchronizing the device clock of the mobile computing device with a reference clock of the collaborative video system according to the synchronization code. In some embodiments, the mobile computing device may modify the device clock based on a reference time tracked by the reference clock. For example, the synchronization code may indicate the current time of the reference clock. As another example, the synchronization code may provide access to the current time of the reference clock such that the mobile computing device may access the reference clock to determine the current time and thus set the device clock.
[0057] Method 600 may further include, at 608, during the collaborative video recording session, recording one or more videos, wherein timestamps of the one or more videos are synchronized with the reference clock. According to some embodiments, the mobile computing device may include a camera configured to capture image data and video data. The mobile computing device may include metadata of the image data or the video data, and the metadata may indicate a current time according to the device clock synchronized with the reference clock.
[0058] Method 600 may further include, at 610, during the collaborative video recording session, in response to one or more synchronization signals received from the collaborative video system, resynchronizing the device clock of the mobile computing device with the reference clock. In some embodiments, the collaborative video system may transmit synchronization signals periodically or repeatedly to resynchronize the mobile computing device to the reference clock. The mobile computing device may receive the synchronization signal and resynchronize the device clock with the reference clock. In some implementations, the mobile computing device may have an inherent clock offset in the device clock, and the inherent clock offset may need to be corrected to maintain time consistency with the reference clock.
[0059] Method 600 may end by: at 612, transmitting one or more recorded videos from the mobile computing device to the collaborative video system. During or after the collaborative video recording session, the mobile computing device may transmit the recorded videos. In some embodiments, the mobile computing device may transmit the recorded videos to the collaborative video system via a network connection. In other embodiments, the mobile computing device may transmit the recorded videos to a storage service allocated for the collaborative video system.
[0060] Figure 1 FIGS. 7 to 9 illustrate circuits and methods for a system (such as an integrated circuit) including a return prediction circuit and / or a sequential prediction circuit. Any embodiment of the disclosed system may be included in one or more computer systems (such as desktop computers, laptop computers, smart phones, tablet computers, and wearable devices, etc.) among various computer systems. In some embodiments, the above circuits may be implemented on a system-on-chip (SoC) or other types of integrated circuits. Figure 7 A block diagram illustrating an embodiment of a computer system 700 is shown. In some embodiments, computer system 700 may include any of the disclosed embodiments of system 100, 200, or 300.
[0061] In the illustrated embodiments, system 700 includes at least one instance of a system-on-chip (SoC) 706, which may include various types of processor circuits (such as a central processing unit (CPU), a graphics processing unit (GPU), or others), a communication fabric, and interfaces to memory and input / output devices. One or more of these processor circuits may correspond to instances of the systems disclosed herein. In various embodiments, SoC 706 is coupled to an external memory circuit 702, peripherals 704, and a power supply 708.
[0062] A power supply 708 is also provided that supplies a power supply voltage to SoC 706 and one or more power supply voltages to external memory circuit 702 and / or peripherals 704. In various embodiments, power supply 708 represents a battery (e.g., a rechargeable battery in a smart phone, laptop or tablet computer, or other device). In some embodiments, there are more than one instance of SoC 706 (and also more than one external memory circuit 702).
[0063] External memory circuit 702 is any type of memory, such as dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate (DDR, DDR2, DDR3, etc.) SDRAM (including mobile versions of SDRAM, such as mDDR3, etc., and / or low power versions of SDRAM, such as LPDDR2, etc.), RAMBUS DRAM (RDRAM), static RAM (SRAM), etc. In some embodiments, external memory circuit 702 may include non-volatile memory, such as flash memory, ferroelectric random access memory (FRAM), or magnetoresistive RAM (MRAM). One or more memory devices may be coupled to a circuit board to form a memory module, such as a single inline memory module (SIMM), a dual inline memory module (DIMM), etc. Alternatively, these devices may be mounted with the SoC or integrated circuit in a chip stack configuration, a package stack configuration, or a multi-chip module configuration.
[0064] Depending on the type of system 700, peripherals 704 include any desired circuitry. For example, in one embodiment, peripherals 704 include devices for various types of wireless communication, such as Wi-Fi, Bluetooth devices, cellular telephones, global positioning systems, etc. In some embodiments, peripherals 704 also include additional storage, including RAM storage, solid state storage, or disk storage. Peripherals 704 include user interface devices (such as a display screen), including a touch display screen or a multi-touch display screen, a keyboard or other input device, a microphone, a speaker, etc.
[0065] As illustrated, system 700 is shown to have applications in a wide range of fields. For example, system 700 can be used as part of the chips, circuits, components, etc. of a desktop computer 710, a laptop computer 720, a tablet computer 730, a cellular or mobile phone 740, or a television 750 (or a set-top box coupled to a television). Also illustrated are smartwatches and health monitoring devices 760. In some embodiments, a smartwatch can include various general computing-related functions. For example, a smartwatch can provide access to email, cellular service, a user's calendar, etc. In various embodiments, a health monitoring device can be a dedicated medical device or otherwise include dedicated health-related functionality. In various embodiments, the aforementioned smartwatch may or may not include some or any health monitoring-related functions. Other wearable devices 760 are also envisioned, such as devices worn around the neck, devices attached to hats or other helmets, devices capable of being implanted in the human body, glasses designed to provide an augmented and / or virtual reality experience, etc.
[0066] System 700 can also be used as part of a cloud-based service 770. For example, the previously mentioned devices and / or other devices can access computing resources in the cloud (i.e., remotely located hardware and / or software resources). Further still, system 700 can be used in one or more devices of a home 780 other than those previously mentioned. For example, household appliances can monitor and detect noteworthy situations. Various devices in the home (e.g., a refrigerator, a cooling system, etc.) can monitor the status of the devices and provide an alert to the homeowner (or, for example, a repair agency) in the event that a specific event is detected. Alternatively, a thermostat can monitor the temperature in the home and can automate the adjustment of the heating / cooling system based on the homeowner's reaction history to various situations. Figure 7 Also illustrated are the applications of system 700 to various modes of transportation 790. For example, system 700 can be used in the control and / or entertainment systems of airplanes, trains, buses, rental cars, private cars, watercraft from private boats to cruise ships, small motorcycles (for rental or private use), etc. In various situations, system 700 can be used to provide automated guidance (e.g., self-driving vehicles) and general system control, etc.
[0067] Note that the various potential applications of system 700 can include various performance, cost, and power consumption requirements. Therefore, a scalable solution that enables the use of one or more integrated circuits to provide a suitable combination of performance, cost, and power consumption can be beneficial. These and many other embodiments are possible and envisioned. Note that Figure 7 The devices and applications illustrated are merely illustrative and are not intended to be limiting. Other devices are possible and envisioned.
[0068] As regarding Figure 7As disclosed, computer system 700 may include one or more integrated circuits, which are included within a personal computer, smartphone, tablet computer, or other type of computing device.
[0069] This disclosure includes references to "embodiments," which are non-limiting specific implementations of the disclosed concepts. References to "an embodiment," "one embodiment," "a particular embodiment," "some embodiments," and "various embodiments" do not necessarily refer to the same embodiment. A large number of possible embodiments are contemplated, including the specific embodiments detailed, as well as modified or alternative forms that fall within the substance or scope of this disclosure. Not all of these embodiments will necessarily exhibit any or all of the potential advantages described herein.
[0070] Unless otherwise noted, specific embodiments are not intended to limit the scope of the claims drafted based on the disclosed content of this disclosure, even in cases where only a single example is described for a particular feature. Thus, the disclosed embodiments are intended to be illustrative rather than restrictive, without any contrary statement. This application is intended to cover such alternative forms, modified forms, and equivalent forms, which will be apparent to those skilled in the art who benefit from this disclosure.
[0071] Specific features, structures, or characteristics may be combined in any suitable manner consistent with this disclosure. Thus, this disclosure is intended to (explicitly or implicitly) include any feature disclosed herein, or any combination of these features, or any generalization thereof. Thus, new claims may be made during the prosecution of this application (or an application claiming priority therefrom) for any such combination of features. Specifically, with reference to the appended claims, the features of a dependent claim may be combined with the features of an independent claim, and the features from corresponding independent claims may be combined in any appropriate manner rather than only in the specific combinations enumerated in the appended claims.
[0072] For example, although the appended dependent claims are drafted such that each dependent claim depends on a single other claim, additional dependencies are also contemplated. In appropriate cases, it is also contemplated that claims drafted in one statutory type (e.g., apparatus) may inspire corresponding claims in another statutory type (e.g., method).
[0073] ***
[0074] Since this disclosure is a legal document, various terms and phrases may be subject to regulatory and judicial interpretation. Notice is hereby given that the following paragraphs, as well as the definitions provided throughout this disclosure, will be used to determine how to interpret the claims drafted based on this disclosure.
[0075] Unless the context clearly indicates otherwise, references to singular forms such as "a", "an", and "the" are intended to mean "one or more". Thus, a reference to "an item" in a claim does not exclude additional instances of that item.
[0076] The word "may" is used herein in an allowable sense (i.e., having the potential to be able to), rather than in a mandatory sense (i.e., must).
[0077] The terms "comprising" and "including" and their forms are open-ended and mean "including but not limited to".
[0078] When the term "or" is used in the present disclosure with respect to a list of options, it is generally understood to be used in an inclusive sense, unless the context provides otherwise. Thus, the statement "x or y" is equivalent to "x or y, or both", covering x but not y, y but not x, and both x and y. On the other hand, phrases such as "either x or y, but not both" make it clear that "or" is used in an exclusive sense.
[0079] The expressions "w, x, y, or z, or any combination thereof" or "at least one of...w, x, y, and z" are intended to cover all possibilities of individual elements up to the total number of elements in the set. For example, given the set [w, x, y, z], these phrases cover any single element in the set (e.g., w but not x, y, or z), any two elements (e.g., w and x, but not y or z), any three elements (e.g., w, x, and y, but not z), and all four elements. Thus, the phrase "at least one of...w, x, y, and z" refers to at least one element of the elements in the set [w, x, y, z], thereby covering all possible combinations in the list of options. This phrase should not be construed as requiring the existence of at least one instance of w, at least one instance of x, at least one instance of y, and at least one instance of z.
[0080] In the present disclosure, various "labels" may precede a noun. Unless the context provides otherwise, different labels used for features (e.g., "first circuit", "second circuit", "specific circuit", "given circuit", etc.) refer to different instances of the feature. Unless otherwise specified, the labels "first", "second", and "third" do not imply any type of ordering (e.g., spatial, temporal, logical, etc.) when applied to a particular feature.
[0081] Within this disclosure, different entities (which may be variously referred to as "units", "circuits", other components, etc.) may be described or claimed as "configured to" perform one or more tasks or operations. This expression—the [entity] "configured to" [perform one or more tasks]—is used herein to refer to a structure (i.e., a tangible thing). More specifically, this expression is used to indicate that the structure is arranged to perform one or more tasks during operation. A structure may be considered "configured to" perform a certain task even if the structure is not currently being operated. Thus, an entity described or recited as "configured to" perform a certain task refers to a tangible thing for performing that task, such as a device, a circuit, a memory storing executable program instructions, etc. This phrase is not used herein to refer to intangible things.
[0082] The term "configured to" is not intended to mean "capable of being configured to". For example, an unprogrammed FPGA would not be considered "configured to" perform a particular function. However, the unprogrammed FPGA may be "configurable to" perform that function.
[0083] The recitation in the appended claims of a structure "configured to" perform one or more tasks is expressly intended not to invoke 35 U.S.C. § 112(f) for that claim element. If an applicant wishes to invoke part 112(f) during the application process, it will use the structure "means for [performing a function]" to recite the claim element.
[0084] The phrase "based on" is used to describe one or more factors that affect a determination. This term does not exclude the possibility that additional factors may affect the determination. That is, the determination may be based solely on the specified factors or on the specified factors and other unspecified factors. Consider the phrase "determine A based on B". This phrase specifies that B is a factor used to determine A or that B affects the determination of A. This phrase does not exclude the possibility that the determination of A may also be based on some other factor (such as C). This phrase is also intended to cover embodiments where A is determined based solely on B. As used herein, the phrase "based on" is synonymous with the phrase "at least partially based on".
[0085] The phrase "responsive to" describes one or more factors that trigger an effect. This phrase does not exclude the possibility that additional factors may affect or otherwise trigger the effect. That is, the effect may be responsive solely to these factors, or may be responsive to the specified factors and other unspecified factors. Consider the phrase "perform A responsive to B". This phrase specifies that B is a factor that triggers the performance of A. This phrase does not exclude the possibility that the performance of A may also be responsive to some other factor (such as C). This phrase is also intended to cover embodiments where A is performed responsive solely to B.
Claims
1. A system, comprising: A reference clock configured to track a reference time; One or more processors; And A memory storing instructions that, when executed on or across the one or more processors, cause the one or more processors to implement a collaborative video system to: Provide a synchronization code for a collaborative video recording session to a plurality of recording devices; Based on providing the synchronization code to the plurality of mobile devices, identify the plurality of recording devices as participants in the collaborative video recording session; Coordinate the execution of the collaborative video recording session, the collaborative video recording session including: Broadcast one or more synchronization signals to synchronize the plurality of recording devices to the reference time tracked by the reference clock; Receive a plurality of videos from the plurality of recording devices, wherein the plurality of videos include timestamps based on synchronization to the reference time; and Generate a shared timeline of the plurality of videos, wherein the shared timeline synchronizes the timestamps among the plurality of videos.
2. The system according to claim 1, wherein the collaborative video system is further configured to: Receive one or more registration requests for the collaborative video recording session from the plurality of recording devices; and Register the plurality of recording devices in the collaborative video recording session.
3. The system according to claim 2, wherein the collaborative video system is further configured to: Receive an indication that the collaborative video recording session has ended; Transmit a request to retrieve additional videos recorded during the collaborative video recording session to the plurality of recording devices.
4. The system according to claim 1, wherein the collaborative video system is further configured to: Receive a request for a video recorded at a requested timestamp among the timestamps; Identify at least a portion of the video data including the requested timestamp among the plurality of videos; and Provide an interface for accessing the identified video.
5. The system according to claim 1, further comprising: A display device configured to display the synchronization code, wherein the synchronization code includes a Quick Response (QR) code.
6. The system according to claim 1, further comprising: The plurality of recording devices, wherein each recording device among the plurality of recording devices includes: A camera configured to: Capture an image of the synchronization code; and Record video data; A network adapter configured to establish communication with the collaborative video recording system; and A position sensor configured to determine the current location and orientation of the recording device.
7. A method, comprising: Provide a synchronization code for a collaborative video recording session managed by a collaborative video system to a plurality of recording devices; Based on providing the synchronization code to the plurality of mobile devices, identify the plurality of mobile devices as participants in the collaborative video recording session; Coordinate the execution of the collaborative video recording session, the collaborative video recording session including: Synchronize the plurality of recording devices to a reference time tracked by a reference clock; Receive a plurality of videos from the plurality of recording devices, wherein the plurality of videos include timestamps based on synchronization to the reference time; and Generate a shared timeline for the plurality of videos, wherein the shared timeline synchronizes the timestamps among the plurality of videos.
8. The method according to claim 7, further comprising: In response to providing the synchronization code, receive one or more registration requests for the collaborative video recording session from the plurality of recording devices; And Register the plurality of recording devices to the collaborative video recording session.
9. The method according to claim 8, further comprising: Receive an indication that the collaborative video recording session has ended; Transmit a request to retrieve additional videos recorded during the collaborative video recording session to the plurality of recording devices.
10. The method according to claim 9, further comprising: Receive the additional videos; And Update the shared timeline according to the additional videos.
11. The method according to claim 7, further comprising: Receive a request for a video recorded at a requested timestamp among the timestamps; Identify a video among the plurality of videos that includes at least a portion of video data for the requested timestamp; and And Provide an interface for accessing the identified video.
12. The method according to claim 7, wherein providing the synchronization code comprises: Display the synchronization code via a display device of the collaborative video system.
13. The method according to claim 7, wherein the synchronization code includes a Quick Response (QR) code. One or more computer-readable storage media storing instructions that, when executed on one or more processors or across one or more processors, cause the one or more processors to: Generate a synchronization code for a collaborative video recording session based on a reference clock to be synchronized to a plurality of recording devices; Provide the synchronization code to the plurality of recording devices; Based on providing the synchronization code to a plurality of mobile devices, identify the plurality of recording devices as participants in the collaborative video recording session; Coordinate the execution of the collaborative video recording session, the collaborative video recording session including: Synchronize the plurality of recording devices to a reference time tracked by a reference clock; and And In response to receiving a plurality of videos from the plurality of recording devices, generate a shared timeline for the plurality of videos, wherein the plurality of videos include timestamps based on synchronization to the reference time, and wherein the shared timeline synchronizes the timestamps among the plurality of videos.
15. The one or more computer-readable storage media according to claim 14, further comprising instructions that, when executed on one or more processors or across one or more processors, cause the one or more processors to: In response to one or more registration requests for the collaborative video recording session from the plurality of recording devices, register the plurality of recording devices to the collaborative video recording session.
16. One or more computer-readable storage media according to claim 15, further comprising instructions that, when executed on one or more processors or across one or more processors, cause the one or more processors to: In response to an indication that the collaborative video recording session has ended, transmit a request to retrieve additional video recorded during the collaborative video recording session to the plurality of recording devices.
17. One or more computer-readable storage media according to claim 16, further comprising instructions that, when executed on one or more processors or across one or more processors, cause the one or more processors to: In response to receiving the additional video, update the shared timeline based on the additional video.
18. One or more computer-readable storage media according to claim 14, further comprising instructions that, when executed on one or more processors or across one or more processors, cause the one or more processors to: In response to a request for video recorded at the requested timestamp in the timestamps, identify at least a portion of the video that includes video data for the requested timestamp in the plurality of videos; and Provide an interface for accessing the identified video.
19. One or more computer-readable storage media according to claim 14, further comprising instructions that, when executed on one or more processors or across one or more processors, cause the one or more processors to: Transmit the synchronization code to a display device of the collaborative video system.
20. One or more computer-readable storage media according to claim 14, wherein the synchronization code includes a Quick Response (QR) code.