WO2014134965A1 - 一种多方视频共享的方法和装置 - Google Patents
一种多方视频共享的方法和装置 Download PDFInfo
- Publication number
- WO2014134965A1 WO2014134965A1 PCT/CN2013/091010 CN2013091010W WO2014134965A1 WO 2014134965 A1 WO2014134965 A1 WO 2014134965A1 CN 2013091010 W CN2013091010 W CN 2013091010W WO 2014134965 A1 WO2014134965 A1 WO 2014134965A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- time
- terminal
- called terminal
- called
- shared video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
Definitions
- the present disclosure relates to the field of communications technologies, and in particular, to a method and apparatus for multi-party video sharing. Background technique
- the multi-party video sharing service is: the calling user terminal sends a video sharing request including two or more user terminal identifiers to the video sharing server, and the shared object may be a video collected by the mobile terminal through the camera in real time, or may be stored on the terminal. Video clip file.
- the video data shared by the current multi-party video is sent by the calling user to the video sharing server, and then forwarded to other sharing terminals by the video sharing server.
- the current video sharing technology includes technologies such as P2P, that is, the called user terminal can also transmit video data to other user terminals according to its own access mode, processing capability, and uplink and downlink bandwidth. It is called P2P internet technology.
- the calling terminal only informs the called terminal which video should be acquired for playing, and the calling terminal and the called terminal play due to the objective existence time error and communication delay between the calling terminal and the called terminal.
- the video resource has a problem that the playback time is inconsistent.
- the embodiments of the present disclosure provide a method and apparatus for multi-party video sharing to solve the problem that the video played by the calling terminal and the called terminal cannot be completely synchronized in the background art.
- an embodiment of the present disclosure discloses a method for sharing video by multiple parties, including:
- the time at which the called terminal plays the shared video synchronously with the local end is determined.
- determining the time difference between the local end and the called terminal according to the receiving time of the acknowledgment response returned by the called terminal including:
- the time difference between the local end and the called terminal to play the shared video located at the local end is determined according to the communication time.
- determining, according to the time difference, the time at which the called terminal plays the shared video synchronously with the local end including: when the called terminal synchronizes the shared video being played by the local end, according to the time difference and the first of the shared video at the local end Playing the progress, determining the second playing progress of the called terminal playing the shared video; the time corresponding to the second playing progress is the time when the called terminal and the local end play the shared video synchronously;
- determining the time difference between the local end and the called terminal according to the receiving time of the acknowledgment response returned by the called terminal including:
- Parsing the acknowledgment response obtaining the transmission time of the acknowledgment response based on the time displayed by the called terminal; determining the local end according to the transmission time of the acknowledgment response, the reception time of receiving the acknowledgment response, and the sending time of the multiparty shared video request The time difference between the called terminals.
- determining, according to the time difference, the time at which the called terminal plays the shared video synchronously with the local end including: determining, according to the time displayed by the local end, the first predetermined time point of playing the shared video;
- the method before determining, according to the time difference, the time that the called terminal plays the shared video synchronously with the local end, the method further includes:
- the called terminal When the called terminal plays the same shared video as the local end, it monitors whether the playback progress of the shared video of the called terminal is consistent with the playback progress of the local end;
- the disclosure also discloses a method for sharing video by multiple parties, including:
- the time at which the called terminal plays the shared video synchronously with the calling terminal is determined.
- determining the time difference between the calling terminal and the called terminal according to the receiving time of receiving the acknowledgment response returned by the called terminal includes:
- the time difference between playing the shared video located at the calling terminal between the calling terminal and the called terminal is determined according to the communication time.
- determining, according to the time difference, a time when the called terminal plays the shared video synchronously with the calling terminal including:
- the called terminal When the called terminal synchronizes the shared video being played by the calling terminal, according to the time difference and the first playing progress of the shared video at the calling terminal, determining the second playing progress of the called terminal playing the shared video; the time corresponding to the second playing progress The time for the called terminal to play the shared video synchronously with the calling terminal;
- determining the time difference between the calling terminal and the called terminal according to the receiving time of receiving the acknowledgment response returned by the called terminal includes:
- the response confirmation response is obtained, and the transmission time of the acknowledgment response is obtained based on the time displayed by the called terminal; the transmission time according to the acknowledgment response, the reception time at which the calling terminal receives the acknowledgment response, and the transmission of the multiparty shared video request by the calling terminal. Time, determine the time difference between the calling terminal and the called terminal.
- determining, according to the time difference, a time when the called terminal plays the shared video synchronously with the calling terminal including:
- the method before determining, by the time difference, the time at which the called terminal and the calling terminal play the shared video synchronously, the method further includes:
- the present disclosure also discloses a system for sharing video by multiple parties, including:
- a calling terminal a cloud server, and at least one called terminal;
- the calling terminal includes:
- a sharing initiation module configured to initiate a multi-party shared video request to the called terminal
- a time difference calculation module configured to determine a time difference between the local end and the called terminal according to the receiving time of receiving the acknowledgement response returned by the called terminal;
- the synchronization time confirmation module is configured to determine, according to the time difference, a time at which the called terminal plays the shared video synchronously with the local end; the cloud server is configured to transit data between the calling terminal and the called terminal.
- the time difference calculation module includes: The first time acquiring module is configured to record, according to the time displayed by the local end, the sending time of the local party to send the multi-party shared video request, and the receiving time of receiving the confirmation response returned by the called terminal;
- a first communication time determining module configured to determine a communication time between the local end and the called terminal according to the sending time and the receiving time
- the first time difference calculation module is configured to determine, according to the communication time, a time difference between playing the shared video located at the local end between the local end and the called terminal.
- the time difference calculation module includes:
- the second time acquiring module is configured to record, according to the time displayed by the local end, the sending time of the local party to send the multi-party shared video request, and the receiving time of receiving the confirmation response returned by the called terminal, and the parsing confirmation response, The time when the called terminal displays the time and confirms the sending time of the response;
- the second time difference calculation module is configured to determine a time difference between the local end and the called terminal according to the sending time of the acknowledgment response, the receiving time of receiving the acknowledgment response, and the sending time of sending the multi-party shared video request.
- the present disclosure also discloses a system for sharing video by multiple parties, including:
- a calling terminal a cloud server, and at least one called terminal;
- Cloud servers include:
- a request receiving module configured to receive a multi-party shared video request initiated by the calling terminal to the called terminal;
- a time difference calculation module configured to determine a time difference between the calling terminal and the called terminal according to the receiving time of receiving the confirmation response returned by the called terminal;
- the synchronization time confirmation module is configured to determine, according to the time difference, a time when the called terminal and the calling terminal play the shared video synchronously.
- the time difference calculation module includes:
- the third time acquiring module is configured to obtain, according to the time displayed by the calling terminal, the sending time of the recorded calling party sending the multi-party shared video request, and the receiving the receiving end of the acknowledged response returned by the called terminal Time
- a second communication time determining module configured to determine a communication time between the calling terminal and the called terminal according to the sending time and the receiving time
- a third time difference calculation module configured to determine, according to the communication time, a time difference between playing the shared video located at the calling terminal between the calling terminal and the called terminal.
- the root time difference calculation module includes:
- the fourth time acquiring module is configured to obtain, according to the time displayed by the calling terminal, the sending time of the recorded calling party sending the multi-party shared video request, and the receiving the receiving end of the acknowledgement response returned by the called terminal Time; parsing the confirmation response, obtaining the transmission time of the confirmation response based on the time displayed by the called terminal;
- a fourth time difference calculation module configured to determine a time difference between the calling terminal and the called terminal according to the sending time of the acknowledgment response, the receiving time of the acknowledgment response received by the calling terminal, and the sending time of the calling terminal sending the multi-party shared video request .
- the time difference between the calling terminal and each called terminal is calculated by the communication process between the calling terminal and each called terminal. For each called terminal, the calling terminal notifies the called terminal according to the time difference. The calling terminal plays the shared video synchronously.
- the method provided by the embodiment of the present disclosure can correct the playing time between the calling terminal and each called terminal, and the disclosure can keep the calling terminal and the called terminal in the playing progress for the same shared video. Consistent, achieve the effect of full synchronization of playback progress time.
- the method provided by the embodiment of the present disclosure can avoid the problem that the video playback of the calling terminal and the called terminal is not synchronized due to the communication delay.
- FIG. 1 is a schematic flow chart of a method for multi-party video sharing according to Embodiment 1 of the present disclosure
- FIG. 2 is a schematic flow chart of a method for multi-party video sharing according to Embodiment 2 of the present disclosure
- FIG. 3 is a diagram showing an example of data processing of a multi-party video sharing corresponding embodiment 2 of the present disclosure
- FIG. 4 is a schematic flowchart diagram of a method for multi-party video sharing according to Embodiment 3 of the present disclosure
- FIG. 5 is a diagram showing an example of data processing corresponding to a third embodiment of multi-party video sharing according to the present disclosure
- FIG. 6 is a schematic flowchart diagram of a method for multi-party video sharing according to Embodiment 4 of the present disclosure
- FIG. 7 is a schematic flowchart diagram of a method for multi-party video sharing according to Embodiment 5 of the present disclosure.
- FIG. 8 is a schematic structural diagram of an exemplary apparatus for multi-party video sharing according to Embodiment 6 of the present disclosure.
- FIG. 9 is a schematic structural diagram of an exemplary system for multi-party video sharing according to Embodiment 7 of the present disclosure.
- FIG. 10 is a schematic structural diagram of an exemplary system for multi-party video sharing according to Embodiment 8 of the present disclosure.
- Embodiment 1 of a method for multi-party video sharing may specifically include:
- step 110 a multi-party shared video request is initiated to the called terminal
- the calling terminal may initiate a multi-party shared video request to the cloud server, and then the cloud service The device notifies each called terminal.
- the calling terminal may obtain a list of each called terminal currently online in the buddy list, and then initiate a multi-party shared video request for each called terminal in the online.
- the called terminals may be one or more in the present disclosure.
- the calling terminal may be an STB (Set Top Box), which is usually called a set top box or a set-top box, and can be displayed on the television after the set-top box obtains the online buddy list from the cloud server.
- STB Set Top Box
- the present disclosure can perform the above video sharing service based on the technical architecture of the IMS (IP Multimedia Subsystem).
- step 120 determining a time difference between the local end and the called terminal according to the receiving time of receiving the acknowledgement response returned by the called terminal;
- the "native" that appears can be understood as the calling terminal.
- each called terminal For the multi-party shared video request of the calling terminal, each called terminal returns an acknowledgment response to the calling terminal for the multi-party sharing request, and then the calling terminal can calculate the calling terminal to each called terminal according to the foregoing communication process. Time difference.
- step 130 according to the time difference, the time at which the called terminal plays the shared video synchronously with the local end is determined.
- the calling terminal After calculating the time difference between the calling terminal and the called terminal, it is determined that the called terminal synchronizes with the local end to play the shared video time. Then, when the video is shared, the calling terminal can notify the called terminal to play the video synchronously according to the time difference.
- the called terminal when the called terminal is notified to play the shared video, the called terminal is accessed by sending the URL (Uniform / Universal Resource Locator) of the shared video to the called terminal, and the called terminal accesses the UL by itself. Play it.
- URL Uniform / Universal Resource Locator
- the method provided by the embodiment of the present disclosure may further include:
- step S171 the cloud server monitors whether the P2P is fully connected between the calling terminal and each of the called terminals.
- step S172 if the P2P is fully connected between the calling terminal and each called terminal, the calling terminal And each called terminal performs voice or text communication through P2P;
- step S173 if the P2P is not fully connected between the calling terminal and each called terminal, voice or text communication is performed by the cloud server relaying the calling terminal and the voice data of each called terminal.
- the resources in the shareable cloud server do not need to be shared from the beginning of the video, and the calling terminal can be at any stage of video playback.
- the played video is shared to the called terminal in real time, achieving full synchronization.
- Embodiment 2 of a method for multi-party video sharing may include:
- step 200 a multi-party shared video request is initiated to the called terminal;
- step 210 based on the time displayed by the local end, the transmission time of the local party transmitting the multi-party shared video request and the receiving time of receiving the confirmation response returned by the called terminal are recorded;
- the "native" that appears can be understood as the calling terminal.
- the calling terminal may directly send a multi-party video sharing request to the called terminal, or may send the multi-play video sharing request to the cloud server, and then the cloud server forwards to each called terminal.
- the calling terminal when the calling terminal sends the multi-party video sharing request, the calling terminal records the sending time t8 of the multi-party shared video request, which is based on the time displayed by the local terminal.
- the called terminal then sends an acknowledgment response in response to the request, and the calling terminal records the reception time t9 when it receives the acknowledgment response.
- the cloud server may forward the received multi-party shared video request to each called terminal.
- the called terminal when the called terminal receives the multi-party shared video request forwarded by the cloud server, the called terminal responds to the request, and sends a confirmation response to the cloud server; after receiving the confirmation response, the cloud server sends the confirmation response to the calling party.
- the terminal forwards the acknowledgment response; then, when the calling terminal receives the acknowledgment response, the receiving time t9 is recorded.
- step 220 the communication time between the local end and the called terminal is determined according to the sending time and the receiving time.
- the calling terminal and the called party may be calculated by (t9-t8)/2. Communication time between terminals.
- step 230 the time difference between the local end and the called terminal to play the shared video located at the local end is determined according to the communication time.
- the communication time (t9-t8) /2 can be determined as the time difference between the local and the called terminal playing the shared video located at the local end.
- step 240 according to the time difference, the time at which the called terminal plays the shared video synchronously with the local end is determined.
- the determining, according to the time difference, the time that the called terminal and the local end play the shared video synchronously may include: In step A241, when the called terminal synchronizes the shared video that is being played by the local end, according to the time difference and the shared video at the local end a playback progress, determining a second playback progress of the called terminal playing the shared video; the time corresponding to the second playback progress is a time when the called terminal and the local end play the shared video synchronously;
- the calling terminal For each called terminal, the calling terminal notifies the called terminal of the second progress time position calculated by the first progress time and the time difference according to the first progress time for the shared video and the time difference corresponding to the called terminal. , start playing the above shared videos including:
- step A2411 the calling terminal acquires a first progress time t4 for playing the shared video
- the calling terminal and the called terminal will be consistent in the playback progress time.
- the t6 is sent to the called terminal through the cloud server, and the terminal is notified to play the shared video at the time position where the playing progress time of the video is t6.
- step A242 based on the time displayed by the local end, when the called terminal synchronizes the shared video played by the local end at the first predetermined time, according to the time difference and the first predetermined time, determining that the called terminal plays the shared video. a second predetermined time; wherein, at the second predetermined time, the local end sends the shared video to the called terminal.
- the called terminal can be notified to play the video synchronously according to the time when the called terminal and the local end synchronously play the shared video.
- the method further includes: in step A251, when the called terminal plays the same shared video as the local end, monitoring whether the broadcast progress of the shared video of the called terminal is Consistent with the local playback progress;
- the calling terminal monitors whether the current progress time of the called terminal for the shared video is consistent with the current progress time of the calling terminal for the shared video according to the time difference and the time difference: In step B31 Each called terminal periodically reports to the calling terminal the current progress time of the called terminal for the shared video;
- the calling terminal sends the current progress time t7 of the currently playing video to the calling terminal every 5 seconds.
- step B32 the calling terminal determines the current progress time of each called terminal for the shared video according to the time difference and the time difference, the current progress time of the calling terminal for the shared video, and the current progress time of each called terminal for the shared video. Whether it is consistent with the current progress time of the calling terminal for the shared video.
- step A252 when the playing progress of the shared video of the called terminal is inconsistent with the playing progress of the local terminal, the time difference between the local terminal and the called terminal is obtained.
- the progress of the calling terminal may lag behind the called terminal, and the called terminal may lag behind the calling terminal. Then, the current playing progress of the calling terminal is used as a standard, and the progress of the calling terminal may lag behind the being.
- the time difference between the local end and the called terminal is negative.
- the time difference between the local end and the called terminal is obtained as a positive number. After obtaining the time difference, it also includes:
- step A253 according to the time difference between the broadcast progress of the local terminal and the called terminal, the called terminal is notified to keep the playing progress with the calling terminal.
- the calling terminal if the current progress time of the called terminal for the shared video lags behind the current progress time of the calling terminal for the shared video, the calling terminal notifies the called terminal to skip the time difference of the delayed play for the shared video, and keeps with the calling terminal. Play time is consistent;
- the calling terminal finds that a called terminal is delayed for a period of time due to the network, etc., it can send a command to the called terminal to skip the time period p and continue playing.
- the calling terminal If the current progress time of the called terminal for the shared video lags behind the current progress time of the calling terminal for the shared video, the calling terminal notifies the called terminal to pause the time difference and then plays the shared video, keeping the playing time of the calling terminal consistent. ;
- the calling terminal finds that the playback lags behind a certain called terminal for a period of time due to the network, etc., it can send a command to the called terminal to pause playing P and continue playing.
- the method before the notification that the called terminal and the calling terminal maintain the playing progress according to the time difference between the playing progress of the calling terminal and the called terminal, the method further includes:
- step B33 it is determined whether the time difference between the progress of the calling terminal and the called terminal reaches the threshold. If so, the calling terminal notifies the called terminal to skip the time period for the delayed playback of the shared video, and keeps with the calling party. The terminal playback time is the same; if it is not reached, it remains the same.
- the calling terminal does not need to send an instruction to notify the called terminal that the calling terminal is consistent.
- FIG. 3 which is a processing flow corresponding to FIG. 2, it may include:
- step S200 the calling terminal initiates a multi-party shared video request to at least one called terminal;
- step S210 the calling terminal records the transmission time t8 of transmitting the multi-party shared video request
- step S220 for each called terminal, record the receiving time t9 when the calling terminal receives the acknowledgment response of the called terminal for the multi-party shared video request ;
- step S230 for each called terminal, according to the sending time t8, the receiving time t9, determining the communication time n between the local end and the called terminal;
- the "native" that appears can be understood as the calling terminal.
- step S240 the time difference m of the shared video located at the local end between the local end and the called terminal is determined according to the communication time.
- step S250 the time t0 at which the called terminal plays the shared video synchronously with the local end is determined according to the time difference m .
- step S260 the called party is notified according to the determined time t0 at which the called terminal plays the shared video synchronously with the local end. The terminal plays the shared video synchronously with the local end.
- the disclosure may further include: In step S271, the cloud server monitors whether the P2P is fully connected between the calling terminal and each of the called terminals. In step S272, if the P2P is fully connected between the calling terminal and each called terminal, the calling terminal And each called terminal performs voice or text communication through P2P;
- step S273 if the P2P is not fully connected between the calling terminal and each called terminal, voice or text communication is performed by the cloud server relaying the calling terminal and the voice data of each called terminal.
- a temporary exchange voice group can be established. There are two ways to establish a temporary communication voice group. If there are few group members, and each group member can communicate through P2P, then P2P voice module can be used for voice communication; if the group members are not fully connected The voice communication can be performed through the cloud audio relay module. That is, the present disclosure can also establish a discussion group to conduct real-time discussions in the form of voice, text, and the like.
- FIG. 4 it is a schematic flowchart of a method for sharing video by multiple parties according to Embodiment 3 of the present disclosure, which may include:
- step 300 a multi-party shared video request is initiated to the called terminal
- This step is similar to step 200 of the second embodiment and will not be described in detail herein.
- step 310 based on the time displayed by the local end, the transmission time of the local party transmitting the multi-party shared video request and the receiving time of the acknowledgment response returned by the called terminal are recorded; the acknowledgment response is obtained, and the obtained terminal is displayed. The time of the confirmation, the time of the confirmation response is sent;
- the "native" that appears can be understood as the calling terminal.
- the calling terminal records the transmission time tl of the above-mentioned multi-party shared video request.
- the sending time of the recorded calling terminal to send the multi-party shared video request includes: In step A311, the calling terminal records the sending time of sending the multi-party shared video request, and the multi-party shared video request is sent by the calling terminal to the calling terminal.
- the cloud server sends the cloud server according to the multi-party shared video request, and sends an acquisition request to each called terminal.
- the obtaining request includes: notifying the called terminal to return a response time.
- the calling terminal When the calling terminal sends a multi-party shared video request to the cloud server, the calling terminal records the sending time tl of sending the multi-party shared video request.
- step A312 for each called terminal, the calling terminal records the receiving time of receiving the acknowledgment response of the called terminal; the acknowledgment response is that after the called terminal receives the obtaining request, the acknowledgment response for the obtaining request is returned to The cloud is then returned to the calling terminal through the cloud server; the acknowledgment response includes the time at which the acknowledgment response is sent in the called terminal system.
- the cloud server After receiving the multi-party shared video request, the cloud server activates and sends an acquisition request to each called terminal based on the multi-party shared video request, notifies the called terminal to return an acknowledgment response through the obtaining request, and notifies the called terminal in the acknowledgment response.
- the time when the acknowledgment response is sent is encapsulated into the acknowledgment corresponding, that is, when the called terminal receives the above-mentioned obtaining request, the called terminal system sends the response to the time t3, and sends it to the cloud server together with the acknowledgment response, and the cloud service
- the device forwards the acknowledgment response to the calling terminal.
- the calling terminal After the called terminal responds to the multi-party shared video request and then sends an acknowledgment response to the calling terminal, the calling terminal records the receiving time t2 when receiving the acknowledgment response, and parses the acknowledgment response, and extracts t3.
- step 320 determining a time difference between the local end and the called terminal according to the sending time of the acknowledgment response, the receiving time of receiving the acknowledgment response, and the sending time of sending the multi-party shared video request;
- the time difference between the system time between the calling terminal and each called terminal can be calculated. .
- determining the time difference between the local end and the called terminal according to the sending time of the acknowledgment response, the receiving time of receiving the acknowledgment response, and the sending time of sending the multi-party shared video request include:
- step A321 the calling terminal t1, the receiving time t2, and the response time t3 of the called terminal are calculated according to t2-(t3+(tl+t2)/2) to obtain the calling terminal and the called terminal system. The time difference between times.
- the time required for data to be transmitted from the calling terminal A to the called terminal B is (t2 - tl)/2. Further, according to the current time t3 returned by the called terminal, it can be calculated that the time difference between the calling terminal A and the called terminal B is t2 - (t3 + (t2 - tl)/2) o
- step 330 according to the time difference, the time at which the called terminal plays the shared video synchronously with the local end is determined.
- the determining, according to the time difference, the time at which the called terminal and the local end play the shared video synchronously includes: determining, in step S331, the first predetermined time point of playing the shared video, such as the calling terminal, based on the time displayed by the local end;
- the local display time is 10: 00.
- the standard is 10: 00, it is determined that the time for playing the shared video is 11: 00.
- step S332 based on the first predetermined time point and the time difference from the called terminal, the second predetermined time point of the time at which the called terminal plays the shared video, which is based on the time displayed by the called terminal, is determined.
- the time difference is m calculated by the above steps, and the calling terminal simultaneously watches the video A at 11:00 am based on the local system time requirement, then notifies the called terminal that the system time for viewing is ll:00+m time (second reservation) Time point), where m can be an integer value or a negative value.
- the called terminal can be notified to play the shared video according to the time when the called terminal and the local end synchronously play the shared video.
- the method before determining, according to the time difference, the time at which the called terminal and the calling terminal play the shared video synchronously, the method further includes:
- step A351 when the called terminal plays the same shared video as the local end, it is monitored whether the playback progress of the shared video of the called terminal is consistent with the local playback progress;
- step A352 when the playback progress of the shared video of the called terminal is inconsistent with the progress of the local broadcast, the time difference between the calling terminal and the called terminal is obtained.
- the calling terminal and each called terminal are calibrated according to the system time of the calling terminal, so that each called terminal can watch the shared video at the same time as the calling terminal.
- step S300 the calling terminal initiates a multi-party shared video request to at least one called terminal; in step S310, the recorded calling terminal sends a multi-party shared video request transmission time t1;
- step S320 for each called terminal, record the receiving time t2 when the calling terminal receives the acknowledgment response of the called terminal for the multi-party shared video request; the acknowledgment response includes the time t3 of sending the acknowledgment response in the called terminal system. ;
- step S330 for each called terminal, the time difference m between the system time between the calling terminal and each called terminal is calculated according to the response time t3, the sending time t1, and the receiving time t2 in the acknowledgment response ;
- step S340 according to the time difference m, the time t0 at which the called terminal plays the shared video synchronously with the local end is determined ; in the disclosed embodiment, the "local end" that appears may be understood as the calling terminal.
- step S350 the called terminal is notified to play the shared video according to the determined time t0 at which the called terminal plays the shared video synchronously with the local end.
- the disclosure may further include:
- step S271 the cloud server monitors whether the P2P is fully connected between the calling terminal and each of the called terminals. In step S272, if the P2P is fully connected between the calling terminal and each called terminal, the calling terminal And each called terminal performs voice or text communication through P2P;
- step S273 if the P2P is not fully connected between the calling terminal and each called terminal, voice or text communication is performed by the cloud server relaying the calling terminal and the voice data of each called terminal.
- FIG. 6 is a schematic flowchart diagram of Embodiment 4 of a method for multi-party video sharing according to a preferred embodiment of the present disclosure, which may include:
- step 410 a multi-party shared video request initiated by the calling terminal to the called terminal is received
- the calling terminal may initiate a multi-party shared video request to the cloud server, and then notify each called terminal by the cloud server.
- the calling terminal may obtain a list of each called terminal currently online in the buddy list, and then initiate a multi-party shared video request for each called terminal in the online.
- the called terminals may be one or more in the present disclosure.
- step 420 determining a time difference between the calling terminal and the called terminal according to the receiving time of receiving the acknowledgment response returned by the called terminal;
- the time difference between the calling terminal and the called terminal may be determined by the cloud server according to the receiving time of receiving the acknowledgment response returned by the called terminal.
- step 430 based on the time difference, the time at which the called terminal plays the shared video synchronously with the calling terminal is determined. After calculating the time difference between the calling terminal and the called terminal, it is determined that the called terminal synchronizes with the local end to play the shared video time. Then, when the video is shared, the calling terminal can notify the called terminal to play the video synchronously according to the time difference.
- the "native" that appears can be understood as the calling terminal.
- the disclosure may further include:
- step S171 the cloud server monitors whether the P2P is fully connected between the calling terminal and each of the called terminals.
- step S172 if the P2P is fully connected between the calling terminal and each called terminal, the calling terminal and the calling terminal Each called terminal performs voice or text communication through P2P;
- step S173 if the P2P is not fully connected between the calling terminal and each called terminal, voice or text communication is performed by the cloud server relaying the calling terminal and the voice data of each called terminal.
- the resources in the shareable cloud server do not need to be shared from the beginning of the video, and the calling terminal can be at any stage of video playback.
- the played video is shared to the called terminal in real time, achieving full synchronization.
- the method provided by the embodiment of the present disclosure may be based on the time when the calling terminal of the cloud server relay data and the called terminal synchronize to play the shared video, and the disclosure may make the calling terminal and the called terminal be the same
- the playback progress of the shared video is consistent, and the effect of completely synchronizing the playback progress time is achieved, which avoids the problem that the video playback of the calling terminal and the called terminal is not synchronized due to the communication delay.
- FIG. 7 is a schematic flowchart diagram of Embodiment 5 of a method for multi-party video sharing according to an embodiment of the present disclosure, which may include:
- the cloud server receives the multi-party shared video request initiated by the calling terminal to the called terminal.
- the shared video is stored in the cloud server, and is provided by the cloud server to each terminal for playing.
- step 510 the calling terminal obtains the sending time of the multi-party shared video request by the calling terminal, and the receiving time of the acknowledgment response returned by the calling terminal by the calling terminal;
- the "native" that appears can be understood as the calling terminal.
- the calling terminal when the calling terminal sends a multi-party shared video request, the calling terminal obtains the time displayed by the calling terminal, and records the sending time tl l of the multi-party shared video request, and the calling terminal receives the video.
- the acknowledgment response returned by the terminal is called, the receiving time t12 is recorded, and the cloud server acquires the sending time ti l and the receiving time t12.
- the communication time between the calling terminal and the called terminal is determined according to the sending time and the receiving time; that is, the cloud server calculates (tl l- tl2) 12, that is, between the calling terminal and the called terminal. Communication time.
- step 530 determining, according to the communication time, a time difference between playing the shared video located at the calling terminal between the calling terminal and the called terminal;
- the communication time (ti l-tl2) 12 can be determined as the time difference between the called terminals playing the shared video located at the calling terminal.
- step 540 based on the time difference, the time at which the called terminal plays the shared video synchronously with the calling terminal is determined. In an embodiment, determining, according to the time difference, a time when the called terminal plays the shared video synchronously with the calling terminal, including:
- step A441 when the called terminal synchronizes the shared video being played by the calling terminal, determining, according to the time difference and the first playing progress of the shared video at the calling terminal, determining the second playing progress of the called terminal playing the shared video;
- the time corresponding to the playback progress is the time when the called terminal and the calling terminal play the shared video synchronously;
- the calling terminal sends its first playing progress to the cloud server, and the cloud server determines the second playing progress of the called terminal to play the shared video according to the time difference and the first playing progress of the shared video at the calling terminal, and then according to the second playing.
- the progress notification informs the called terminal to play the shared video synchronously with the calling terminal.
- step A442 based on the time displayed by the calling terminal, when the called terminal synchronizes the shared video played by the calling terminal at the first predetermined time, determining the called terminal according to the time difference and the first predetermined time. Playing a second predetermined time of the shared video; wherein, at the second predetermined time, the calling terminal sends the shared video to the called terminal.
- the calling terminal sends the currently displayed time and the first predetermined time to the cloud server, and the cloud server determines, according to the time difference, the first predetermined time, and the time currently displayed by the calling terminal, the second predetermined time for the called terminal to play the shared video.
- the calling terminal is then notified to send the shared video to the called terminal at the second predetermined time.
- the method before determining, according to the time difference, the time at which the called terminal and the calling terminal play the shared video synchronously, the method further includes:
- step A451 when the called terminal plays the same shared video as the calling terminal, it is monitored whether the playback progress of the shared video of the called terminal is consistent with the local playback progress;
- the time difference shows the difference between the calling terminal and the called terminal.
- the cloud server can determine whether the playback progress of the shared video of the called terminal is consistent with the local playback progress according to the time difference, the playing progress of the calling terminal, and the playing progress of the called terminal. For example, the cloud server can notify the called terminal to send the second play progress to the cloud server at the time of the display time A+ time difference of the local system, and notify the calling terminal to send the first play progress to the cloud server at the time of the display time A of the local system, and then compare Whether the first playback progress and the second playback progress are the same.
- step A452 when the playing progress of the shared video of the called terminal is inconsistent with the playing progress of the calling terminal, the time difference between the calling terminal and the called terminal is obtained.
- the cloud server may notify the called terminal to send the second play progress to the cloud server at the time of the display time A+ time difference of the local system, and notify the calling terminal to send the first play progress to the cloud at the time of the display time A of the local system.
- the embodiment of the present disclosure may further include:
- step S271 the cloud server monitors whether the P2P is fully connected between the calling terminal and each of the called terminals. In step S272, if the P2P is fully connected between the calling terminal and each called terminal, the calling terminal And each called terminal performs voice or text communication through P2P;
- step S273 if the P2P is not fully connected between the calling terminal and each called terminal, voice or text communication is performed by the cloud server relaying the calling terminal and the voice data of each called terminal.
- the method provided by the embodiment of the present disclosure may be based on the time when the calling terminal of the cloud server relay data and the called terminal synchronize to play the shared video, and the disclosure may make the calling terminal and the called terminal be the same
- the playback progress of the shared video is consistent, and the effect of completely synchronizing the playback progress time is achieved, which avoids the problem that the video playback of the calling terminal and the called terminal is not synchronized due to the communication delay.
- the steps in this embodiment are similar to those in the previous embodiment, and will not be described in detail herein.
- FIG. 8 is a schematic flowchart diagram of Embodiment 6 of a method for multi-party video sharing according to an embodiment of the present disclosure, which may include:
- the cloud server receives the multi-party shared video request initiated by the calling terminal to the called terminal.
- the calling terminal obtains the multi-party shared video request according to the time displayed by the local terminal. The sending time, and the receiving time of the acknowledgment response returned by the called terminal by the calling terminal; parsing the acknowledgment response, and obtaining the sending time of the acknowledgment response based on the time displayed by the called terminal;
- the "native" that appears can be understood as the calling terminal.
- the calling terminal When the calling terminal sends a multi-party shared video request to the cloud server, the calling terminal records the sending time t21 of transmitting the multi-party shared video request.
- the cloud server reconfigures the acquisition request to each called terminal according to the multi-party shared video request, requests each called terminal to send an acknowledgment response, and encapsulates the current display time t23 of the called terminal into the acknowledgment response when sending the acknowledgment response;
- the time currently displayed by the calling terminal that is, the receiving time t22, is recorded when the acknowledgment response is received.
- the cloud server obtains t21, t22 recorded by the calling terminal, and can parse t23 in the acknowledgment response. T23 can also be parsed by the calling terminal and then sent to the cloud server.
- step 620 the time difference between the calling terminal and the called terminal is determined according to the sending time of the acknowledgment response, the receiving time at which the calling terminal receives the acknowledgment response, and the sending time at which the calling terminal sends the multi-party shared video request.
- the time difference between the calling terminal and the called terminal system time is calculated by t2- (t3+ (tl+t2) . That is, the time difference between the display time of the calling terminal and the display time of the called terminal.
- step 630 based on the time difference, the time at which the called terminal plays the shared video synchronously with the calling terminal is determined.
- the determining, according to the time difference, the time at which the called terminal and the calling terminal play the shared video synchronously includes: obtaining, in step A631, a first predetermined time point for playing the shared video, based on the time displayed by the calling terminal;
- the calling terminal and the time indicated by the calling terminal are confirmed by the standard at the first predetermined time point, and then the first predetermined time point is sent to the cloud server.
- the local display time of the calling terminal is 10: 00.
- the standard is 10: 00
- it is determined that the time for playing the shared video is 11: 00
- 11: 00 is sent to the cloud server.
- step A632 based on the first predetermined time point and the time difference from the called terminal, the second predetermined time point based on the time displayed by the called terminal is determined by the called terminal to play the shared video.
- the time difference is calculated by the above steps, and the calling terminal is based on the local system time requirement in the morning.
- the system time for notifying the called terminal is l l : 00 + m time (second predetermined time point), where m can be an integer value or a negative value.
- the called terminal can be notified to play the shared video according to the time when the called terminal and the local end synchronously play the shared video.
- the method before determining, according to the time difference, the time at which the called terminal and the calling terminal play the shared video synchronously, the method further includes:
- step A641 when the called terminal plays the same shared video as the calling terminal, it is monitored whether the playback progress of the shared video of the called terminal is consistent with the local playback progress;
- the cloud server can monitor the playing progress of the called terminal and the calling terminal, and compare the playing progress of the calling terminal and the called terminal to determine whether they are consistent.
- step A642 when the playing progress of the shared video of the called terminal is inconsistent with the playing progress of the calling terminal, the time difference between the calling terminal and the called terminal is obtained.
- the embodiment of the present disclosure may further include:
- step S271 the cloud server monitors whether the P2P is fully connected between the calling terminal and each of the called terminals. In step S272, if the P2P is fully connected between the calling terminal and each called terminal, the calling terminal And each called terminal performs voice or text communication through P2P;
- step S273 if the P2P is not fully connected between the calling terminal and each called terminal, voice or text communication is performed by the cloud server relaying the calling terminal and the voice data of each called terminal.
- the method provided by the embodiment of the present disclosure may be based on the system time of the synchronous calling of the shared video between the calling terminal and the called terminal of the cloud server, and the disclosure may make the calling terminal and the called terminal.
- the playback progress of a shared video is consistent, and the effect of fully synchronizing the playback progress time is achieved, which avoids the problem that the video playback of the calling terminal and the called terminal is not synchronized due to the communication delay.
- FIG. 9 a schematic structural diagram of a system embodiment 7 of a multi-party video sharing preferred in the present disclosure is shown. To include:
- a calling terminal 710 a cloud server 720 and at least one called terminal 730;
- the calling terminal 710 includes:
- a sharing initiation module 711 configured to initiate a multi-party shared video request to the called terminal 730;
- the time difference calculation module 712 is configured to determine a time difference between the local end and the called terminal according to the receiving time of receiving the acknowledgement response returned by the called terminal.
- the "native" that appears can be understood as the calling terminal.
- the synchronization time confirmation module 713 is configured to determine, according to the time difference, a time for the called terminal to play the shared video synchronously with the local end;
- the cloud server 720 is used to transfer data between the calling terminal and the called terminal.
- the method further includes: a notification module, configured to notify each terminal to play the video synchronously according to the determined time at which the called terminal and the local end synchronously play the shared video.
- the time difference calculation module includes:
- the first time acquiring module is configured to record, according to the time displayed by the local end, the sending time of the local party to send the multi-party shared video request, and the receiving time of receiving the confirmation response returned by the called terminal;
- a first communication time determining module configured to determine a communication time between the local end and the called terminal according to the sending time and the receiving time
- the first time difference calculation module is configured to determine, according to the communication time, a time difference between playing the shared video located at the local end between the local end and the called terminal.
- the synchronization time confirmation module includes:
- a first synchronization time confirmation module configured to determine, according to the time difference and the first playback progress of the shared video at the local end, the second playback progress of the shared video played by the called terminal when the called terminal synchronizes the shared video being played by the local terminal;
- the time corresponding to the second playback progress is the time when the called terminal and the local end play the shared video synchronously;
- a second synchronization time confirmation module configured to use the time displayed by the local end, when the called terminal synchronizes the shared video played by the local end at the first predetermined time, according to the time difference and the first predetermined time, determining Calling the terminal to play the shared video for a second predetermined time; wherein, at the second predetermined time, the local end sends the shared video to the called terminal.
- the time difference calculation module includes:
- the second time acquiring module is configured to record, according to the time displayed by the local end, the sending time of the local party to send the multi-party shared video request, and the receiving time of receiving the confirmation response returned by the called terminal, and the parsing confirmation response, The time when the called terminal displays the time and confirms the sending time of the response;
- the second time difference calculation module is configured to determine a time difference between the local end and the called terminal according to the sending time of the acknowledgment response, the receiving time of receiving the acknowledgment response, and the sending time of sending the multi-party shared video request.
- the synchronization time confirmation module includes:
- a first predetermined time acquiring module configured to determine, according to a time displayed by the local end, a first predetermined time point of playing the shared video
- a second predetermined time acquiring module configured to determine, according to the first predetermined time point, and the time difference between the called terminal and the called terminal, the second predetermined time that the called terminal plays the shared video, which is based on the time displayed by the called terminal point.
- the method before the synchronization time confirmation module, the method further includes:
- the consistency check module is configured to monitor whether the playback progress of the shared video of the called terminal is consistent with the local playback progress when the called terminal plays the same shared video as the local terminal; when the called terminal shares the video playing progress and the local end playing When the progress is inconsistent, the time difference between the local end and the called terminal is obtained.
- the cloud server is further included, and the cloud server further includes:
- the all-unicommunication judging module is configured to monitor, by the cloud server, whether the P2P is fully connected between the calling terminal and each called terminal;
- a first voice or text communication module configured to: if the P2P is fully connected between the calling terminal and each called terminal, the calling terminal and each called terminal perform voice or text communication through the P2P;
- the second voice or text communication module is configured to perform voice or text communication by the cloud server transiting the calling terminal and the voice data of each called terminal if the P2P is not fully connected between the calling terminal and each called terminal.
- FIG. 10 is a schematic structural diagram of a system embodiment 8 of a multi-party video sharing according to an embodiment of the present disclosure, which may include:
- a calling terminal 810 a calling terminal 810, a cloud server 820 and at least one called terminal 830;
- Cloud Server 820 includes:
- the request receiving module 821 is configured to receive a multi-party shared video request initiated by the calling terminal to the called terminal.
- the time difference calculating module 822 is configured to determine, according to the receiving time of the acknowledgment response returned by the called terminal, the calling terminal and the called party. Time difference between terminals;
- the synchronization time confirmation module 823 is configured to determine, according to the time difference, a time when the called terminal and the calling terminal play the shared video in synchronization.
- the time difference calculation module includes:
- the third time acquiring module is configured to obtain, according to the time displayed by the calling terminal, the sending time of the recorded calling party sending the multi-party shared video request, and the receiving the receiving end of the acknowledged response returned by the called terminal Time
- the "native" that appears can be understood as the calling terminal.
- a second communication time determining module configured to determine a communication time between the calling terminal and the called terminal according to the sending time and the receiving time
- a third time difference calculation module configured to determine, according to the communication time, a time difference between playing the shared video located at the calling terminal between the calling terminal and the called terminal.
- the synchronization time confirmation module includes:
- a third synchronization time confirmation module configured to: when the called terminal synchronizes the shared video being played by the calling terminal, determine, according to the time difference and the first playing progress of the shared video at the calling terminal, determining that the called terminal plays the second play of the shared video The time corresponding to the second playback progress is the time when the called terminal and the calling terminal play the shared video synchronously; and/or the fourth synchronization time confirmation module is used to display the time displayed by the calling terminal, when called When the terminal synchronizes the shared video played by the calling terminal at the first predetermined time, determining, according to the time difference and the first predetermined time, a second predetermined time for the called terminal to play the shared video; wherein, at the second predetermined time, the calling terminal calls the called terminal The terminal sends a shared video.
- the root time difference calculation module includes:
- the fourth time acquiring module is configured to obtain, according to the time displayed by the calling terminal, the sending time of the recorded calling party sending the multi-party shared video request, and the receiving the receiving end of the acknowledgement response returned by the called terminal Time; parsing the confirmation response, obtaining the transmission time of the confirmation response based on the time displayed by the called terminal;
- a fourth time difference calculation module configured to determine a time difference between the calling terminal and the called terminal according to the sending time of the acknowledgment response, the receiving time of the acknowledgment response received by the calling terminal, and the sending time of the calling terminal sending the multi-party shared video request .
- the synchronization time confirmation module includes:
- a first predetermined time acquiring module configured to acquire, according to a time displayed by the calling terminal, a first predetermined time point for playing the shared video
- the second predetermined time acquiring module determines, according to the first predetermined time point, and the time difference between the called terminal and the called terminal, a second predetermined time point that the called terminal plays the shared video, which is based on the time displayed by the called terminal.
- the method before the synchronization time confirmation module, the method further includes:
- the consistency check module is configured to: when the called terminal and the calling terminal play the same shared video, monitor whether the playback progress of the shared video of the called terminal is consistent with the local playback progress; when the called terminal shares the playback progress of the video and the calling party When the progress of the terminal is inconsistent, the time difference between the calling terminal and the called terminal is obtained.
- the cloud server is further included, and the cloud server further includes:
- the all-unicommunication judging module is configured to monitor, by the cloud server, whether the P2P is fully connected between the calling terminal and each called terminal;
- a first voice or text communication module configured to: if the P2P is fully connected between the calling terminal and each called terminal, the calling terminal and each called terminal perform voice or text communication through the P2P;
- the second voice or text communication module is configured to perform voice or text communication by the cloud server transiting the calling terminal and the voice data of each called terminal if the P2P is not fully connected between the calling terminal and each called terminal.
- the calling terminal of the present disclosure may be a set top box, wherein if the synchronization notification module is located in the set top box, after obtaining the current online buddy list, displaying on the television screen; if the synchronization notification is located in the cloud server, obtaining the current After the online buddy list, send it to the TV box for display on the TV screen.
- the description is relatively simple, and the relevant parts can be referred to the description of the method embodiment.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开实施例提供了一种多方视频共享的方法和装置,该方法包括:向被叫终端发起多方共享视频请求;根据接收到所述被叫终端返回的确认响应的接收时间,确定本端与所述被叫终端之间的时间差;根据所述时间差,确定所述被叫终端与本端同步播放共享视频的时间。本公开实施例提供的方法可对主叫终端和各被叫终端之间的系统时间进行修正,可使主叫终端和被叫终端在针对同一个共享视频的播放进度上保持一致,达到播放进度时间完全同步的效果;还可避免通信时延导致的主叫终端与被叫终端的视频播放不同步的问题。
Description
一种多方视频共享的方法和装置 本申请基于申请号为 201310068159.2、 申请日为 2013/3/4的中国专利申请提出, 并要 求该中国专利申请的优先权, 该中国专利申请的全部内容在此引入本申请作为参考。 技术领域
本公开涉及通信技术领域, 特别是涉及一种多方视频共享的方法和装置。 背景技术
随着通信技术的不断发展, 用户针对网络通信的需求也越来越多, 比如多方视频共享 的需求。 多方视频共享业务是: 主叫用户终端向视频共享服务器发送包含两个及以上用户 终端标识的视频共享诸求, 共享的对象可以是移动终端通过摄像头实时采集的视频, 也可 以是在终端上存储的视频片段文件。 目前的多方视频共享的视频数据都是由主叫用户发送 到视频共享服务器, 再由视频共享服务器转发给其他共享终端。 目前的视频共享技术采用 的包括 P2P等技术, 即被叫用户终端根据自身的接入方式、 处理能力、 上下行带宽在接收 共享的同时, 也可以将视频数据发送给其他用户终端, 这种方式称为 P2P互联网络技术。 但是, 主叫终端只通知被叫终端应该获取哪个视频进行播放, 由于主叫终端和被叫终端之 间的客观存在系统时间误差和通信延时的问题,从而使主叫终端和被叫终端播放的视频资 源存在播放时间不一致的问题。 发明内容
本公开实施例提供了一种多方视频共享的方法和装置,用以解决背景技术中主叫终端 和被叫终端播放的视频的无法完全同步的问题。
一方面, 本公开实施例公开了一种多方共享视频的方法, 包括:
向被叫终端发起多方共享视频请求;
根据接收到被叫终端返回的确认响应的接收时间, 确定本端与被叫终端之间的时间 差;
根据时间差, 确定被叫终端与本端同步播放共享视频的时间。
在另一实施例中, 根据接收到被叫终端返回的确认响应的接收时间, 确定本端与被叫 终端之间的时间差, 包括:
以本端显示的时间为准, 记录本端发送多方共享视频请求的发送时间、 以及接收到被 叫终端返回的确认响应的接收时间;
根据发送时间、 接收时间, 确定本端与被叫终端之间的通信时间;
根据通信时间确定本端与被叫终端之间播放位于本端的共享视频的时间差。
在另一实施例中,根据时间差,确定被叫终端与本端同步播放共享视频的时间,包括: 当被叫终端同步本端正在播放的共享视频时,根据时间差以及共享视频在本端的第一 播放进度, 确定被叫终端播放共享视频的第二播放进度; 第二播放进度对应的时间为被叫 终端与本端同步播放共享视频的时间;
和 /或, 以本端显示的时间为准, 当被叫终端同步本端在第一预定时间播放的共享视 频时,根据时间差以及第一预定时间,确定被叫终端播放共享视频的第二预定时间;其中, 在第二预定时间本端向被叫终端发送共享视频。
在另一实施例中, 根据接收到被叫终端返回的确认响应的接收时间, 确定本端与被叫 终端之间的时间差, 包括:
以本端显示的时间为准, 记录本端发送多方共享视频请求的发送时间、 以及接收到被 叫终端返回的确认响应的接收时间; 还包括:
解析确认响应, 获得以被叫终端显示的时间为准的、 确认响应的发送时间; 根据确认响应的发送时间、接收到确认响应的接收时间、 发送多方共享视频请求的发 送时间, 确定本端与被叫终端之间的时间差。
在另一实施例中,根据时间差,确定被叫终端与本端同步播放共享视频的时间,包括: 以本端显示的时间为准, 确定播放共享视频的第一预定时间点;
根据第一预定时间点、和与被叫终端之间的时间差,确定出被叫终端播放共享视频的、 以被叫终端显示的时间为准的第二预定时间点。
在另一实施例中, 根据时间差, 确定被叫终端与本端同步播放共享视频的时间之前, 还包括:
当被叫终端与本端播放同一共享视频时,监控被叫终端共享视频的播放进度是否与本 端播放进度一致;
当被叫终端共享视频的播放进度与本端播放进度不一致时,获取本端与被叫终端之间 的时间差。
另一方面, 本公开还公开了一种多方共享视频的方法, 包括:
接收主叫终端向被叫终端发起的多方共享视频请求;
根据接收到被叫终端返回的确认响应的接收时间,确定主叫终端与被叫终端之间的时 间差;
根据时间差, 确定被叫终端与主叫终端同步播放共享视频的时间。
在另一实施例中, 根据接收到被叫终端返回的确认响应的接收时间, 确定主叫终端与 被叫终端之间的时间差包括:
获取主叫终端以本端显示的时间为准,记录的主叫终端发送多方共享视频请求的发送 时间, 以及主叫终端接收到被叫终端返回的确认响应的接收时间;
根据发送时间、 接收时间, 确定主叫终端与被叫终端之间的通信时间;
根据通信时间确定主叫终端与被叫终端之间播放位于主叫终端的共享视频的时间差。
在另一实施例中, 根据时间差, 确定被叫终端与主叫终端同步播放共享视频的时间, 包括:
当被叫终端同步主叫终端正在播放的共享视频时,根据时间差以及共享视频在主叫终 端的第一播放进度, 确定被叫终端播放共享视频的第二播放进度; 第二播放进度对应的时 间为被叫终端与主叫终端同步播放共享视频的时间;
和 /或, 以主叫终端显示的时间为准, 当被叫终端同步主叫终端在第一预定时间播放 的共享视频时, 根据时间差以及第一预定时间, 确定被叫终端播放共享视频的第二预定时 间; 其中, 在第二预定时间主叫终端向被叫终端发送共享视频。
在另一实施例中, 根据接收到被叫终端返回的确认响应的接收时间, 确定主叫终端与 被叫终端之间的时间差, 包括:
获取主叫终端以本端显示的时间为准,记录的主叫终端发送多方共享视频请求的发送 时间, 以及主叫终端接收到被叫终端返回的确认响应的接收时间; 还包括:
解析确认响应, 获得以被叫终端显示的时间为准的、 确认响应的发送时间; 根据确认响应的发送时间、 主叫终端接收到确认响应的接收时间、 主叫终端发送多方 共享视频请求的发送时间, 确定主叫终端与被叫终端之间的时间差。
在另一实施例中, 根据时间差, 确定被叫终端与主叫终端同步播放共享视频的时间, 包括:
获取以主叫终端显示的时间为准, 确定播放共享视频的第一预定时间点;
根据第一预定时间点、和与被叫终端之间的时间差,确定出被叫终端播放共享视频的、 以被叫终端显示的时间为准的第二预定时间点。
在另一实施例中, 根据时间差, 确定被叫终端与主叫终端同步播放共享视频的时间之 前, 还包括:
当被叫终端与主叫终端播放同一共享视频时,监控被叫终端共享视频的播放进度是否 与主叫终端播放进度一致;
当被叫终端共享视频的播放进度与主叫终端播放进度不一致时,获取主叫终端与被叫 终端之间的时间差。
另一方面, 本公开还公开了一种多方共享视频的系统, 包括:
主叫终端, 云端服务器和至少一个被叫终端;
主叫终端包括:
共享发起模块, 用于向被叫终端发起多方共享视频请求;
时间差计算模块, 用于根据接收到被叫终端返回的确认响应的接收时间, 确定本端与 被叫终端之间的时间差;
同步时间确认模块,用于根据时间差,确定被叫终端与本端同步播放共享视频的时间; 云端服务器用于中转主叫终端与被叫终端之间的数据。
在另一实施例中, 时间差计算模块包括:
第一时间获取模块, 用于以本端显示的时间为准, 记录本端发送多方共享视频请求的 发送时间、 以及接收到被叫终端返回的确认响应的接收时间;
第一通信时间确定模块, 用于根据发送时间、 接收时间, 确定本端与被叫终端之间的 通信时间;
第一时间差计算模块,用于根据通信时间确定本端与被叫终端之间播放位于本端的共 享视频的时间差。
在另一实施例中, 时间差计算模块包括:
第二时间获取模块, 用于以本端显示的时间为准, 记录本端发送多方共享视频请求的 发送时间, 以及接收到被叫终端返回的确认响应的接收时间, 以及解析确认响应, 获得以 被叫终端显示的时间为准的、 确认响应的发送时间;
第二时间差计算模块, 用于根据确认响应的发送时间、 接收到确认响应的接收时间、 发送多方共享视频请求的发送时间, 确定本端与被叫终端之间的时间差。
另一方面, 本公开还公开了一种多方共享视频的系统, 包括:
主叫终端, 云端服务器和至少一个被叫终端;
云端服务器包括:
请求接收模块, 用于接收主叫终端向被叫终端发起的多方共享视频请求;
时间差计算模块, 用于根据接收到被叫终端返回的确认响应的接收时间, 确定主叫终 端与被叫终端之间的时间差;
同步时间确认模块, 用于根据时间差, 确定被叫终端与主叫终端同步播放共享视频的 时间。
在另一实施例中, 时间差计算模块包括:
第三时间获取模块, 用于获取主叫终端以本端显示的时间为准, 记录的主叫终端发送 多方共享视频请求的发送时间, 以及主叫终端接收到被叫终端返回的确认响应的接收时 间;
第二通信时间确定模块, 用于根据发送时间、 接收时间, 确定主叫终端与被叫终端之 间的通信时间;
第三时间差计算模块,用于根据通信时间确定主叫终端与被叫终端之间播放位于主叫 终端的共享视频的时间差。
在另一实施例中, 根时间差计算模块包括:
第四时间获取模块, 用于获取主叫终端以本端显示的时间为准, 记录的主叫终端发送 多方共享视频请求的发送时间, 以及主叫终端接收到被叫终端返回的确认响应的接收时 间; 解析确认响应, 获得以被叫终端显示的时间为准的、 确认响应的发送时间;
第四时间差计算模块, 用于根据确认响应的发送时间、 主叫终端接收到确认响应的接 收时间、 主叫终端发送多方共享视频请求的发送时间, 确定主叫终端与被叫终端之间的时 间差。
本公开的一些有益效果可以包括:
本公开实施例通过主叫终端与各被叫终端的通信过程,计算主叫终端至各被叫终端之 间的时间差; 针对每一个被叫终端, 主叫终端基于上述时间差, 通知被叫终端与主叫终端 同步播放共享视频。
首先, 本公开实施例提供的方法可对主叫终端和各被叫终端之间的播放时间进行修 正, 本公开则可使主叫终端和被叫终端在针对同一个共享视频的播放进度上保持一致, 达 到播放进度时间完全同步的效果。
其次,本公开实施例提供的方法可避免通信时延导致的主叫终端与被叫终端的视频播 放不同步的问题。
当然, 实施本公开实施例提供的任一产品不一定需要同时达到上述的所有优点。 应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。 附图说明
图 1是本公开实施例一的一种多方视频共享的方法示例性流程示意图;
图 2是本公开实施例二的一种多方视频共享的方法示例性流程示意图;
图 3是本公开一种多方视频共享对应实施例二的数据处理示例图;
图 4是本公开实施例三的一种多方视频共享的方法示例性流程示意图;
图 5是本公开一种多方视频共享对应实施例三的数据处理示例图;
图 6是本公开实施例四的一种多方视频共享的方法示例性流程示意图;
图 7是本公开实施例五的一种多方视频共享的方法示例性流程示意图;
图 8是本公开实施例六的一种多方视频共享的示例性装置结构示意图;
图 9是本公开实施例七的一种多方视频共享的示例性系统结构示意图;
图 10是本公开实施例八的一种多方视频共享的示例性系统结构示意图。
通过上述附图, 已示出本公开明确的实施例, 后文中将有更详细的描述。 这些附图和 文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本 领域技术人员说明本公开的概念。 具体实施方式
为使本公开的上述目的、特征和优点能够更加明显易懂, 下面结合附图和具体实施方 式对本公开作进一步详细的说明。
实施例一
参照图 1, 示出了本公开一种多方视频共享的方法实施例一的流程示意图, 具体可以 包括:
在步骤 110中, 向被叫终端发起多方共享视频请求;
在本公开实施例中, 主叫终端可向云端服务器发起多方共享视频请求, 再由云端服务
器通知各被叫终端。本公开实施例中, 主叫终端可获取其好友列表中当前在线的各被叫终 端列表, 然后针对在线的各被叫终端发起多方共享视频请求。在本公开中被叫终端可以为 一个也可以为多个。
在本公开实施例中, 主叫终端可为 STB ( Set Top Box, 数字视频变换盒) , 通常称作 机顶盒或机上盒, 在机顶盒从云端服务器获取在线的好友列表后, 可在电视上进行显示。 本公开可基于 IMS (IP Multimedia Subsystem, IP多媒体子系统) 的技术架构, 进行上述 视频共享业务。
在步骤 120中, 根据接收到被叫终端返回的确认响应的接收时间, 确定本端与被叫终 端之间的时间差;
在公开实施例中,出现的 "本端"可以理解为主叫终端。
针对主叫终端的多方共享视频请求,各被叫终端则针对上述多方共享请求返回确认响 应给主叫终端,那么主叫终端则可依据上述通信过程计算主叫终端至各被叫终端之间的时 间差。
在步骤 130中, 根据时间差, 确定被叫终端与本端同步播放共享视频的时间。
在计算得到主叫终端和被叫终端的时间差之后,确定被叫终端与本端同步播放共享视 频的时间。然后在共享视频的时候, 主叫终端即可根据该时间差通知被叫终端同步播放视 频。
在本公开实施例中, 在通知被叫终端播放上述共享视频时, 通过发送上述共享视频的 URL (Uniform / Universal Resource Locator, 统一资源定位符) 给被叫终端, 由被叫终端 自己访问该 U L进行播放。
另外, 为了使主叫终端和各被叫终端在共享视频时还可以进行语音交流, 本公开实施 例提供的方法可还包括:
在步骤 S171中,通过云端服务器监控主叫终端和各被叫终端之间是否为 P2P全联通; 在步骤 S172中, 如果主叫终端和各被叫终端之间是 P2P全联通, 则主叫终端和各被 叫终端通过 P2P进行语音或文字通信;
在步骤 S173中, 如果主叫终端和各被叫终端之间不是 P2P全联通, 则通过云端服务 器中转主叫终端和各被叫终端的语音数据进行语音或文字通信。
本公开实施例中, 主、 被叫终端建立共享后, 可共享的云端服务器(比如电视机顶盒 服务器) 中的资源, 并无需从视频开始阶段共享, 可以在视频播放的任何阶段, 将主叫终 端播放的视频实时的共享到被叫终端, 达到完全同步的效果。 实施例二
参照图 2, 示出了本公开优选的一种多方视频共享的方法实施例二的流程示意图, 可 以包括:
在步骤 200中, 向被叫终端发起多方共享视频请求;
在步骤 210中,以本端显示的时间为准,记录本端发送多方共享视频请求的发送时间、 以及接收到被叫终端返回的确认响应的接收时间;
在公开实施例中,出现的 "本端"可以理解为主叫终端。
在本公开实施例中, 主叫终端可以直接向被叫终端发送多方视频共享请求, 也可将多 放视频共享请求发送至云端服务器, 再由云端服务器转发至各被叫终端。在本公开实施例 中, 在主叫终端发送多方视频共享请求时, 以本端显示的时间为准, 主叫终端记录发送上 述多方共享视频请求的发送时间 t8。然后被叫终端发送确认响应以响应上述请求, 主叫终 端接收到确认响应时记录接收时间 t9。
若主叫终端先将多放视频共享请求发送给云端服务器,云端服务器可将所收多方共享 视频请求转发给各被叫终端。在本公开实施例中, 被叫终端接收到云端服务器转发的多方 共享视频请求, 则要对上述请求进行响应, 并发送确认响应给云端服务器; 云端服务器接 收到该确认响应后, 则向主叫终端转发该确认响应; 那么主叫终端接收该确认响应的时候 则记录接收时间 t9。
在步骤 220中, 根据发送时间、 接收时间, 确定本端与被叫终端之间的通信时间; 在本公开实施例中, 可通过(t9-t8) /2计算上述主叫终端与上述被叫终端之间的通信 时间。
在步骤 230中,根据通信时间确定本端与被叫终端之间播放位于本端的共享视频的时 间差。
可将通信时间 (t9-t8) /2确定为本端与被叫终端之间播放位于本端的共享视频的时间 差。
在步骤 240中, 根据时间差, 确定被叫终端与本端同步播放共享视频的时间。
其中, 根据时间差, 确定被叫终端与本端同步播放共享视频的时间, 可以包括: 在步骤 A241中, 当被叫终端同步本端正在播放的共享视频时, 根据时间差以及共享 视频在本端的第一播放进度, 确定被叫终端播放共享视频的第二播放进度; 第二播放进度 对应的时间为被叫终端与本端同步播放共享视频的时间;
上述针对每一个被叫终端, 主叫终端根据针对共享视频的第一进度时间, 和对应上述 被叫终端的时间差,通知被叫终端在由第一进度时间与时间差计算得到的第二进度时间位 置, 开始播放上述共享视频包括:
在步骤 A2411中, 主叫终端获取播放共享视频的第一进度时间 t4;
在步骤 A2412中, 针对与一被叫终端的时间差 n, 计算 t4+m得到第二进度时间 t6; 比如主叫终端 A对于视频 1, 播放的第一进度时间为 00:01 : 00 ( 1分钟 00秒时刻), 主叫终端 A确定本端与被叫终端 C之间播放位于本端的共享视频的时间差 n=30秒; 当主 叫终端在此时通知被叫终端播放视频 1时, 那么该通知到达被叫终端时, 主叫终端已经播 放到 00:01 : 30秒, 那么被叫终端应在第二进度时间为 00:01 : 00+30秒 =00:01 : 30的位置 播放视频 1, 此时主叫终端和被叫终端会在播放进度时间上保持一致。
然后, 将 t6 通过云端服务器发送至被叫终端, 通知终端在播放视频的播放进度时间 为 t6的时间位置播放共享视频。
和 /或, 步骤 A242, 以本端显示的时间为准, 当被叫终端同步本端在第一预定时间播 放的共享视频时, 根据时间差以及第一预定时间, 确定被叫终端播放共享视频的第二预定 时间; 其中, 在第二预定时间本端向被叫终端发送共享视频。
比如主叫终端显示时间为 12:00:00,主叫终端 A确定本端与被叫终端 C之间播放位于 本端的共享视频的时间差 n=30秒, 预定时间为 12: 10:00, 那么主叫终端向被叫终端发送 共享视频的第二预定时间为 12: 10:00-30秒 =12:09:30, 那么主叫终端在 12:09:30时刻发送 共享视频。
然后, 即可根据被叫终端与本端同步播放共享视频的时间通知被叫终端同步播放视 频。
在一个实施中,为了使本公开在主叫终端或者被叫终端出现延迟而导致播放滞后等情 况时, 还能调整主叫终端和被叫终端的播放进度一致:
在根据时间差, 确定被叫终端与本端同步播放共享视频的时间之前, 还包括: 在步骤 A251中, 当被叫终端与本端播放同一共享视频时, 监控被叫终端共享视频的 播放进度是否与本端播放进度一致;
在一个实施中, 针对每一被叫终端, 主叫终端根据时间差和时间差, 监控被叫终端针 对共享视频的当前进度时间是否与主叫终端针对共享视频的当前进度时间一致包括: 在步骤 B31中,每个被叫终端定时向主叫终端报告被叫终端针对共享视频的当前进度 时间;
比如主叫终端每隔 5秒将当前播放视频的当前进度时间 t7发送给主叫终端。
在步骤 B32中,主叫终端根据时间差和时间差、主叫终端针对共享视频的当前进度时 间和每个被叫终端针对共享视频的当前进度时间,判断每个被叫终端针对共享视频的当前 进度时间是否与主叫终端针对共享视频的当前进度时间一致。
在本公开实施例中, 被叫终端可将自身的播放时间发送给主叫终端, 主叫终端则根据 时间差计算两者是否一致, 比如被叫终端将当前的进度时间 00: 10: 10发送给主叫终端, 时 间差 n=30秒, 主叫终端接收到上述被叫终端的播放进度时间为 00: 10: 10, 则计算被叫终 端的播放进度为 00: 10: 10+30=00: 10:40, 将 00: 10:40与本地的播放进度时间进行比较, 判 断是否一致, 如果一致, 则两端正常播放; 如果不一致, 进入步骤 A252。
在步骤 A252中, 当被叫终端共享视频的播放进度与本端播放进度不一致时, 获取本 端与被叫终端之间的时间差。
在本公开中, 主叫终端播放进度可能滞后于被叫终端, 也肯能被叫终端滞后与主叫终 端, 那么以主叫终端当前播放进度为标准, 则主叫终端播放进度可能滞后于被叫终端时, 获取本端与被叫终端之间的时间差为负数; 能被叫终端滞后与主叫终端时, 获取本端与被 叫终端之间的时间差为正数。
在获取时间差后, 还包括:
在步骤 A253中, 根据本端与被叫终端播放进度之间的时间差, 通知被叫终端与主叫 终端保持播放进度一致。
其中,如果被叫终端针对共享视频的当前进度时间滞后于主叫终端针对共享视频的当 前进度时间, 则主叫终端通知被叫终端跳过针对共享视频的滞后播放的时间差, 保持与主 叫终端播放时间一致;
如果主叫终端发现某个被叫终端由于网络等原因, 播放滞后了一段时间 p, 可以发送 命令给这个被叫终端跳过时间段 p后继续播放。
其中,如果被叫终端针对共享视频的当前进度时间滞后于主叫终端针对共享视频的当 前进度时间, 则主叫终端通知被叫终端暂停时间差后再播放共享视频, 保持与主叫终端播 放时间一致;
如果主叫终端发现由于网络等原因, 播放滞后了某个被叫终端一段时间 p, 可以发送 命令给这个被叫终端暂停播放 P后继续播放。
其中, 在一个实施例中, 在根据主叫终端与被叫终端播放进度之间的时间差, 通知被 叫终端与主叫终端保持播放进度一致之前, 还包括:
在步骤 B33中,判断主叫终端与被叫终端播放进度之间的时间差是否达到阈值, 如果 达到, 则主叫终端通知被叫终端跳过针对共享视频的滞后播放的时间段, 保持与主叫终端 播放时间一致; 如果未达到, 则保持原状。
比如某个被叫终端播放的进度时间只延后主叫终端 2秒, 而判断阈值为 10秒, 那么 主叫终端不需发送指令通知被叫终端一致。
参照图 3, 其为对应图 2的处理流程, 可以包括:
在步骤 S200中, 主叫终端向至少一个被叫终端发起多方共享视频请求;
在步骤 S210中, 主叫终端记录发送多方共享视频请求的发送时间 t8;
在步骤 S220中, 针对每一被叫终端, 记录主叫终端在接收到被叫终端针对多方共享 视频请求的确认响应时的接收时间 t9;
在步骤 S230中, 针对每一被叫终端, 根据发送时间 t8、 接收时间 t9, 确定本端与被 叫终端之间的通信时间 n;
在公开实施例中,出现的 "本端"可以理解为主叫终端。
在步骤 S240中, 根据通信时间确定本端与被叫终端之间播放位于本端的共享视频的 时间差 m。
在步骤 S250中, 根据时间差 m, 确定被叫终端与本端同步播放共享视频的时间 t0; 在步骤 S260中, 根据所确定的被叫终端与本端同步播放共享视频的时间 t0, 通知被 叫终端与本端同步播放共享视频。
另外, 为了使主叫终端和各被叫终端在共享视频时还可以进行语音交流, 本公开可还 包括:
在步骤 S271中,通过云端服务器监控主叫终端和各被叫终端之间是否为 P2P全联通; 在步骤 S272中, 如果主叫终端和各被叫终端之间是 P2P全联通, 则主叫终端和各被 叫终端通过 P2P进行语音或文字通信;
在步骤 S273中, 如果主叫终端和各被叫终端之间不是 P2P全联通, 则通过云端服务 器中转主叫终端和各被叫终端的语音数据进行语音或文字通信。
在本公开实施例中, 可以建立一个临时交流语音群。有两种方式建立一个临时交流语 音群, 如果群成员比较少时, 并且每个群成员之间可以通过 P2P的方式联通时, 则可以使 用 P2P语音模块进行语音通讯; 如果群成员之间不是全联通的, 则可以通过云端音频中转 模块进行语音通讯。 即本公开还可以建立讨论群, 通过语音、 文字等形式进行实时讨论。
本实施例中与实施例一类似的步骤在此不再详述。 实施例三
参照图 4, 其示出了本公开实施例三的一种多方共享视频的方法的流程示意图, 可以 包括:
在步骤 300中, 向被叫终端发起多方共享视频请求;
本步骤与实施例二的步骤 200类似, 在此不再详述。
在步骤 310中,以本端显示的时间为准,记录本端发送多方共享视频请求的发送时间、 以及接收到被叫终端返回的确认响应的接收时间; 解析确认响应, 获得以被叫终端显示的 时间为准的、 确认响应的发送时间;
在公开实施例中,出现的 "本端"可以理解为主叫终端。
主叫终端记录上述多方共享视频请求的发送时间 tl。
在本公开实施例中, 上述记录的主叫终端发送多方共享视频请求的发送时间包括: 在步骤 A311中, 主叫终端记录发送多方共享视频请求的发送时间, 多方共享视频请 求由主叫终端向云端服务器发送; 云端服务器基于多方共享视频请求, 发送获取请求至各 被叫终端; 该获取请求包括: 通知被叫终端返回响应时间。
在主叫终端向云端服务器发送多方共享视频请求时,主叫终端记录发送多方共享视频 请求的发送时间 tl。
在步骤 A312中, 针对每一被叫终端, 主叫终端记录接收到被叫终端的确认响应的接 收时间; 确认响应为在被叫终端接收到获取请求后, 将针对获取请求的确认响应返回给云 端, 再通过云端服务器返回给主叫终端; 确认响应包括被叫终端系统中发送确认响应的时 间。
云端服务器接收到上述多方共享视频请求后, 基于上述多方共享视频请求, 激活并发 送获取请求至各被叫终端, 通过上述获取请求通知被叫终端返回确认响应, 并在确认响应 中通知被叫终端将发送确认响应的时间封装进入确认相应, 即当被叫终端接收到上述获取 请求后, 将被叫终端系统发送响到时间 t3, 跟确认响应一起发送给云端服务器, 云端服务
器在将该确认响应转发给主叫终端。
被叫终端针对上述多方共享视频请求进行响应, 然后发送确认响应至主叫终端后, 主 叫终端在接收上述确认响应时, 记录接收时间 t2, 并解析确认响应, 提取 t3。
在步骤 320中, 根据确认响应的发送时间、 接收到确认响应的接收时间、 发送多方共 享视频请求的发送时间, 确定本端与被叫终端之间的时间差;
基于主叫终端的发送时间接收时间, 和被叫终端响应时间(即被叫终端发送确认响应 时的系统时间) , 即可计算主叫终端与各被叫终端之间的系统时间之间的时间差。
在一个实施例中, 根据确认响应的发送时间、 接收到确认响应的接收时间、 发送多方 共享视频请求的发送时间, 确定本端与被叫终端之间的时间差包括:
在步骤 A321中, 将主叫终端的发送时间 tl、接收时间 t2, 和被叫终端的响应时间 t3, 按 t2- (t3+ (tl+t2) /2) 计算得到主叫终端与被叫终端系统时间之间的时间差。
其中, 在若数据从 A->B,B->A传送时间是一样的情况下, 数据从主叫终端 A发送到 被叫终端 B需要的时间为 (t2 - tl)/2。 进而根据被叫终端返回的其自身的当前时间 t3, 则 可以计算出主叫终端 A和被叫终端 B的时间差为 t2 - (t3 + (t2 - tl)/2) o
在步骤 330中, 根据时间差, 确定被叫终端与本端同步播放共享视频的时间。
其中, 根据时间差, 确定被叫终端与本端同步播放共享视频的时间, 包括: 在步骤 S331中, 以本端显示的时间为准, 确定播放共享视频的第一预定时间点; 比如主叫终端本地显示的时间为 10: 00, 在以 10: 00为标准的情况下, 确定播放共 享视频的时间为 11 : 00。
在步骤 S332中, 根据第一预定时间点、 和与被叫终端之间的时间差, 确定出被叫终 端播放共享视频的、 以被叫终端显示的时间为准的第二预定时间点。
比如通过上述步骤计算得到时间差为 m, 主叫终端基于本地的系统时间要求在上午 11: 00同时观看视频 A, 那么通知被叫终端的观看的系统时间为 l l :00+m时刻 (第二预 定时间点) , 其中 m可为整值也可为负值。
然后, 可根据被叫终端与本端同步播放共享视频的时间通知被叫终端播放共享视频。 在一个实施例中, 根据时间差, 确定被叫终端与主叫终端同步播放共享视频的时间之 前, 还包括:
在步骤 A351中, 当被叫终端与本端播放同一共享视频时, 监控被叫终端共享视频的 播放进度是否与本端播放进度一致;
在步骤 A352中, 当被叫终端共享视频的播放进度与本端播放进度不一致时, 获取主 叫终端与被叫终端之间的时间差。
本实施例中, 主叫终端和各被叫终端均以主叫终端的系统时间为标准进行校准, 保证 各被叫终端可与主叫终端在同一时刻观看共享视频。
本实施例中与前述实施例类似的步骤原理类似, 在此不在详述。
参照图 5, 其为对应实施例图 4的数据处理流程图, 可以包括:
在步骤 S300中, 主叫终端向至少一个被叫终端发起多方共享视频请求; 在步骤 S310中, 记录的主叫终端发送多方共享视频请求的发送时间 tl ;
在步骤 S320中, 针对每一被叫终端, 记录主叫终端在接收到被叫终端针对多方共享 视频请求的确认响应时的接收时间 t2;确认响应包括被叫终端系统中发送确认响应的时间 t3;
即被叫终端发送确认响应时的显示时间 t3。
在步骤 S330中, 针对每一被叫终端, 根据确认响应中的响应时间 t3、 发送时间 tl、 接收时间 t2计算主叫终端与各被叫终端之间的系统时间之间的时间差 m;
在步骤 S340中, 根据时间差 m, 确定被叫终端与本端同步播放共享视频的时间 t0; 在公开实施例中,出现的 "本端"可以理解为主叫终端。
在步骤 S350中, 根据确定的被叫终端与本端同步播放共享视频的时间 t0, 通知被叫 终端播放共享视频。
另外, 为了使主叫终端和各被叫终端在共享视频时还可以进行语音交流, 本公开可还 包括:
在步骤 S271中,通过云端服务器监控主叫终端和各被叫终端之间是否为 P2P全联通; 在步骤 S272中, 如果主叫终端和各被叫终端之间是 P2P全联通, 则主叫终端和各被 叫终端通过 P2P进行语音或文字通信;
在步骤 S273中, 如果主叫终端和各被叫终端之间不是 P2P全联通, 则通过云端服务 器中转主叫终端和各被叫终端的语音数据进行语音或文字通信。
本实施例中与前述实施例类似的步骤在此不再详述。
在实际中, 主叫终端的系统时间与被叫终端的系统时间之间可能也存在误差, 那么为 了避免系统时间的误差,则需要计算系统误差,实现主叫终端与被叫终端之间的同步共享。 比如主叫终端的系统时间比被叫终端的系统时间快 5分钟,那么主叫终端通知被叫终端在 11 :00看视频时, 那么被叫终端还在 10:55, 被叫终端还没有开始观看视频, 导致主叫终端 和被叫终端不同步, 而本实施例可完全解决主叫终端与被叫终端系统时间误差的问题, 使 主叫终端和被叫终端可以完全同步在预定时间点开始播放共享视频。 实施例四
参照图 6, 示出了本公开优选的一种多方视频共享的方法实施例四的流程示意图, 可 以包括:
在步骤 410中, 接收主叫终端向被叫终端发起的多方共享视频请求;
在本公开实施例中, 主叫终端可向云端服务器发起多方共享视频请求, 再由云端服务 器通知各被叫终端。本公开实施例中, 主叫终端可获取其好友列表中当前在线的各被叫终 端列表, 然后针对在线的各被叫终端发起多方共享视频请求。在本公开中被叫终端可以为 一个也可以为多个。
在步骤 420中, 根据接收到被叫终端返回的确认响应的接收时间, 确定主叫终端与被 叫终端之间的时间差;
本公开实施例中, 可由云端服务器根据接收到被叫终端返回的确认响应的接收时间, 确定主叫终端与被叫终端之间的时间差。
在步骤 430中, 根据时间差, 确定被叫终端与主叫终端同步播放共享视频的时间。 在计算得到主叫终端和被叫终端的时间差之后,确定被叫终端与本端同步播放共享视 频的时间。然后在共享视频的时候, 主叫终端即可根据该时间差通知被叫终端同步播放视 频。
在公开实施例中,出现的 "本端"可以理解为主叫终端。
另外, 为了使主叫终端和各被叫终端在共享视频时还可以进行语音交流, 本公开可还 包括:
在步骤 S171中, 云端服务器监控主叫终端和各被叫终端之间是否为 P2P全联通; 在步骤 S172中, 如果主叫终端和各被叫终端之间是 P2P全联通, 则主叫终端和各被 叫终端通过 P2P进行语音或文字通信;
在步骤 S173中, 如果主叫终端和各被叫终端之间不是 P2P全联通, 则通过云端服务 器中转主叫终端和各被叫终端的语音数据进行语音或文字通信。
本公开实施例中, 主、 被叫终端建立共享后, 可共享的云端服务器(比如电视机顶盒 服务器) 中的资源, 并无需从视频开始阶段共享, 可以在视频播放的任何阶段, 将主叫终 端播放的视频实时的共享到被叫终端, 达到完全同步的效果。本公开实施例提供的方法可 基于云端服务器中转数据的主叫终端和各被叫终端之间的同步播放共享视频的时间进行 修正, 本公开则可使主叫终端和被叫终端在针对同一个共享视频的播放进度上保持一致, 达到播放进度时间完全同步的效果,可避免通信时延导致的主叫终端与被叫终端的视频播 放不同步的问题。
实施例五
参照图 7, 示出了本公开实施例的一种多方视频共享的方法实施例五的流程示意图, 可以包括:
在步骤 500中, 云端服务器接收主叫终端向被叫终端发起的多方共享视频请求; 在本公开实施例中, 共享视频是存储于云端服务器中, 由云端服务器提供给各终端进 行播放。
在步骤 510中, 获取主叫终端以本端显示的时间为准, 记录的主叫终端发送多方共享 视频请求的发送时间, 以及主叫终端接收到被叫终端返回的确认响应的接收时间;
在公开实施例中,出现的 "本端"可以理解为主叫终端。
在本公开实施例中, 主叫终端在发送多方共享视频请求时, 会获取主叫终端以本端显 示的时间为准, 记录发送多方共享视频请求的发送时间 tl l, 主叫终端在接收被叫终端返 回的确认响应时,会记录接收时间 tl2,所云端服务器获取该发送时间 ti l和接收时间 tl2。
在步骤 520中,根据发送时间、接收时间,确定主叫终端与被叫终端之间的通信时间; 即云端服务器计算 (tl l- tl2) 12, 即为主叫终端与被叫终端之间的通信时间。
在步骤 530中,根据通信时间确定主叫终端与被叫终端之间播放位于主叫终端的共享 视频的时间差;
可将通信时间(ti l- tl2) 12确定为被叫终端之间播放位于主叫终端的共享视频的时间 差。
在步骤 540中, 根据时间差, 确定被叫终端与主叫终端同步播放共享视频的时间。 在一个实施例中, 根据时间差, 确定被叫终端与主叫终端同步播放共享视频的时间, 包括:
在步骤 A441中, 当被叫终端同步主叫终端正在播放的共享视频时, 根据时间差以及 共享视频在主叫终端的第一播放进度, 确定被叫终端播放共享视频的第二播放进度; 第二 播放进度对应的时间为被叫终端与主叫终端同步播放共享视频的时间;
主叫终端将其第一播放进度发送至云端服务器,云端服务器则根据时间差以及共享视 频在主叫终端的第一播放进度, 确定被叫终端播放共享视频的第二播放进度, 然后根据第 二播放进度通知被叫终端与主叫终端同步播放共享视频。
和 /或, 在步骤 A442中, 以主叫终端显示的时间为准, 当被叫终端同步主叫终端在第 一预定时间播放的共享视频时, 根据时间差以及第一预定时间, 确定被叫终端播放共享视 频的第二预定时间; 其中, 在第二预定时间主叫终端向被叫终端发送共享视频。
主叫终端将当前显示的时间和第一预定时间发送给云端服务器,云端服务器则根据时 间差、第一预定时间和主叫终端当前显示的时间, 确定被叫终端播放共享视频的第二预定 时间, 然后通知主叫终端在第二预定时间发送共享视频给被叫终端。
在一个实施例中, 根据时间差, 确定被叫终端与主叫终端同步播放共享视频的时间之 前, 还包括:
在步骤 A451中, 当被叫终端与主叫终端播放同一共享视频时, 监控被叫终端共享视 频的播放进度是否与本端播放进度一致;
而在本实施例中,时间差为主叫终端和被叫终端显示时间之间的差值。在本实施例中, 云端服务器可根据时间差、主叫终端的播放进度和被叫终端的播放进度判断被叫终端共享 视频的播放进度是否与本端播放进度一致。比如云端服务器可通知被叫终端在本地系统的 显示时间 A+时间差的时刻发送第二播放进度给云端服务器, 通知主叫终端在本地系统的 显示时间 A时刻发送第一播放进度给云端服务器,然后比较第一播放进度和第二播放进度 是否一致即可。
在步骤 A452中, 当被叫终端共享视频的播放进度与主叫终端播放进度不一致时, 获 取主叫终端与被叫终端之间的时间差。
比如云端服务器可通知被叫终端在本地系统的显示时间 A+时间差的时刻发送第二播 放进度给云端服务器,通知主叫终端在本地系统的显示时间 A时刻发送第一播放进度给云
端服务器, 那么即可计算第一播放进度与第二播放进度之间的差值, 比如第一播放进度- 第二播放进度 =k, 那么当 k为正值时, 被叫终端播放进度滞后, 则可通知被叫终端跳过 k, 当 k为负值时, 主叫终端播放进度滞后, 则可通知被叫终端暂停!^。
另外, 为了使主叫终端和各被叫终端在共享视频时还可以进行语音交流, 本公开实施 例可还包括:
在步骤 S271中,通过云端服务器监控主叫终端和各被叫终端之间是否为 P2P全联通; 在步骤 S272中, 如果主叫终端和各被叫终端之间是 P2P全联通, 则主叫终端和各被 叫终端通过 P2P进行语音或文字通信;
在步骤 S273中, 如果主叫终端和各被叫终端之间不是 P2P全联通, 则通过云端服务 器中转主叫终端和各被叫终端的语音数据进行语音或文字通信。
本公开实施例提供的方法可基于云端服务器中转数据的主叫终端和各被叫终端之间 的同步播放共享视频的时间进行修正,本公开则可使主叫终端和被叫终端在针对同一个共 享视频的播放进度上保持一致, 达到播放进度时间完全同步的效果, 可避免通信时延导致 的主叫终端与被叫终端的视频播放不同步的问题。本实施例中与前述实施例中类似的步骤 原理类似, 在此不再详述。 实施例六
参照图 8, 示出了本公开实施例的一种多方视频共享的方法实施例六的流程示意图, 可以包括:
在步骤 600中, 云端服务器接收主叫终端向被叫终端发起的多方共享视频请求; 在步骤 610中, 获取主叫终端以本端显示的时间为准, 记录的主叫终端发送多方共享 视频请求的发送时间, 以及主叫终端接收到被叫终端返回的确认响应的接收时间; 解析确 认响应, 获得以被叫终端显示的时间为准的、 确认响应的发送时间;
在公开实施例中,出现的 "本端"可以理解为主叫终端。
在主叫终端向云端服务器发送多方共享视频请求时,主叫终端记录发送多方共享视频 请求的发送时间 t21。 云端服务器根据多方共享视频请求可重构获取请求给各被叫终端, 请求各被叫终端发送确认响应, 并在发送确认响应时将被叫终端当前显示时间 t23封装至 确认响应中; 主叫终端在接收确认响应时记录主叫终端当前显示的时间, 即接收时间 t22。
云端服务器则获取主叫终端记录的 t21, t22, 并可解析确认响应中的 t23。 其中 t23也 可由主叫终端解析得到后再发送给云端服务器。
在步骤 620中, 根据确认响应的发送时间、 主叫终端接收到确认响应的接收时间、 主 叫终端发送多方共享视频请求的发送时间, 确定主叫终端与被叫终端之间的时间差。
将主叫终端的发送时间 tl、接收时间 t2,和被叫终端的响应时间 t3,按 t2- (t3+ (tl+t2) /2) 计算得到主叫终端与被叫终端系统时间之间的时间差。 即主叫终端的显示时间和被叫 终端的显示时间之间的时间差。
在步骤 630中, 根据时间差, 确定被叫终端与主叫终端同步播放共享视频的时间。 其中, 根据时间差, 确定被叫终端与主叫终端同步播放共享视频的时间, 包括: 在步骤 A631中, 获取以主叫终端显示的时间为准, 确定播放共享视频的第一预定时 间点;
主叫终端将以及主叫终端显示的时间为标准确认的以第一预定时间点,然后将第一预 定时间点发送给云端服务器。 比如主叫终端本地显示的时间为 10: 00, 在以 10: 00为标 准的情况下, 确定播放共享视频的时间为 11 : 00, 然后将 11 : 00发送给云端服务器。
在步骤 A632中, 根据第一预定时间点、 和与被叫终端之间的时间差, 确定出被叫终 端播放共享视频的、 以被叫终端显示的时间为准的第二预定时间点。
比如通过上述步骤计算得到时间差为 m, 主叫终端基于本地的系统时间要求在上午
11: 00同时观看视频 A, 那么通知被叫终端的观看的系统时间为 l l :00+m时刻 (第二预 定时间点) , 其中 m可为整值也可为负值。
然后, 可根据被叫终端与本端同步播放共享视频的时间通知被叫终端播放共享视频。 在一个实施例中, 根据时间差, 确定被叫终端与主叫终端同步播放共享视频的时间之 前, 还包括:
在步骤 A641中, 当被叫终端与主叫终端播放同一共享视频时, 监控被叫终端共享视 频的播放进度是否与本端播放进度一致;
在本实施例中, 由于播放终端, 云端服务器可监控被叫终端与主叫终端各自的播放进 度, 将主叫终端与被叫终端的播放进度进行比较, 判断是否一致。
在步骤 A642中, 当被叫终端共享视频的播放进度与主叫终端播放进度不一致时, 获 取主叫终端与被叫终端之间的时间差。
另外, 为了使主叫终端和各被叫终端在共享视频时还可以进行语音交流, 本公开实施 例可还包括:
在步骤 S271中,通过云端服务器监控主叫终端和各被叫终端之间是否为 P2P全联通; 在步骤 S272中, 如果主叫终端和各被叫终端之间是 P2P全联通, 则主叫终端和各被 叫终端通过 P2P进行语音或文字通信;
在步骤 S273中, 如果主叫终端和各被叫终端之间不是 P2P全联通, 则通过云端服务 器中转主叫终端和各被叫终端的语音数据进行语音或文字通信。
本公开实施例提供的方法可基于云端服务器中转数据的主叫终端和各被叫终端之间 的同步播放共享视频的系统时间进行修正,本公开则可使主叫终端和被叫终端在针对同一 个共享视频的播放进度上保持一致, 达到播放进度时间完全同步的效果, 可避免通信时延 导致的主叫终端与被叫终端的视频播放不同步的问题。
本实施例中与前述实施例类似的步骤原理类似, 在此不再详述。
实施例七
参照图 9, 示出了本公开优选的一种多方视频共享的系统实施例七的结构示意图, 可
以包括:
主叫终端 710, 云端服务器 720和至少一个被叫终端 730;
主叫终端 710包括:
共享发起模块 711, 用于向被叫终端 730发起多方共享视频请求;
时间差计算模块 712, 用于根据接收到被叫终端返回的确认响应的接收时间, 确定本 端与被叫终端之间的时间差;
在公开实施例中,出现的 "本端"可以理解为主叫终端。
同步时间确认模块 713, 用于根据时间差, 确定被叫终端与本端同步播放共享视频的 时间;
云端服务器 720用于中转主叫终端与被叫终端之间的数据。
另外, 还包括: 通知模块, 根据确定的被叫终端与本端同步播放共享视频的时间通知 各终端同步播放视频。
在一个实施例中, 时间差计算模块包括:
第一时间获取模块, 用于以本端显示的时间为准, 记录本端发送多方共享视频请求的 发送时间、 以及接收到被叫终端返回的确认响应的接收时间;
第一通信时间确定模块, 用于根据发送时间、 接收时间, 确定本端与被叫终端之间的 通信时间;
第一时间差计算模块,用于根据通信时间确定本端与被叫终端之间播放位于本端的共 享视频的时间差。
在一个实施例中, 同步时间确认模块, 包括:
第一同步时间确认模块, 用于当被叫终端同步本端正在播放的共享视频时, 根据时间 差以及共享视频在本端的第一播放进度, 确定被叫终端播放共享视频的第二播放进度; 第 二播放进度对应的时间为被叫终端与本端同步播放共享视频的时间;
和 /或, 第二同步时间确认模块, 用于以本端显示的时间为准, 当被叫终端同步本端 在第一预定时间播放的共享视频时, 根据时间差以及第一预定时间, 确定被叫终端播放共 享视频的第二预定时间; 其中, 在第二预定时间本端向被叫终端发送共享视频。
在一个实施例中, 时间差计算模块包括:
第二时间获取模块, 用于以本端显示的时间为准, 记录本端发送多方共享视频请求的 发送时间, 以及接收到被叫终端返回的确认响应的接收时间, 以及解析确认响应, 获得以 被叫终端显示的时间为准的、 确认响应的发送时间;
第二时间差计算模块, 用于根据确认响应的发送时间、 接收到确认响应的接收时间、 发送多方共享视频请求的发送时间, 确定本端与被叫终端之间的时间差。
在一个实施例中, 同步时间确认模块包括:
第一预定时间获取模块, 用于以本端显示的时间为准, 确定播放共享视频的第一预定 时间点;
第二预定时间获取模块, 用于根据第一预定时间点、 和与被叫终端之间的时间差, 确 定出被叫终端播放共享视频的、 以被叫终端显示的时间为准的第二预定时间点。
在一个实施例中, 在同步时间确认模块之前, 还包括:
一致性检查模块, 用于当被叫终端与本端播放同一共享视频时, 监控被叫终端共享视 频的播放进度是否与本端播放进度一致; 当被叫终端共享视频的播放进度与本端播放进度 不一致时, 获取本端与被叫终端之间的时间差。
在一个实施例中, 还包括云端服务器, 上述云端服务器还包括:
全联通判断模块,用于通过云端服务器监控主叫终端和各被叫终端之间是否为 P2P全 联通;
第一语音或文字通信模块, 用于如果主叫终端和各被叫终端之间是 P2P全联通, 则主 叫终端和各被叫终端通过 P2P进行语音或文字通信;
第二语音或文字通信模块, 用于如果主叫终端和各被叫终端之间不是 P2P全联通, 则 通过云端服务器中转主叫终端和各被叫终端的语音数据进行语音或文字通信。
实施例八
参照图 10, 示出了本公开实施例的一种多方视频共享的系统实施例八的结构示意图, 可以包括:
主叫终端 810, 云端服务器 820和至少一个被叫终端 830;
云端服务器 820包括:
请求接收模块 821, 用于接收主叫终端向被叫终端发起的多方共享视频请求; 时间差计算模块 822, 用于根据接收到被叫终端返回的确认响应的接收时间, 确定主 叫终端与被叫终端之间的时间差;
同步时间确认模块 823, 用于根据时间差, 确定被叫终端与主叫终端同步播放共享视 频的时间。
在一个实施例中, 时间差计算模块包括:
第三时间获取模块, 用于获取主叫终端以本端显示的时间为准, 记录的主叫终端发送 多方共享视频请求的发送时间, 以及主叫终端接收到被叫终端返回的确认响应的接收时 间;
在公开实施例中,出现的 "本端"可以理解为主叫终端。
第二通信时间确定模块, 用于根据发送时间、 接收时间, 确定主叫终端与被叫终端之 间的通信时间;
第三时间差计算模块,用于根据通信时间确定主叫终端与被叫终端之间播放位于主叫 终端的共享视频的时间差。
在一个实施例中, 同步时间确认模块包括:
第三同步时间确认模块, 用于当被叫终端同步主叫终端正在播放的共享视频时, 根据 时间差以及共享视频在主叫终端的第一播放进度,确定被叫终端播放共享视频的第二播放
进度; 第二播放进度对应的时间为被叫终端与主叫终端同步播放共享视频的时间; 和 /或, 第四同步时间确认模块, 用于以主叫终端显示的时间为准, 当被叫终端同步 主叫终端在第一预定时间播放的共享视频时, 根据时间差以及第一预定时间, 确定被叫终 端播放共享视频的第二预定时间; 其中, 在第二预定时间主叫终端向被叫终端发送共享视 频。
在一个实施例中, 根时间差计算模块包括:
第四时间获取模块, 用于获取主叫终端以本端显示的时间为准, 记录的主叫终端发送 多方共享视频请求的发送时间, 以及主叫终端接收到被叫终端返回的确认响应的接收时 间; 解析确认响应, 获得以被叫终端显示的时间为准的、 确认响应的发送时间;
第四时间差计算模块, 用于根据确认响应的发送时间、 主叫终端接收到确认响应的接 收时间、 主叫终端发送多方共享视频请求的发送时间, 确定主叫终端与被叫终端之间的时 间差。
在一个实施例中, 同步时间确认模块包括:
第一预定时间获取模块, 用于获取以主叫终端显示的时间为准, 确定播放共享视频的 第一预定时间点;
第二预定时间获取模块, 根据第一预定时间点、 和与被叫终端之间的时间差, 确定出 被叫终端播放共享视频的、 以被叫终端显示的时间为准的第二预定时间点。
在一个实施例中, 在同步时间确认模块之前, 还包括:
一致性检查模块, 用于当被叫终端与主叫终端播放同一共享视频时, 监控被叫终端共 享视频的播放进度是否与本端播放进度一致; 当被叫终端共享视频的播放进度与主叫终端 播放进度不一致时, 获取主叫终端与被叫终端之间的时间差。
在一个实施例中, 还包括云端服务器, 上述云端服务器还包括:
全联通判断模块,用于通过云端服务器监控主叫终端和各被叫终端之间是否为 P2P全 联通;
第一语音或文字通信模块, 用于如果主叫终端和各被叫终端之间是 P2P全联通, 则主 叫终端和各被叫终端通过 P2P进行语音或文字通信;
第二语音或文字通信模块, 用于如果主叫终端和各被叫终端之间不是 P2P全联通, 则 通过云端服务器中转主叫终端和各被叫终端的语音数据进行语音或文字通信。
在上述实施例中,本公开的主叫终端可为机顶盒,其中若同步通知模块位于机顶盒内, 获取当前在线的好友列表后, 在电视屏幕上进行显示; 若同步通知位于云端服务器中, 获 取当前在线的好友列表后, 将其发送到电视盒子, 以便在电视屏幕上进行显示。
需要说明的是, 对于上述方法实施例而言, 为了简单描述, 故将其都表述为一系列的 动作组合, 但是本领域技术人员应该知悉, 本公开并不受所描述的动作顺序的限制, 因为 依据本公开, 某些步骤可以采用其他顺序或者同时进行。 其次, 本领域技术人员也应该知 悉, 说明书中所描述的实施例均属于优选实施例, 所涉及的动作和模块并不一定是本公开
所必须的。
对于装置实施例而言, 由于其与方法实施例基本相似, 所以描述的比较简单, 相关之 处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他 实施例的不同之处, 各个实施例之间相同相似的部分互相参见即可。
最后, 还需要说明的是, 在本文中, 诸如第一和第二等之类的关系术语仅仅用来将一 个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之 间存在任何这种实际的关系或者顺序。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概 念, 则可对这些实施例做出另外的变更和修改。 所以, 所附权利要求意欲解释为包括优选 实施例以及落入本公开范围的所有变更和修改。
以上对本公开所提供的一种多方视频共享的方法、 装置和系统, 进行了详细介绍, 本 文中应用了具体个例对本公开的原理及实施方式进行了阐述, 以上实施例的说明只是用于 帮助理解本公开的方法及其核心思想; 同时, 对于本领域的一般技术人员, 依据本公开的 思想, 在具体实施方式及应用范围上均会有改变之处, 综上, 本说明书内容不应理解为对 本公开的限制。
Claims
1、 一种多方共享视频的方法, 其特征在于, 包括:
向被叫终端发起多方共享视频请求;
根据接收到所述被叫终端返回的确认响应的接收时间,确定本端与所述被叫终端之间 的时间差;
根据所述时间差, 确定所述被叫终端与本端同步播放共享视频的时间。
2、 根据权利要求 1所述的方法, 其特征在于, 所述根据接收到所述被叫终端返回的 确认响应的接收时间, 确定本端与所述被叫终端之间的时间差, 包括:
以本端显示的时间为准,记录本端发送多方共享视频请求的发送时间、 以及接收到所 述被叫终端返回的确认响应的接收时间;
根据所述发送时间、 接收时间, 确定所述本端与所述被叫终端之间的通信时间; 根据所述通信时间确定本端与所述被叫终端之间播放位于本端的共享视频的时间差。
3、 根据权利要求 2所述的方法, 其特征在于, 根据所述时间差, 确定所述被叫终端 与本端同步播放共享视频的时间, 包括:
当所述被叫终端同步本端正在播放的共享视频时,根据所述时间差以及所述共享视频 在本端的第一播放进度,确定被叫终端播放所述共享视频的第二播放进度;所述第二播放 进度对应的时间为所述被叫终端与本端同步播放共享视频的时间;
和 /或, 以本端显示的时间为准, 当所述被叫终端同步本端在第一预定时间播放的共 享视频时,根据所述时间差以及所述第一预定时间,确定被叫终端播放所述共享视频的第 二预定时间; 其中, 在所述第二预定时间本端向所述被叫终端发送所述共享视频。
4、 根据权利要求 1所述的方法, 其特征在于, 所述根据接收到所述被叫终端返回的 确认响应的接收时间, 确定本端与所述被叫终端之间的时间差, 包括:
以本端显示的时间为准,记录本端发送多方共享视频请求的发送时间、 以及接收到所 述被叫终端返回的确认响应的接收时间; 还包括:
解析所述确认响应,获得以所述被叫终端显示的时间为准的、所述确认响应的发送时 间;
根据所述确认响应的发送时间、接收到所述确认响应的接收时间、发送所述多方共享 视频请求的发送时间, 确定本端与被叫终端之间的时间差。
5、 根据权利要求 4所述的方法, 其特征在于, 所述根据所述时间差, 确定所述被叫 终端与本端同步播放共享视频的时间, 包括:
以本端显示的时间为准, 确定播放共享视频的第一预定时间点;
根据所述第一预定时间点、和与所述被叫终端之间的时间差,确定出所述被叫终端播 放共享视频的、 以所述被叫终端显示的时间为准的第二预定时间点。
6、 根据权利要求 1或 2或 4所述的方法, 其特征在于, 所述根据所述时间差, 确定 所述被叫终端与本端同步播放共享视频的时间之前, 还包括:
当所述被叫终端与本端播放同一共享视频时,监控所述被叫终端共享视频的播放进度 是否与本端播放进度一致;
当所述被叫终端共享视频的播放进度与本端播放进度不一致时,获取本端与所述被叫 终端之间的时间差。
7、 一种多方共享视频的方法, 其特征在于, 包括:
接收主叫终端向被叫终端发起的多方共享视频请求;
根据接收到所述被叫终端返回的确认响应的接收时间,确定主叫终端与所述被叫终端 之间的时间差;
根据所述时间差, 确定所述被叫终端与主叫终端同步播放共享视频的时间。
8、 根据权利要求 7所述的方法, 其特征在于, 所述根据接收到所述被叫终端返回的 确认响应的接收时间, 确定主叫终端与所述被叫终端之间的时间差包括:
获取主叫终端以本端显示的时间为准,记录的主叫终端发送多方共享视频请求的发送 时间, 以及主叫终端接收到所述被叫终端返回的确认响应的接收时间;
根据所述发送时间、 接收时间, 确定所述主叫终端与所述被叫终端之间的通信时间; 根据所述通信时间确定主叫终端与所述被叫终端之间播放位于主叫终端的共享视频 的时间差。
9、 根据权利要求 8所述的方法, 其特征在于, 根据所述时间差, 确定所述被叫终端 与主叫终端同步播放共享视频的时间, 包括:
当所述被叫终端同步主叫终端正在播放的共享视频时,根据所述时间差以及所述共享 视频在主叫终端的第一播放进度,确定被叫终端播放所述共享视频的第二播放进度;所述 第二播放进度对应的时间为所述被叫终端与主叫终端同步播放共享视频的时间;
和 /或, 以主叫终端显示的时间为准, 当所述被叫终端同步主叫终端在第一预定时间 播放的共享视频时,根据所述时间差以及所述第一预定时间,确定被叫终端播放所述共享 视频的第二预定时间;其中,在所述第二预定时间主叫终端向所述被叫终端发送所述共享 视频。
10、根据权利要求 7所述的方法, 其特征在于, 所述根据接收到所述被叫终端返回的 确认响应的接收时间, 确定主叫终端与所述被叫终端之间的时间差, 包括:
获取主叫终端以本端显示的时间为准,记录的主叫终端发送多方共享视频请求的发送 时间, 以及主叫终端接收到所述被叫终端返回的确认响应的接收时间; 还包括:
解析所述确认响应,获得以所述被叫终端显示的时间为准的、所述确认响应的发送时 间;
根据所述确认响应的发送时间、主叫终端接收到所述确认响应的接收时间、主叫终端 发送所述多方共享视频请求的发送时间, 确定主叫终端与被叫终端之间的时间差。
11、 根据权利要求 10所述的方法, 其特征在于, 所述根据所述时间差, 确定所述被 叫终端与主叫终端同步播放共享视频的时间, 包括:
获取以主叫终端显示的时间为准, 确定播放共享视频的第一预定时间点;
根据所述第一预定时间点、和与所述被叫终端之间的时间差,确定出所述被叫终端播 放共享视频的、 以所述被叫终端显示的时间为准的第二预定时间点。
12、 根据权利要求 7或 8或 10所述的方法, 其特征在于, 所述根据所述时间差, 确 定所述被叫终端与主叫终端同步播放共享视频的时间之前, 还包括:
当所述被叫终端与主叫终端播放同一共享视频时,监控所述被叫终端共享视频的播放 进度是否与主叫终端播放进度一致;
当所述被叫终端共享视频的播放进度与主叫终端播放进度不一致时,获取主叫终端与 所述被叫终端之间的时间差。
13、 一种多方共享视频的系统, 其特征在于, 包括:
主叫终端, 云端服务器和至少一个被叫终端;
所述主叫终端包括:
共享发起模块, 用于向被叫终端发起多方共享视频请求;
时间差计算模块,用于根据接收到所述被叫终端返回的确认响应的接收时间,确定本 端与所述被叫终端之间的时间差;
同步时间确认模块,用于根据所述时间差,确定所述被叫终端与本端同步播放共享视 频的时间;
所述云端服务器用于中转主叫终端与被叫终端之间的数据。
14、 根据权利要求 13所述的系统, 其特征在于, 所述时间差计算模块包括: 第一时间获取模块,用于以本端显示的时间为准,记录本端发送多方共享视频请求的 发送时间、 以及接收到所述被叫终端返回的确认响应的接收时间;
第一通信时间确定模块, 用于根据所述发送时间、接收时间, 确定所述本端与所述被 叫终端之间的通信时间;
第一时间差计算模块,用于根据所述通信时间确定本端与所述被叫终端之间播放位于 本端的共享视频的时间差。
15、 根据权利要求 13所述的系统, 其特征在于, 所述时间差计算模块包括: 第二时间获取模块,用于以本端显示的时间为准,记录本端发送多方共享视频请求的 发送时间,以及接收到所述被叫终端返回的确认响应的接收时间,以及解析所述确认响应, 获得以所述被叫终端显示的时间为准的、 所述确认响应的发送时间;
第二时间差计算模块,用于根据所述确认响应的发送时间、接收到所述确认响应的接 收时间、 发送所述多方共享视频请求的发送时间, 确定本端与被叫终端之间的时间差。
16、 一种多方共享视频的系统, 其特征在于, 包括:
主叫终端, 云端服务器和至少一个被叫终端;
所述云端服务器包括:
请求接收模块, 用于接收主叫终端向被叫终端发起的多方共享视频请求;
时间差计算模块,用于根据接收到所述被叫终端返回的确认响应的接收时间,确定主 叫终端与所述被叫终端之间的时间差;
同步时间确认模块,用于根据所述时间差,确定所述被叫终端与主叫终端同步播放共 享视频的时间。
17、 根据权利要求 16所述的系统, 其特征在于, 所述时间差计算模块包括: 第三时间获取模块,用于获取主叫终端以本端显示的时间为准,记录的主叫终端发送 多方共享视频请求的发送时间,以及主叫终端接收到所述被叫终端返回的确认响应的接收 时间;
第二通信时间确定模块, 用于根据所述发送时间、接收时间, 确定所述主叫终端与所 述被叫终端之间的通信时间;
第三时间差计算模块,用于根据所述通信时间确定主叫终端与所述被叫终端之间播放 位于主叫终端的共享视频的时间差。
18、 根据权利要求 16所述的系统, 其特征在于, 所述根时间差计算模块包括: 第四时间获取模块,用于获取主叫终端以本端显示的时间为准,记录的主叫终端发送 多方共享视频请求的发送时间,以及主叫终端接收到所述被叫终端返回的确认响应的接收 时间; 解析所述确认响应, 获得以所述被叫终端显示的时间为准的、所述确认响应的发送 时间;
第四时间差计算模块,用于根据所述确认响应的发送时间、主叫终端接收到所述确认 响应的接收时间、主叫终端发送所述多方共享视频请求的发送时间,确定主叫终端与被叫 终端之间的时间差。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201310068159.2A CN103209360B (zh) | 2013-03-04 | 2013-03-04 | 一种多方视频共享的方法和装置 |
| CN201310068159.2 | 2013-03-04 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014134965A1 true WO2014134965A1 (zh) | 2014-09-12 |
Family
ID=48756419
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2013/091010 Ceased WO2014134965A1 (zh) | 2013-03-04 | 2013-12-31 | 一种多方视频共享的方法和装置 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN103209360B (zh) |
| WO (1) | WO2014134965A1 (zh) |
Families Citing this family (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103209360B (zh) * | 2013-03-04 | 2018-02-13 | 小米科技有限责任公司 | 一种多方视频共享的方法和装置 |
| CN103442297B (zh) * | 2013-08-06 | 2017-09-01 | 小米科技有限责任公司 | 协作播放方法、装置、设备及系统 |
| CN104317898B (zh) * | 2014-10-24 | 2018-08-10 | 联想(北京)有限公司 | 一种信息处理方法及服务器 |
| CN104301768A (zh) * | 2014-11-12 | 2015-01-21 | 沈阳美行科技有限公司 | 一种跨平台多终端多应用音视频播放进度同步的方法 |
| CN104519051A (zh) * | 2014-11-24 | 2015-04-15 | 深圳市金立通信设备有限公司 | 一种多媒体数据共享方法及终端 |
| CN105763933A (zh) * | 2014-12-19 | 2016-07-13 | 中兴通讯股份有限公司 | 一种媒体文件当前播放位置的共享方法 |
| CN104506626A (zh) * | 2014-12-25 | 2015-04-08 | 魅族科技(中国)有限公司 | 一种内容信息发送的控制方法、服务器和终端 |
| CN104581366A (zh) * | 2014-12-30 | 2015-04-29 | 北京奇艺世纪科技有限公司 | 一种互联网电视播放方法和服务器 |
| US10013229B2 (en) * | 2015-04-30 | 2018-07-03 | Intel Corporation | Signal synchronization and latency jitter compensation for audio transmission systems |
| CN105429831B (zh) * | 2015-11-04 | 2018-03-02 | 广东欧珀移动通信有限公司 | 一种主播放设备的选择方法及播放设备 |
| CN105430439B (zh) * | 2015-11-20 | 2017-09-15 | 广东欧珀移动通信有限公司 | 业务数据同步播放及同步播放数据提供方法、装置 |
| CN106550279A (zh) * | 2016-04-07 | 2017-03-29 | 乐视控股(北京)有限公司 | 互动直播实现方法、装置及系统 |
| CN106060680B (zh) * | 2016-06-30 | 2019-06-14 | 北京奇艺世纪科技有限公司 | 一种播放进度同步方法及装置 |
| CN109246664B (zh) * | 2017-06-13 | 2021-07-23 | 上海大唐移动通信设备有限公司 | 一种语音测试方法及装置 |
| CN108650541B (zh) * | 2018-05-09 | 2020-12-18 | 福建星网视易信息系统有限公司 | 实现不同设备同步播放视频的方法和系统 |
| CN110719515B (zh) * | 2018-07-12 | 2022-06-14 | 阿里巴巴(中国)有限公司 | 视频播放方法、装置及存储介质 |
| CN111372112B (zh) * | 2018-12-26 | 2022-06-07 | 华为技术有限公司 | 一种视频同步显示的方法、装置及系统 |
| US11606597B2 (en) * | 2020-09-03 | 2023-03-14 | Dish Network Technologies India Private Limited | Devices, systems, and processes for facilitating live and recorded content watch parties |
| CN113596547A (zh) * | 2021-07-29 | 2021-11-02 | 海信电子科技(武汉)有限公司 | 一种显示设备、同步播放方法及系统 |
| CN114143584B (zh) * | 2021-09-29 | 2024-03-26 | 杭州当虹科技股份有限公司 | 在多终端之间实现同步播放的播出系统和方法 |
| CN115002553A (zh) * | 2022-04-29 | 2022-09-02 | 当趣网络科技(杭州)有限公司 | 基于同一影视视频边看边聊的方法和系统 |
| CN116319609B (zh) * | 2022-09-08 | 2025-12-19 | 中国建设银行股份有限公司 | 内容共享方法、装置、计算机设备、存储介质 |
| CN116033199B (zh) * | 2022-12-30 | 2025-08-22 | 元心信息科技集团有限公司 | 多设备音视频同步方法、装置、电子设备及存储介质 |
| CN116896707A (zh) * | 2023-08-08 | 2023-10-17 | 苏州奇梦者科技有限公司 | 一种声学级联设备的扬声器播放同步方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101622610A (zh) * | 2007-02-22 | 2010-01-06 | 雅虎公司 | 协作环境中媒体内容的同步传递 |
| CN101631388A (zh) * | 2009-07-28 | 2010-01-20 | 青岛海信移动通信技术股份有限公司 | 一种基于无线网络的多方视频共享方法及系统 |
| CN101731011A (zh) * | 2007-05-11 | 2010-06-09 | 奥迪耐特有限公司 | 用于设置接收器延迟时间的系统、方法和计算机可读介质 |
| CN103209360A (zh) * | 2013-03-04 | 2013-07-17 | 北京小米科技有限责任公司 | 一种多方视频共享的方法和装置 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102378350B (zh) * | 2010-08-23 | 2014-09-10 | 中国移动通信集团公司 | 时间同步方法、服务器及系统 |
-
2013
- 2013-03-04 CN CN201310068159.2A patent/CN103209360B/zh active Active
- 2013-12-31 WO PCT/CN2013/091010 patent/WO2014134965A1/zh not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101622610A (zh) * | 2007-02-22 | 2010-01-06 | 雅虎公司 | 协作环境中媒体内容的同步传递 |
| CN101731011A (zh) * | 2007-05-11 | 2010-06-09 | 奥迪耐特有限公司 | 用于设置接收器延迟时间的系统、方法和计算机可读介质 |
| CN101631388A (zh) * | 2009-07-28 | 2010-01-20 | 青岛海信移动通信技术股份有限公司 | 一种基于无线网络的多方视频共享方法及系统 |
| CN103209360A (zh) * | 2013-03-04 | 2013-07-17 | 北京小米科技有限责任公司 | 一种多方视频共享的方法和装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN103209360A (zh) | 2013-07-17 |
| CN103209360B (zh) | 2018-02-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2014134965A1 (zh) | 一种多方视频共享的方法和装置 | |
| CN107846633B (zh) | 一种直播方法及系统 | |
| CN102170584B (zh) | 同步hs终端设备之间媒体播放的方法、装置和系统 | |
| KR101354793B1 (ko) | 입력 오디오 스트림 및 입력 비디오 스트림을 동기화하는 방법, 복수의 컴퓨팅 장치에 걸쳐서 전송되고 있는 미디어 스트림들을 동기화하기 위한 시스템, 및 컴퓨터 판독가능 매체 | |
| US9319738B2 (en) | Multiplexing, synchronizing, and assembling multiple audio/video (A/V) streams in a media gateway | |
| EP2186230B1 (en) | Synchronizing related data streams in interconnection networks | |
| CN102132575B (zh) | 信息处理系统及信息处理装置 | |
| US8990317B2 (en) | Shared multimedia experience | |
| CN101854533B (zh) | 频道切换方法、装置及系统 | |
| EP3020204B1 (en) | Synchronized data processing between receivers | |
| GB2610020A (en) | Switching Between Transmitting a Preauthored Video Frame and a Composited Video Frame | |
| JP5086285B2 (ja) | 映像配信システム,映像配信装置,及び同期補正処理装置 | |
| US20090055540A1 (en) | Methods and Systems for Multicast Control and Channel Switching for Streaming Media in an IMS Environment | |
| CN108696772B (zh) | 一种实时视频的传输方法及装置 | |
| CN101465996B (zh) | 一种网络电视显示时间的方法及设备和系统 | |
| US9736518B2 (en) | Content streaming and broadcasting | |
| JP2014513903A (ja) | ネットワーキング方法、サーバ装置およびクライアント装置 | |
| CN113542897A (zh) | 一种适用于多视角直播的音视频直播方法 | |
| CN113923470A (zh) | 直播流处理方法及装置 | |
| Marfil et al. | Synchronization mechanisms for multi-user and multi-device hybrid broadcast and broadband distributed scenarios | |
| CN113542896B (zh) | 一种自由视角的视频直播方法、设备及介质 | |
| EP2479984A1 (en) | Device and method for synchronizing content received from different sources | |
| CN102196303B (zh) | 一种媒体同步的方法和系统 | |
| KR102271686B1 (ko) | 이종 네트워크 기반의 멀티미디어 자원 동기화 푸시 방법 | |
| US20140143396A1 (en) | Streaming connection management method and streaming data connection system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13877357 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 13877357 Country of ref document: EP Kind code of ref document: A1 |