Video terminal and program

The viewing terminal uses synchronized internal clocks and WebRTC to adjust playback positions and rates, addressing synchronization challenges across multiple terminals, ensuring consistent video playback even with network changes or seek operations.

JP7710318B2Active Publication Date: 2025-07-18NIPPON HOSO KYOKAI
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2021093382
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-06-03
Publication Date
2025-07-18
Estimated Expiration
2041-06-03

AI Technical Summary

Technical Problem

Existing systems face challenges in achieving synchronized video playback across multiple viewing terminals, particularly when new terminals join a distribution network or perform seek operations, using only web standard technologies to maintain video synchronization without time lag.

Method used

The viewing terminal employs an internal clock with synchronized current time among terminals, using WebRTC for time sharing and synchronization processing units to adjust playback positions and rates, ensuring synchronized playback by calculating and transmitting start times and playback positions across terminals.

Benefits of technology

This approach enables synchronized video playback across all terminals, even when new terminals join or perform seek operations, maintaining consistent playback positions and rates, thus ensuring seamless video synchronization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007710318000001
    Figure 0007710318000001
  • Figure 0007710318000002
    Figure 0007710318000002
  • Figure 0007710318000003
    Figure 0007710318000003
Patent Text Reader

Abstract

To achieve synchronous reproduction of a moving image in all viewing terminals even in the case that a viewing terminal newly participates in a distribution network.SOLUTION: A synchronization processing part 11 of a viewing terminal 3 acquires the other terminal information from a signaling server 4, and in the case that there are the other viewing terminal 3 participating in the distribution network 1, transmits an inquiry to the other viewing terminals 3 and receives a beginning time T0 by a WebRTC and records the beginning time T0 in a memory 24. Thus, all the viewing terminals 3 can share the beginning time T0. On the other hand, in the case that the other viewing terminals 3 do not exist, the synchronization processing part 11 sets a current time Tn acquired from an internal clock 12 to the beginning time T0 and records it in the memory 24. The synchronization processing part 11 subtracts the beginning time T0 from the current time Tn to acquire a reproduction position Ct. A moving image reproduction part 10 reproduces a moving image from the reproduction position Ct.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a viewing terminal and a program for playing a video viewed by a user.

Background Art

[0002] Conventionally, a system for viewing content services composed of a plurality of videos such as a plurality of small-sized videos obtained by dividing a wide-angle video, or a multi-view video obtained by photographing the same subject with different cameras, using a web browser is known.

[0003] In order to view a content service using a viewing terminal, as an element of a program for playing a video (video and audio), for example, "HTMLMediaElement" which is a component constituting a web page is used (see, for example, Non-Patent Document 1).

[0004] This HTMLMediaElement is an element for playing a video and is described in HTML (HyperText Markup Language) in order to operate on a web browser.

[0005] The viewing terminal can start a video player designated by the user and execute an HTML file in which HTMLMediaElement is described, thereby playing a predetermined video at a predetermined position on the screen.

[0006] On the other hand, in a distribution system including a plurality of viewing terminals, when each of the plurality of viewing terminals plays a video using HTMLMediaElement, video playback synchronization may be required among the plurality of viewing terminals.

[0007] As a mechanism for realizing video playback synchronization, a method of sharing the playback time of a video among a plurality of viewing terminals using WebRTC (see, for example, Non-Patent Documents 2 and 3) is known (see, for example, Non-Patent Document 4).

[0008] Specifically, this method shares the start time T0, which is the video playback start time, among viewing terminals using WebRTC, and uses the current time T n of the internal clocks that are synchronized among the viewing terminals to control the video playback time T n so that it matches T c - T0.

[0009] The viewing terminal sets the start of the content as T c = 0, and uses T s as a threshold. When |T n - T0 - T c | ≧ T s , that is, when the deviation of the playback position is equal to or greater than the threshold, it seeks to the correct playback position and causes a video skip. On the other hand, when |T n - T0 - T c | < T s , that is, when the deviation of the playback position is less than the threshold, it changes the playback rate to gently adjust the playback position and prevent a video skip.

Prior Art Documents

Non-Patent Documents

[0010]

Non-Patent Document 1

Non-Patent Document 2

Non-Patent Document 3

[0011] Content consisting of multiple videos, such as multiple small videos created by splitting a wide-field video screen or multi-view videos of the same subject shot with different cameras, may be viewed simultaneously on multiple viewing terminals.

[0012] To achieve this type of viewing using a web browser, it was desirable to achieve this using only web standard technologies so that there would be no time lag in the video across different viewing devices in a variety of situations.

[0013] For example, in a situation where viewing terminals can freely join and leave a distribution network that distributes videos, it is necessary to match the video playback position of a viewing terminal that joins later with the video playback position of a video being played on a viewing terminal that is already participating.

[0014] In addition, in a situation where a seek operation is performed in a video-on-demand service or the like, when a video seek operation is performed on a first viewing terminal, the second viewing terminal needs to adjust the video playback position to a position corresponding to the seek operation. In other words, the second viewing terminal needs to make its playback position follow the playback position of the first viewing terminal.

[0015] Therefore, the present invention has been made to solve the above problems, and an object thereof is to provide a viewing terminal and a program capable of realizing synchronized playback of videos on all viewing terminals even when a new viewing terminal joins a distribution network.

Means for Solving the Problems

[0016] In order to solve the above problems, the viewing terminal according to claim 1 is the viewing terminal that receives and plays a video under a distribution network that distributes each of a plurality of videos constituting content desired by a user from a distribution server to each of a plurality of viewing terminals, and has an internal clock having a synchronized current time T among the plurality of viewing terminals. When the leading time T of the current time T when the head of the video is played is received from another viewing terminal that is playing the video as the leading time T0, the leading time T0 is recorded in the memory, the current time T is obtained from the internal clock, and the current time T is subtracted from the leading time T0 to obtain a playback position Ct. And a video playback unit that sets the playback position of the video to the playback position Ct obtained by the synchronization processing unit and plays the video from the playback position Ct. When a new viewing terminal joins the distribution network, the synchronization processing unit receives an inquiry from the new viewing terminal, reads the leading time T0 from the memory, and transmits the leading time T0 to the new viewing terminal. n When the head of the video is played from another viewing terminal that is playing the video as the leading time T0 n is received, the leading time T0 is recorded in the memory, and the current time T is obtained from the internal clock n to obtain the current time T n subtracts the leading time T0 from the current time T to obtain a playback position Ct, and a video playback unit that sets the playback position of the video to the playback position Ct obtained by the synchronization processing unit and plays the video from the playback position Ct. When a new viewing terminal joins the distribution network, the synchronization processing unit receives an inquiry from the new viewing terminal, reads the leading time T0 from the memory, and transmits the leading time T0 to the new viewing terminal.

[0017] Further, the viewing terminal according to claim 2 is the viewing terminal according to claim 1, wherein when the seek operation of the video by the user is completed, the synchronization processing unit acquires the playback position Ct at which the video is being played from the video playback unit, obtains the current time T from the internal clock, subtracts the playback position Ct from the current time T to obtain the leading time T0 associated with the completion of the seek operation, records the leading time T0 in the memory, and transmits the leading time T0 to the other viewing terminals. n to obtain the current time T n subtracts the playback position Ct from the current time T to obtain the leading time T0 associated with the completion of the seek operation, records the leading time T0 in the memory, and transmits the leading time T0 to the other viewing terminals.

[0018] Further, in the viewing terminal according to claim 3, in the viewing terminal according to claim 1 or 2, when the seek operation is completed at the other viewing terminal, the synchronization processing unit receives the start time T0 associated with the completion of the seek operation from the other viewing terminal, records the start time T0 in the memory, and obtains the current time T n from the internal clock, subtracts the start time T0 from the current time T n to obtain the playback position Ct associated with the completion of the seek operation, and the video playback unit sets the playback position of the video to the playback position Ct associated with the completion of the seek operation obtained by the synchronization processing unit, and plays back the video from the playback position Ct.

[0019] Furthermore, the program according to claim 4 is under a distribution network that distributes each of a plurality of videos constituting content desired by a user from a distribution server to each of a plurality of viewing terminals, and has an internal clock with a synchronized current time T n among the plurality of viewing terminals. A computer constituting the viewing terminal that receives and plays back a video receives, as the start time T0, the current time T n when the head of the video is played back from another viewing terminal that is playing back the video, records the start time T0 in the memory, obtains the current time T n from the internal clock, subtracts the start time T0 from the current time T n to obtain the playback position Ct, and is a program for functioning as a synchronization processing unit and a video playback unit that sets the playback position of the video to the playback position Ct obtained by the synchronization processing unit and plays back the video from the playback position Ct. When a new viewing terminal joins the distribution network, the synchronization processing unit receives an inquiry from the new viewing terminal, reads the start time T0 from the memory, and transmits the start time T0 to the new viewing terminal.

Advantages of the Invention

[0020] As described above, according to the present invention, even when a viewing terminal newly joins the distribution network, synchronized playback of videos can be realized on all viewing terminals.

Brief Description of the Drawings

[0021]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Embodiments for Carrying Out the Invention

[0022] Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings. 〔Distribution Network〕 First, a distribution network including a viewing terminal according to an embodiment of the present invention will be described. FIG. 1 is a schematic diagram showing an overall configuration example of the distribution network.

[0023] This distribution network 1 is composed of a distribution server 2, viewing terminals 3-1, 3-2, ···, and a signaling server 4. The distribution network 1 is a network that distributes, for example, one piece of content as a plurality of different video streams from the distribution server 2 to the viewing terminals 3-1, 3-2, ···. Each of the viewing terminals 3-1, 3-2, ··· receives a video stream and plays the video so as to be synchronized among the viewing terminals 3-1, 3-2, ···.

[0024] The distribution server 2, the viewing terminals 3-1, 3-2, ···, and the signaling server 4 are connected via the Internet and a network 5 such as a wide area IP network and a private network. Hereinafter, the viewing terminals 3-1, 3-2, ··· are collectively referred to as the viewing terminal 3.

[0025] The distribution server 2 distributes each of a plurality of video streams constituting the content desired by the user to each of the plurality of viewing terminals 3. Specifically, the distribution server 2 receives a request for the content desired by the user from the viewing terminal 3 operated by the user, and distributes the video stream corresponding to the request among the plurality of video streams constituting the content to the viewing terminal 3.

[0026] The viewing terminal 3 has an internal clock synchronized with other viewing terminals 3. Also, the viewing terminal 3 transmits and receives the start time T0 of video playback to and from other viewing terminals 3 using WebRTC, a peer-to-peer protocol that is a Web standard technology. For example, when one piece of content consists of a plurality of different videos, the start time T0 of video playback indicates the playback start time of the first video played among the plurality of different videos.

[0027] As a result, all the viewing terminals 3 can hold a common start time T0, and synchronized playback of the video is realized based on this common start time T0.

[0028] Note that the start time T0 is the current time T of the internal clock synchronized among all the viewing terminals 3. nBased on this, the current time T when the beginning of the video is played n is. When a seek operation of the video is performed, the start time T0 is the current time T at the completion of the seek operation n minus the playback position Ct at the completion of the seek operation. The start time T0 in this case is T0 = T n - Ct is calculated

[0029] The playback position Ct is the video playback position, which is represented by the elapsed time from the beginning of the video. The possible range is Ct ≧ 0, and the beginning of the video is Ct = 0. That is, the playback position Ct is Ct = T n - T0 is calculated

[0030] The viewing terminal 3 starts a video player and participates in the distribution network 1 in order to view the video of the content desired by the user. The viewing terminal 3 receives information such as the IP address of another viewing terminal 3 participating in the distribution network 1 (playing the video of the same content) from the signaling server 4, and receives and holds the start time T0

[0031] The viewing terminal 3 transmits a request for a video stream to the distribution server 2, receives the video stream distributed from the distribution server 2, and plays the video of the video stream. In this case, the viewing terminal 3 calculates the playback position Ct by subtracting the start time T0 held from the current time T of the internal clock, and plays the video from the playback position Ct n

[0032] The signaling server 4 is a server that manages the number of viewing terminals 3 participating in the distribution network 1, the IP addresses of the viewing terminals 3, etc. When the signaling server 4 receives a request from the viewing terminal 3, it transmits information such as the number of viewing terminals 3 participating in the distribution network 1 and the IP addresses of the viewing terminals 3 as other terminal information to the viewing terminal 3 that has transmitted the request

[0033] ​FIG. 2 is a diagram for explaining an example of distribution of split streams when a screen of one content is divided into four parts, and shows an example in which content of a wide-angle video is divided into four parts on a small-sized screen and a plurality of viewing terminals 3-1 to 3-4 are arranged side by side and viewed simultaneously.

[0034] When the distribution server 2 distributes a video stream of content desired by a user operating the viewing terminals 3-1 to 3-4 to the viewing terminals 3-1 to 3-4, the video I of the content is divided into four parts to generate split streams a to d.

[0035] The distribution server 2 distributes the split stream a to the viewing terminal 3-1, distributes the split stream b to the viewing terminal 3-2, distributes the split stream c to the viewing terminal 3-3, and distributes the split stream d to the viewing terminal 3-4.

[0036] The viewing terminal 3-1 receives the split stream a from the distribution server 2 and plays back the split video Ia of the split stream a. The viewing terminal 3-2 receives the split stream b from the distribution server 2 and plays back the split video Ib of the split stream b. Also, the viewing terminal 3-3 receives the split stream c from the distribution server 2 and plays back the split video Ic of the split stream c. The viewing terminal 3-4 receives the split stream d from the distribution server 2 and plays back the split video Id of the split stream d.

[0037] The viewing terminals 3-1 to 3-4 hold synchronized internal clocks, and use WebRTC to transmit and receive the start time T0 of the video that starts playing first among the split videos Ia to Id, thereby holding a common start time T0.

[0038] For example, assume that the viewing terminals 3-1 to 3-3 have joined the distribution network 1 and realize synchronized playback of the split videos Ia to Ic. Assume a case where the viewing terminal 3-4 joins the distribution network 1 in this state.

[0039] Then, the viewing terminal 3-4 acquires information such as the IP addresses of the viewing terminals 3-1 to 3-3 from the signaling server 4, and uses WebRTC to acquire the start time T0 from the viewing terminals 3-1 to 3-3. The viewing terminal 3-4 acquires the current time T n from its internal clock, subtracts the start time T0 from the current time T n to obtain the playback position Ct, and plays the segmented video Id from the playback position Ct. At this time, the viewing terminals 3-1 to 3-3 are each playing the segmented videos Ia to Ic at the same playback position Ct.

[0040] Thereby, synchronous playback of the segmented videos Ia to Id can be realized among the viewing terminals 3-1 to 3-4.

[0041] Also, assuming that synchronous playback of the segmented videos Ia to Id is realized among the viewing terminals 3-1 to 3-4, and a seek operation (operation to change the playback position Ct) of the segmented video Ia by the user is performed at the viewing terminal 3-1.

[0042] Then, the viewing terminal 3-1 acquires the playback position Ct at the completion of the seek operation, acquires the current time T n from its internal clock, subtracts the playback position Ct from the current time T n to obtain a new start time T0, and sends the new start time T0 to the viewing terminals 3-2 to 3-4.

[0043] The viewing terminals 3-2 to 3-4 receive the start time T0 from the viewing terminal 3-1, acquire the current time T n from their internal clocks, subtract the start time T0 from the current time T n to obtain the playback position Ct, and play the segmented videos Ib to Id from the playback position Ct respectively. The playback position Ct calculated by the viewing terminals 3-2 to 3-4 is the same as the playback position Ct at the completion of the seek operation at the viewing terminal 3-1.

[0044] As a result, the viewing terminals 3-1 to 3-4 will hold a new start time T0 corresponding to the playback position Ct moved by the seek operation instead of the start time T0 before the seek operation. Then, the viewing terminals 3-1 to 3-4 can achieve synchronized playback of the segmented videos Ia to Id after the seek operation is completed.

[0045] In addition, in FIG. 2, an example is shown in which the content of the wide-angle video is divided into four parts on a small-sized screen and a plurality of viewing terminals 3-1 to 3-4 are arranged side by side and viewed simultaneously. In addition to this, the same synchronized playback can also be achieved for the case where the content of the multi-view video captured using four different cameras is viewed simultaneously with the four viewing terminals 3-1 to 3-4 arranged side by side.

[0046] [Viewing Terminal 3] Next, the viewing terminal 3 according to the embodiment of the present invention in the distribution network 1 shown in FIG. 1 will be described. FIG. 3 is a block diagram showing a configuration example of the viewing terminal 3 according to the embodiment of the present invention.

[0047] This viewing terminal 3 includes a video playback unit (HTMLMediaElement) 10, a synchronization processing unit 11, and an internal clock 12. The synchronization processing unit 11 is a processing unit that realizes synchronized playback with an accuracy of about several frames of a video and also realizes highly accurate synchronized playback within one frame.

[0048] The video playback unit 10 inputs the playback position Ct from the synchronization processing unit 11, sets the video playback position to the playback position Ct, and plays the video from the playback position Ct. As a result, the video playback position of the video playback unit 10 is changed to the playback position Ct input from the synchronization processing unit 11.

[0049] In addition, the video playback unit 10 inputs the playback rate Pr from the synchronization processing unit 11, sets the video playback rate to the playback rate Pr, and plays the video at the playback rate Pr. As a result, the video playback rate of the video playback unit 10 is changed to the playback rate Pr input from the synchronization processing unit 11.

[0050] When the timeupdate event of the HTMLMediaElement at a predetermined time interval fires, the video playback unit 10 outputs the firing of the timeupdate event to the synchronization processing unit 11.

[0051] In accordance with a playback position acquisition request from the synchronization processing unit 11, the video playback unit 10 outputs the playback position Ct of the video being played back to the synchronization processing unit 11.

[0052] The synchronization processing unit 11 receives other terminal information from the signaling server 4, sends an inquiry to another viewing terminal 3, and receives the start time T0 from the other viewing terminal 3, etc., and performs video player startup processing and start time reception processing described later. Then, the synchronization processing unit 11 calculates the playback position Ct and outputs it to the video playback unit 10.

[0053] Also, when receiving the completion of a seek operation input, the synchronization processing unit 11 outputs a playback position acquisition request to the video playback unit 10, etc., performs seek operation completion processing described later, and acquires the playback position Ct at the time of seek operation completion from the video playback unit 10. Then, the synchronization processing unit 11 calculates the start time T0 and sends the start time T0 to the other viewing terminal 3.

[0054] Also, when receiving an inquiry from another viewing terminal 3, the synchronization processing unit 11 performs inquiry reception processing described later and sends the start time T0 to the other viewing terminal 3.

[0055] Also, when receiving the firing of the timeupdate event of the HTMLMediaElement from the video playback unit 10, the synchronization processing unit 11 acquires the current time T n from the internal clock 12 and the playback position Ct from the video playback unit 10 respectively.

[0056] The synchronization processing unit 11 n calculates the playback position Ct and the playback rate Pr so that the time obtained by subtracting the start time T0 from the current time T matches the playback position Ct, and outputs these to the video playback unit 10. Details of the synchronization processing unit 11 will be described later.

[0057] The internal clock 12 is a clock that has the current time T synchronized between the viewing terminal 3 and other viewing terminals 3 n and, for example, engraves the current time T synchronized with UTC (Coordinated Universal Time). n The internal clock 12 maintains the accuracy of the current time T by periodically accessing an NTP server or the like. n

[0058] Inquiries and transmission and reception of the start time T0 among all the viewing terminals 3 participating in the distribution network 1 shown in FIG. 1 are performed using WebRTC, and the start time T0 is shared among all the viewing terminals 3.

[0059] (Synchronization processing unit 11) Next, the synchronization processing unit 11 will be described in detail. FIG. 4 is a flowchart showing a processing example of the synchronization processing unit 11.

[0060] When a user operating the viewing terminal 3 views a video of desired content, prior to the process of the video playback unit 10 playing back the video received from the distribution server 2, the synchronization processing unit 11 performs a video player startup process according to the user operation (step S401).

[0061] Specifically, when the video player is started, the synchronization processing unit 11 acquires and records the start time T0, calculates the playback position Ct at which video playback starts, and outputs the playback position Ct to the video playback unit 10. Details of the video player startup process (step S401) will be described later.

[0062] Prior to the event processing when the synchronization processing unit 11 inputs the firing of the timeupdate event of the HTMLMediaElement from the video playback unit 10, the synchronization processing unit 11 performs an initial setting of the switching thresholds Da, Db, the maximum value Ra of the playback rate adjustment width, the minimum value Rb of the playback rate adjustment width, and the target adjustment time At (step S402). This initial setting is performed only once when the own viewing terminal 3 is started. Details of the switching thresholds Da, Db, the maximum value Ra of the playback rate adjustment width, the minimum value Rb of the playback rate adjustment width, and the target adjustment time At will be described later.

[0063] The synchronization processing unit 11 determines whether it has received the firing of the timeupdate event of the HTMLMediaElement from the video playback unit 10 (step S403). In the video playback unit 10, the frequency at which the timeupdate event of the HTMLMediaElement fires depends on the system load, but is approximately in the range from 4 Hz to 66 Hz and is slowed down. In this case, the synchronization processing unit 11 inputs the firing of the timeupdate event at intervals from 1 / 66 second to 1 / 4 second.

[0064] That is, the timeupdate event fires at least every 250 ms. For details, please refer to the following literature. “HTMLMediaElement: timeupdate event”, [online], Internet <URL:https: / / html.spec.whatwg.org / multipage / media.html#time-marches-on>

[0065] If the synchronization processing unit 11 determines in step S403 that it has received the firing of the timeupdate event (step S403: Y), it performs event processing (step S404) and proceeds to step S405. Details of the event processing (step S404) will be described later.

[0066] On the other hand, if the synchronization processing unit 11 determines in step S403 that it has not received the firing of the timeupdate event (step S403: N), it proceeds to step S405.

[0067] When the synchronization processing unit 11 proceeds from step S404 or step S403 (N) and the user performs a seek operation on the video being played, it determines whether it has received the completion of the seek operation (step S405).

[0068] When the synchronization processing unit 11 determines in step S405 that the seek operation is completed (step S405: Y), it performs seek operation completion processing (step S406) and proceeds to step S407.

[0069] Specifically, when the synchronization processing unit 11 receives an input indicating that the seek operation is completed, it acquires the playback position Ct at the time of seek operation completion (the playback position Ct moved by the seek operation) from the video playback unit 10. Then, the synchronization processing unit 11 calculates and records a new start time T0 corresponding to this playback position Ct, and transmits the start time T0 to the other viewing terminal 3. Details of the seek operation completion processing (step S406) will be described later.

[0070] On the other hand, when the synchronization processing unit 11 determines in step S405 that the seek operation is not completed (step S405: N), it proceeds to step S407.

[0071] The synchronization processing unit 11 proceeds from step S406 or step S405 (N) and determines whether it has received the start time T0 from the other viewing terminal 3 (step S407).

[0072] When the synchronization processing unit 11 determines in step S407 that it has received the start time T0 (step S407: Y), it performs start time reception processing (step S408) and proceeds to step S409.

[0073] Specifically, when a seek operation is completed at the other viewing terminal 3 and the synchronization processing unit 11 receives the start time T0 associated with the completion of the seek operation from the other viewing terminal 3, it records the start time T0 and calculates the playback position Ct. Then, the synchronization processing unit 11 outputs the playback position Ct to the video playback unit 10. Details of the start time reception processing (step S408) will be described later.

[0074] On the other hand, when the synchronization processing unit 11 determines in step S407 that it has not received the start time T0 (step S407: N), it proceeds to step S409.

[0075] The synchronization processing unit 11 shifts from step S408 or step S407(N) and determines whether an inquiry has been received from another viewing terminal 3 (step S409).

[0076] If the synchronization processing unit 11 determines in step S409 that an inquiry has been received (step S409: Y), it performs inquiry reception processing (step S410) and shifts to step S411.

[0077] Specifically, when the video player is activated on another viewing terminal 3 and the synchronization processing unit 11 receives an inquiry from the other viewing terminal 3, it reads out the start time T0 and transmits the start time T0 to the other viewing terminal 3. Details of the inquiry reception processing (step S410) will be described later.

[0078] On the other hand, if the synchronization processing unit 11 determines in step S409 that no inquiry has been received (step S409: N), it shifts to step S411.

[0079] The synchronization processing unit 11 shifts from step S410 or step S409(N) and determines whether the processing of the video player has ended (step S411).

[0080] If the synchronization processing unit 11 determines in step S411 that the processing of the video player has not ended (step S411: N), it shifts to step S403. The synchronization processing unit 11 shifts to step S403 and repeats the processing of steps S403 to S410 as long as the processing of the video player has not ended.

[0081] When the synchronization processing unit 11 determines in step S411 that the processing of the video player has ended (step S411: Y), it performs video player end processing (step S412). Specifically, the synchronization processing unit 11 accesses the signaling server 4 and causes the information regarding its own viewing terminal 3 to be erased. When receiving the access from the viewing terminal 3, the signaling server 4 updates the number of viewing terminals 3 participating in the distribution network 1 and deletes the IP address etc. of the viewing terminal 3.

[0082] Returning to FIG. 3, the synchronization processing unit 11 includes a startup processing unit 20, a transmission / reception processing unit 21, a playback position calculation unit 22, a start time calculation unit 23, a memory 24, and an event processing unit 25. Hereinafter, the video player startup processing (step S401), seek operation completion processing (step S406), start time reception processing (step S408), inquiry reception processing (step S410), and event processing (step S404) by these constituent units provided in the synchronization processing unit 11 will be described in detail.

[0083] <Video Player Startup Processing> First, the video player startup processing shown in step S401 of FIG. 4 will be described in detail. FIG. 5 is a flowchart showing an example of the video player startup processing (step S401).

[0084] When the video player is started for the user to view a video of desired content, the startup processing unit 20 accesses and connects to the signaling server 4 and causes the information of its own viewing terminal 3 to be registered in the signaling server 4. Also, the startup processing unit 20 transmits a request for acquiring other terminal information to the signaling server 4 and acquires other terminal information from the signaling server 4 (step S501). The other terminal information includes information such as the number of viewing terminals 3 participating in the distribution network 1 (playing the video of the same content) and the IP address of the viewing terminal 3.

[0085] This allows the viewing terminal 3 to inform other viewing terminals 3 of information such as its own IP address, and to obtain information such as the number of other viewing terminals 3 and the IP addresses of the other viewing terminals 3, making communication between each viewing terminal 3 possible.

[0086] The start-up processing unit 20 receives the current time T n (step S502). Then, the start-up processing unit 20 judges whether or not there is another audio-visual terminal 3 based on the other terminal information acquired in step S501 (step S503).

[0087] If it is determined in step S503 that another audio-visual terminal 3 is present (step S503: Y), the start-up processing unit 20 outputs an inquiry to the transmission / reception processing unit 21 to acquire the head time T0.

[0088] The transmission and reception processing unit 21 receives the inquiry from the start processing unit 20, transmits the inquiry to the other viewing terminal 3 by WebRTC, and acquires the start time T0 from the other viewing terminal 3 (step S504). Then, the transmission and reception processing unit 21 outputs the start time T0 to the playback position calculation unit 22. In other words, when the other viewing terminal 3 is participating in the distribution network 1, the start time T0 is acquired from the other viewing terminal 3.

[0089] The transmission / reception processing unit 21 may transmit an inquiry to each of the other viewing terminals 3 and obtain the start time T0 from each of the other viewing terminals 3. Alternatively, the transmission / reception processing unit 21 may preset one of the other viewing terminals 3, transmit an inquiry to that one viewing terminal 3, and obtain the start time T0 only from that one viewing terminal 3.

[0090] In this case, since the same start time T0 is recorded in all other viewing terminals 3, the transmission / reception processing unit 21 can obtain the same start time T0 regardless of which of the other viewing terminals 3 it sends an inquiry to.

[0091] On the other hand, when the startup processing unit 20 determines in step S503 that no other viewing terminal 3 exists (step S503: N), the current time T acquired in step S502 n is set as the start time T0 (step S505, T0 = T n ). Then, the startup processing unit 20 outputs the start time T0 to the playback position calculation unit 22. That is, when no other viewing terminal 3 has joined the distribution network 1, that is, when its own viewing terminal 3 first joins the distribution network 1, the current time T acquired from its own internal clock 12 is set as the start time T0 n .

[0092] The playback position calculation unit 22 inputs the start time T0 from the startup processing unit 20 or the transmission / reception processing unit 21, and records the start time T0 in the memory 24 (step S506).

[0093] The playback position calculation unit 22 acquires the current time T from the internal clock 12 n , subtracts the start time T0 from the current time T n to obtain the playback position Ct (step S507, Ct = T n - T0). Then, the playback position calculation unit 22 outputs the playback position Ct to the video playback unit 10, and sets the video playback position to the playback position Ct (step S508).

[0094] As a result, the video playback position is set to the playback position Ct in the video playback unit 10, and the video starts playing from the playback position Ct. Here, when no other viewing terminal 3 has joined the distribution network 1, that is, when the playback position calculation unit 22 inputs the start time T0 from the startup processing unit 20 (T0 = T n ), the video starts playing from the playback position Ct = 0 at the beginning.

[0095] On the other hand, when other viewing terminals 3 have joined the distribution network 1, that is, when the playback position calculation unit 22 inputs the start time T0 from the transmission / reception processing unit 21, since the current time T n is ahead of the start time T0, the playback position Ct = T n-T0 > 0 is obtained. Then, the video will be played from this playback position Ct.

[0096] In this way, when a new viewing terminal 3 joins the distribution network 1 in which other viewing terminals 3 are participating, the video of the viewing terminal 3 can be played from the playback position Ct = T n - T0. At this time, the video of other viewing terminals 3 is being played at the playback position Ct = T n - T0. Therefore, synchronized playback of the video can be realized on all the viewing terminals 3 participating in the distribution network 1.

[0097] In addition, when the viewing terminal 3 leaves the distribution network 1, the starting time T0 recorded by other viewing terminals 3 participating in the distribution network 1 does not change, and the playback on other viewing terminals 3 continues.

[0098] Therefore, even if the viewing terminal 3 leaves the distribution network 1, synchronized playback of the video can continue to be realized on other viewing terminals 3.

[0099] <Seek operation completion process> Next, the seek operation completion process shown in step S406 of FIG. 4 will be described in detail. FIG. 6 is a flowchart showing an example of the seek operation completion process (step S406).

[0100] When the user performs a seek operation on the video being played and the seek operation is completed, the starting time calculation unit 23 inputs the completion of the seek operation and outputs a playback position acquisition request to the video playback unit 10. Then, the starting time calculation unit 23 acquires the playback position Ct at the completion of the seek operation, which is the playback position Ct moved by the seek operation corresponding to the playback position acquisition request, from the video playback unit 10 (step S601).

[0101] The starting time calculation unit 23 obtains the current time T when the playback position Ct is acquired in step S601 from the internal clock 12 nto obtain it (step S602). Then, the start time calculation unit 23 subtracts the playback position Ct from the current time T n to obtain the start time T0 (step S603, T0 = T n - Ct).

[0102] As a result, the start time T0 calculated at the completion of the fast - forward seek operation moves to a later (advanced) time compared to the start time T0 before the seek operation. Also, the start time T0 calculated at the completion of the rewind seek operation moves to an earlier time compared to the start time T0 before the seek operation.

[0103] The start time calculation unit 23 records the start time T0 calculated in step S603 in the memory 24 (step S604) and outputs it to the transmission - reception processing unit 21. The transmission - reception processing unit 21 inputs the start time T0 from the start time calculation unit 23 and transmits the start time T0 to the other viewing terminal 3 by WebRTC (step S605).

[0104] As a result, the same start time T0 as that of its own viewing terminal 3 is recorded in the other viewing terminal 3. Then, the other viewing terminal 3 subtracts the start time T0 from the current time T n in the start time reception process shown in FIG. 7 described later to obtain the playback position Ct, and starts playing the video from the playback position Ct.

[0105] In this way, when the seek operation is completed on its own viewing terminal 3, the new start time T0 corresponding to the playback position Ct moved by the seek operation is recorded in all the viewing terminals 3 participating in the distribution network 1.

[0106] In this case, the video of its own viewing terminal 3 is played back at 1x speed from the playback position Ct at the completion of the seek operation, and the video of the other viewing terminal 3 also moves to the same playback position Ct (= T n - T0) as its own viewing terminal 3 and starts playing from the playback position Ct. Therefore, synchronized playback of the video can be realized in all the viewing terminals 3 participating in the distribution network 1.

[0107] <Initial time reception process> Next, the initial time reception process shown in step S408 of FIG. 4 will be described in detail. FIG. 7 is a flowchart showing an example of the initial time reception process (step S408), and shows the process when the seek operation is completed in another viewing terminal 3 and the initial time T0 associated with the completion of the seek operation is received from the other viewing terminal 3.

[0108] The transmission / reception processing unit 21 receives the initial time T0 from another viewing terminal 3 by WebRTC (step S701), and outputs the initial time T0 to the reproduction position calculation unit 22.

[0109] The reproduction position calculation unit 22 inputs the initial time T0 from the transmission / reception processing unit 21, and records the initial time T0 in the memory 24 (step S702).

[0110] The reproduction position calculation unit 22 obtains the current time T n from the internal clock 12 (step S703), subtracts the initial time T0 from the current time T n to obtain the reproduction position Ct (step S704, Ct = T n - T0). Then, the reproduction position calculation unit 22 outputs the reproduction position Ct to the video reproduction unit 10, and sets the video reproduction position to the reproduction position Ct (step S705).

[0111] As a result, the video reproduction position is set to the reproduction position Ct in the video reproduction unit 10, and the video will be reproduced from the reproduction position Ct.

[0112] Here, when the seek operation is completed in another viewing terminal 3, the other viewing terminal 3 subtracts the reproduction position Ct at the time of completion of the seek operation from the current time T n at the time of completion of the seek operation to obtain the initial time T0 associated with the completion of the seek operation (T0 = T n - Ct). In this case, in the other viewing terminal 3, the video after the completion of the seek operation will be reproduced at 1x speed from the reproduction position Ct at the time of completion of the seek operation.

[0113] On one hand, the user's own viewing terminal 3 receives the start time T0 from another viewing terminal 3 where the seek operation has been completed, subtracts the start time T0 from the current time T n to obtain the playback position Ct, and plays the video from the playback position Ct (Ct = T n - T0). This playback position Ct is the same as the playback position Ct at the time when the seek operation is completed in the other viewing terminal 3.

[0114] In this way, when the seek operation is completed in another viewing terminal 3, the user's own viewing terminal 3 can play the video at the same position as the playback position Ct in the other viewing terminal 3. Therefore, even when a seek operation is performed on any one of all the viewing terminals 3 participating in the distribution network 1, synchronous playback of the video can be realized on all the viewing terminals 3.

[0115] <Inquiry reception process> Next, the inquiry reception process shown in step S410 of FIG. 4 will be described in detail. FIG. 8 is a flowchart showing an example of the inquiry reception process (step S410), and shows the process when the video player is started on another viewing terminal 3 and an inquiry is received from the other viewing terminal 3.

[0116] The transmission / reception processing unit 21 receives an inquiry from another viewing terminal 3 by WebRTC (step S801), and reads the start time T0 from the memory 24 (step S802).

[0117] The transmission / reception processing unit 21 transmits the start time T0 to the other viewing terminal 3 that has sent the inquiry by WebRTC (step S803).

[0118] As a result, the same start time T0 as that of the user's own viewing terminal 3 is recorded in the other viewing terminal 3. Then, the other viewing terminal 3 subtracts the start time T0 from the current time T n to obtain the playback position Ct, and plays the video from the playback position Ct.

[0119] In this way, the start time T0 recorded in its own viewing terminal 3 is transmitted to and recorded in other viewing terminals 3 in accordance with an inquiry from another viewing terminal 3. In another viewing terminal 3, video playback is performed from the playback position Ct based on the start time T0.

[0120] That is, the same start time T0 is recorded in all the viewing terminals 3 participating in the distribution network 1, and video playback is performed based on the same start time T0. Therefore, synchronized playback of the video can be realized in all the viewing terminals 3 participating in the distribution network 1.

[0121] <Event processing> Next, the event processing shown in step S404 of FIG. 4 will be described in detail. FIG. 9 is a flowchart showing an example of the event processing (step S404). This processing detects and synchronizes a synchronization deviation when a synchronization deviation occurs between different viewing terminals 3 or between different video playback units 10 (see FIG. 10 described later) due to a momentary freeze in the video being played back due to the processing load of the viewing terminal 3 or the like. Every time the timeupdate event of the HTMLMediaElement is fired by the video playback unit 10, the processing shown in FIG. 9 is called and executed.

[0122] The event processing unit 25 performs event initial settings such as a switching threshold Da, and every time an input of the firing of the timeupdate event of the HTMLMediaElement is received from the video playback unit 10, the current time T n , the start time T0, and the playback position Ct are respectively obtained. Then, the event processing unit 25 calculates the playback position Ct and the playback rate Pr so that the time obtained by subtracting the start time T0 from the current time T n matches the playback position Ct, and outputs these to the video playback unit 10.

[0123] In the event initial setting shown in step S402 of FIG. 4, the switching threshold Da is set to, for example, Da = 5.000 (seconds) and is used to adjust the playback position Ct and the playback rate Pr. The switching threshold Db is set to, for example, Db = 1 / 600 (seconds) and is used to determine whether to adjust the playback rate Pr or not.

[0124] The maximum value Ra of the playback rate adjustment width is set to, for example, Ra = 6.000 (seconds) and is used as the maximum value when adjusting the playback rate Pr. The minimum value Rb of the playback rate adjustment width is set to, for example, Rb = 1 / 300 (seconds) and is used as the minimum value when adjusting the playback rate Pr.

[0125] The target adjustment time At is set to, for example, At = 1.000 (seconds) and is used as the target value of the time until the playback position deviation |T n -T0 - Ct| = 0 (no synchronization deviation) when playing the video at the playback rate Pr = 1 + r.

[0126] When the event processing unit 25 receives the firing of the timeupdate event of the HTMLMediaElement from the video playback unit 10, it reads the start time T0 from the memory 24. Also, the event processing unit 25 obtains the current time T n and the playback position Ct from the video playback unit 10 respectively (step S901).

[0127] The event processing unit 25 n subtracts the start time T0 from the current time T, further subtracts the playback position Ct, obtains the absolute value of the subtraction result, and sets this as the deviation of the playback position (playback position deviation) |T n -T0 - Ct|.

[0128] The event processing unit 25 n determines whether the playback position deviation |T

[0129] The event processing unit 25, in step S902, determines whether the playback position deviation |Tn - When it is determined that |T0 - Ct| is greater than or equal to the switching threshold Da (step S902: Y), the playback position deviation |T n - is determined to be large.

[0130] When the event processing unit 25 determines that the playback position deviation |T n - |T0 - Ct| is large, the playback position Ct is obtained by subtracting the start time T0 from the current time T (step S903, Ct = T n - T0). Then, the event processing unit 25 outputs the playback position Ct to the video playback unit 10 and sets the video playback position to the playback position Ct (step S904). n - T0).

[0131] As a result, when the playback position deviation |T n - |T0 - Ct| is large, the video playback position is set to the playback position Ct in the video playback unit 10, and the video is played back from the playback position Ct.

[0132] On the other hand, when the event processing unit 25 determines in step S902 that the playback position deviation |T n - |T0 - Ct| is not greater than or equal to the switching threshold Da (step S902: N), the playback position deviation |T n - |T0 - Ct| is determined not to be large.

[0133] When the event processing unit 25 determines that the playback position deviation |T n - |T0 - Ct| is not large, it determines whether the playback position deviation |T n - |T0 - Ct| is greater than or equal to the switching threshold Db (step S905).

[0134] When the event processing unit 25 determines in step S905 that the playback position deviation |T n - |T0 - Ct| is greater than or equal to the switching threshold Db (step S905: Y), the playback position deviation |T n - |T0 - Ct| is determined to be small.

[0135] When the event processing unit 25 determines that the playback position deviation |T nWhen |-T0 - Ct| is small, the current time T n subtracts the start time T0 from the current time T, and further divides the subtraction result obtained by subtracting the playback position Ct by the target adjustment time At to obtain the rate r (r = (T n - T0 - Ct) / At). Then, the event processing unit 25 restricts the rate r using the maximum value Ra of the playback rate adjustment width and the minimum value Rb of the playback rate adjustment width, and obtains the playback rate Pr by adding 1 to the rate r (step S906, Pr = 1 + r), and proceeds to step S908.

[0136] Specifically, the event processing unit 25 restricts the rate r so that the rate r is a value between the result of multiplying the maximum value Ra of the playback rate adjustment width by minus (-Ra) and the result of multiplying the minimum value Rb of the playback rate adjustment width by minus (-Rb) (-Ra ≤ r ≤ -Rb). That is, when the rate r is smaller than -Ra, the event processing unit 25 sets the rate r = -Ra, and when the rate r is larger than -Rb, the event processing unit 25 sets the rate r = -Rb.

[0137] Also, the event processing unit 25 restricts the rate r so that the rate r is a value between the minimum value Rb of the playback rate adjustment width and the maximum value Ra of the playback rate adjustment width (Rb ≤ r ≤ Ra). That is, when the rate r is smaller than the minimum value Rb of the playback rate adjustment width, the event processing unit 25 sets the rate r = Rb, and when the rate r is larger than the maximum value Ra of the playback rate adjustment width, the event processing unit 25 sets the rate r = Ra.

[0138] On the other hand, in step S905, when the event processing unit 25 determines that the playback position deviation |T n - T0 - Ct| is not equal to or greater than the switching threshold value Db (step S905: N), the event processing unit 25 determines that there is no playback position deviation |T n - T0 - Ct|.

[0139] When the event processing unit 25 determines that there is no playback position deviation |T n - T0 - Ct|, the event processing unit 25 sets 1 to the playback rate Pr (step S907, Pr = 1), and proceeds to step S908.

[0140] The event processing unit 25 transfers from step S906 or step S907, outputs the playback rate Pr to the video playback unit 10, and causes the video playback rate to be set to the playback rate Pr (step S908).

[0141] As a result, when the playback position deviation |T n -T0-Ct| is small, the video playback rate is set to the playback rate Pr in the video playback unit 10, and the video is played back at the playback rate Pr. That is, the video playback rate is changed to the playback rate Pr, and the playback speed is finely adjusted (fast forward or slow playback).

[0142] Also, when there is no playback position deviation |T n -T0-Ct|, the video playback rate is set to the playback rate Pr = 1 in the video playback unit 10, and the video is played back at the playback rate Pr = 1 (normal speed).

[0143] In this way, when a synchronization deviation occurs in video playback between the own viewing terminal 3 and other viewing terminals 3 due to a processing load or the like in the own viewing terminal 3 (when the playback position Ct of the own viewing terminal 3 is different from the playback position Ct of other viewing terminals 3), the current time T n The playback position Ct and the playback rate Pr are calculated so that the time obtained by subtracting the start time T0 from is equal to the playback position Ct. Thereby, the playback position Ct of the own viewing terminal 3 can be made to coincide with the playback position Ct of other viewing terminals 3.

[0144] As described above, according to the viewing terminal 3 of the embodiment of the present invention, the synchronization processing unit 11 performs video player activation processing when the user views a video of desired content.

[0145] Specifically, the synchronization processing unit 11 acquires other terminal information from the signaling server 4, and when there are other viewing terminals 3 participating in the distribution network 1, makes an inquiry to the other viewing terminals 3, acquires the start time T0, and records it in the memory 24. On the other hand, when there are no other viewing terminals 3, the synchronization processing unit 11 uses the current time T acquired from the internal clock 12n is set to the start time T0 (= T n ) and recorded in the memory 24.

[0146] The synchronization processing unit 11 subtracts the start time T0 from the current time T n to obtain the playback position Ct, and the video playback unit 10 performs video playback from the playback position Ct.

[0147] Thus, when a new viewing terminal 3 joins the distribution network 1, if the videos of other viewing terminals 3 are being played at the playback position Ct = T n - T0, the video of the new viewing terminal 3 can be played from the playback position Ct = T n - T0. That is, in all the viewing terminals 3, synchronized playback of the video can be realized at the playback position Ct based on the common start time T0.

[0148] Also, when the seek operation of the video being played is completed, the synchronization processing unit 11 acquires the playback position Ct at the time of completion of the seek operation from the video playback unit 10, and subtracts the playback position Ct from the current time T n to obtain the start time T0 associated with the completion of the seek operation. Then, the synchronization processing unit 11 records the start time T0 in the memory 24 and transmits it to other viewing terminals 3.

[0149] Thus, when other viewing terminals 3 receive the start time T0 associated with the completion of the seek operation, they record the start time T0 and perform video playback from the playback position Ct = T n - T0. When the seek operation is completed in the viewing terminal 3, the video of the viewing terminal 3 is being played at 1x speed from the playback position Ct at the completion of the seek operation, and the videos of other viewing terminals 3 can be played from the playback position Ct = T n - T0 calculated using the start time T0 associated with the completion of the seek operation. That is, in all the viewing terminals 3, synchronized playback of the video can be realized at the playback position Ct based on the common start time T0 associated with the completion of the seek operation.

[0150] In this way, even when the viewing terminal 3 joins or leaves the distribution network 1, or even when the seek operation is completed, the playback positions Ct of all the viewing terminals 3 participating in the distribution network 1 can be adjusted, and the video of the viewing terminal 3 can be made to follow the video of other viewing terminals 3.

[0151] Therefore, all the viewing terminals 3 can hold a common start time T0, and video playback is performed based on the start time T0, so synchronized video playback can be realized.

[0152] 〔Another example of a viewing terminal〕 Next, a viewing terminal according to another embodiment of the present invention will be described. FIG. 10 is a block diagram showing a configuration example of a viewing terminal according to another embodiment of the present invention, and shows an example in which video playback is performed by four video playback units, namely HTMLMediaElements, in the viewing terminal. In one viewing terminal, synchronized video playback is performed using four different HTMLMediaElements within the same web browser.

[0153] This viewing terminal 3' includes a video playback unit 10', a synchronization processing unit 11', and an internal clock 12. The video playback unit 10' includes four video playback units 10-1 to 10-4, which are HTMLMediaElements.

[0154] The synchronization processing unit 11' includes a startup processing unit 20, a transmission / reception processing unit 21, a playback position calculation unit 22, a start time calculation unit 23', a memory 24, and an event processing unit 25'. The start time calculation unit 23' includes start time calculation units 23-1 to 23-4 corresponding to the video playback units 10-1 to 10-4, and the event processing unit 25' includes event processing units 25-1 to 25-4 corresponding to the video playback units 10-1 to 10-4.

[0155] When comparing the viewing terminal 3 shown in FIG. 3 with the viewing terminal 3' shown in FIG. 10, both viewing terminals 3 and 3' are common in that they are equipped with an internal clock 12 and include a startup processing unit 20, a transmission / reception processing unit 21, a reproduction position calculation unit 22, and a memory 24 in their synchronization processing units 11 and 11'.

[0156] On the other hand, the viewing terminal 3' is different from the viewing terminal 3 having one video playback unit 10, a start time calculation unit 23, and an event processing unit 25 in its synchronization processing unit 11 in that the video playback unit 10' includes four video playback units 10-1 to 10-4, the start time calculation unit 23' of the synchronization processing unit 11' includes four start time calculation units 23-1 to 23-4, and the event processing unit 25' includes four event processing units 25-1 to 25-4.

[0157] In FIG. 10, the parts common to FIG. 3 are denoted by the same reference numerals as in FIG. 3, and their detailed description is omitted.

[0158] Each of the video playback units 10-1 to 10-4 provided in the video playback unit 10' performs the same processing as the video playback unit 10 shown in FIG. 3.

[0159] Specifically, each of the video playback units 10-1 to 10-4 inputs a common reproduction position Ct from the reproduction position calculation unit 22 of the synchronization processing unit 11', sets the video playback position to the reproduction position Ct, and plays the video from the reproduction position Ct. Thereby, synchronous playback of the video can be realized among the video playback units 10-1 to 10-4.

[0160] Each of the video playback units 10-1 to 10-4 inputs the reproduction position Ct from the corresponding event processing units 25-1 to 25-4 provided in the event processing unit 25' of the synchronization processing unit 11', sets the video playback position to the reproduction position Ct, and plays the video from the reproduction position Ct. Also, each of the video playback units 10-1 to 10-4 inputs the reproduction rate Pr from the corresponding event processing units 25-1 to 25-4, sets the video playback rate to the reproduction rate Pr, and plays the video at the reproduction rate Pr.

[0161] When the timeupdate event at a predetermined time interval fires in each of the video playback units 10-1 to 10-4, the firing of the timeupdate event is output to the corresponding event processing units 25-1 to 25-4.

[0162] Each of the video playback units 10-1 to 10-4 outputs the playback position Ct of the video being played back to the corresponding start time calculation units 23-1 to 23-4 and the corresponding event processing units 25-1 to 25-4 in accordance with the playback position acquisition requests from the corresponding start time calculation units 23-1 to 23-4 and the corresponding event processing units 25-1 to 25-4.

[0163] Each of the event processing units 25-1 to 25-4 provided in the event processing unit 25’ performs the same processing as the event processing unit 25 shown in FIG. 3.

[0164] Specifically, each of the event processing units 25-1 to 25-4 performs the processing shown in FIG. 9. That is, when each of the event processing units 25-1 to 25-4 receives the firing of the timeupdate event from the corresponding video playback unit 10-1 to 10-4, the current time T n is obtained from the internal clock 12, the start time T0 is obtained from the synchronization processing unit 11’, and the playback position Ct is obtained from the corresponding video playback unit 10-1 to 10-4.

[0165] Each of the event processing units 25-1 to 25-4 calculates the playback position Ct and the playback rate Pr such that the time obtained by subtracting the start time T0 from the current time T n matches the playback position Ct, and outputs these to the corresponding video playback units 10-1 to 10-4.

[0166] In step S402 of FIG. 4, each of the switching thresholds Da, Db, the maximum value Ra of the playback rate adjustment width, the minimum value Rb of the playback rate adjustment width, and the target adjustment time At is initially set as a common value among the event processing units 25-1 to 25-4.

[0167] Also, in step S901 of FIG. 9, the start time T0 and the current time T nare respectively obtained as common values among the event processing units 25-1 to 25-4 from the synchronization processing unit 11’ and the internal clock 12. The playback position Ct is obtained from the video playback units 10-1 to 10-4 corresponding to each of the event processing units 25-1 to 25-4.

[0168] Each of the start time calculation units 23-1 to 23-4 provided in the start time calculation unit 23’ performs the same processing as the start time calculation unit 23 shown in FIG. 3.

[0169] Specifically, when each of the start time calculation units 23-1 to 23-4 receives an input of the completion of the seek operation, it outputs a playback position acquisition request to the corresponding video playback units 10-1 to 10-4, and acquires the playback position Ct at the time of completion of the seek operation from the corresponding video playback units 10-1 to 10-4.

[0170] Each of the start time calculation units 23-1 to 23-4 subtracts the playback position Ct from the current time T n acquired from the internal clock 12 to obtain the start time T0, records it in the memory 24, outputs it to the transmission / reception processing unit 21, and further outputs it to the playback position calculation unit 22.

[0171] When the playback position calculation unit 22 receives an input of the start time T0 associated with the completion of the seek operation from any of the start time calculation units 23-1 to 23-4, it subtracts the start time T0 from the current time T n acquired from the internal clock 12 in the same manner as when it receives an input of the start time T0 from the transmission / reception processing unit 21 to obtain the playback position Ct. Then, the playback position calculation unit 22 outputs the playback position Ct to the video playback unit 10’ (all video playback units 10-1 to 10-4) to set the video playback position to the playback position Ct.

[0172] As a result, in any of the video playback units 10-1 to 10-4 where the seek operation is performed, the video is played back at 1x speed from the playback position Ct, and in the other video playback units 10-1 to 10-4, the video moves to the same playback position Ct and is played back.

[0173] As described above, according to the viewing terminal 3' of another embodiment of the present invention, in all video playback units 10-1 to 10-4, since video playback is performed based on the common start time T0, synchronous playback of videos can be realized.

[0174] Also, when a plurality of viewing terminals 3' participate in the distribution network 1, in all video playback units 10-1 to 10-4 provided in all the viewing terminals 3', video playback is also performed based on the common start time T0.

[0175] That is, in all video playback units 10-1 to 10-4 provided in all the viewing terminals 3' participating in the distribution network 1, synchronous playback of videos can be realized.

[0176] The present invention has been described above by way of embodiments, but the present invention is not limited to the above embodiments and can be variously modified without departing from its technical idea.

[0177] In addition, as the hardware configuration of the viewing terminal 3 according to the embodiment of the present invention and the viewing terminal 3' according to another embodiment of the present invention, a normal computer can be used. The viewing terminals 3 and 3' are constituted by a computer including a CPU, a volatile storage medium such as a RAM, a non-volatile storage medium such as a ROM, and an interface.

[0178] Each function provided in the video playback unit 10 and the synchronization processing unit 11 (startup processing unit 20, transmission / reception processing unit 21, playback position calculation unit 22, start time calculation unit 23, memory 24, and event processing unit 25) provided in the viewing terminal 3 is realized by causing the CPU to execute a program describing these functions.

[0179] In addition, each function provided in the video playback unit 10' (video playback units 10-1 to 10-4) and the synchronization processing unit 11' (startup processing unit 20, transmission / reception processing unit 21, playback position calculation unit 22, start time calculation unit 23' (start time calculation units 23-1 to 23-4), memory 24, and event processing unit 25' (event processing units 25-1 to 25-4)) provided in the viewing terminal 3' is also realized by causing the CPU to execute a program describing these functions respectively.

[0180] These programs are stored in the storage medium and read by the CPU for execution. In addition, these programs can be stored and distributed in a storage medium such as a magnetic disk (e.g., a floppy (registered trademark) disk, a hard disk, etc.), an optical disk (e.g., a CD-ROM, a DVD, etc.), or a semiconductor memory, and can also be transmitted and received via a network.

Explanation of Signs

[0181] 1 Distribution network 2 Distribution server 3, 3' Viewing terminal 4 Signaling server 5 Network 10, 10-1 to 10-4, 10' Video playback unit (HTMLMediaElement) 11, 11' Synchronization processing unit 12 Internal clock 20 Startup processing unit 21 Transmission / reception processing unit 22 Playback position calculation unit 23, 23-1 to 23-4 Start time calculation unit 24 Memory 25, 25-1 to 25-4, 25' Event processing unit I Video Ia, Ib, Ic, Id Divided video a, b, c, d Divided stream T0 Start time T n Current time Ct Playback position Pr Playback rate Da, Db Switching threshold Ra Maximum value of reproduction rate adjustment range Rb Minimum value of reproduction rate adjustment range At Target adjustment time |T n -T0-Ct| Reproduction position deviation r Rate

Claims

1. In the viewing terminal that receives and plays a video under a distribution network that distributes each of a plurality of videos constituting content desired by a user from a distribution server to each of a plurality of viewing terminals, The current time T synchronized among the plurality of viewing terminals n and an internal clock having the same From another viewing terminal that is playing the video, the current time T when the beginning of the video is played n is received as the start time T 0 , the start time T 0 is recorded in the memory, the current time T n is obtained from the internal clock, and the playback position Ct is obtained by subtracting the start time T n from the current time T 0 in a synchronization processing unit a video playback unit that sets the playback position of the video to the playback position Ct obtained by the synchronization processing unit and plays the video from the playback position Ct; when a new viewing terminal joins the distribution network, the synchronization processing unit Receiving an inquiry from the new viewing terminal, reading the start time T from the memory, and transmitting the start time T to the new viewing terminal. A viewing terminal characterized by this. 0 Reading out the start time T, 0 And transmitting the start time T to the new viewing terminal. A viewing terminal characterized by this.

2. In the viewing terminal according to claim 1, the synchronization processing unit When the seek operation of the video by the user is completed, obtain the playback position Ct at which the video is being played from the video playback unit, and obtain the current time T from the internal clock n and subtract the playback position Ct from the current time T to obtain the start time T n associated with the completion of the seek operation, and record the start time T 0 in the memory, and transmit the start time T 0 to the other viewing terminal. A viewing terminal characterized by this 0 is provided

3. In the viewing terminal according to claim 1 or 2, the synchronization processing unit When the seek operation is completed on the other viewing terminal, the start time T associated with the completion of the seek operation is received from the other viewing terminal. 0 The start time T 0 is recorded in the memory, the current time T n is obtained from the internal clock, and the playback position Ct associated with the completion of the seek operation is obtained by subtracting the start time T n from the current time T 0 ​ the video playback unit sets the playback position of the video to the playback position Ct accompanying the completion of the seek operation obtained by the synchronization processing unit, and plays the video from the playback position Ct, and a viewing terminal characterized by this.

4. Under a distribution network that distributes each of a plurality of videos constituting content desired by a user from a distribution server to each of a plurality of viewing terminals, a current time T synchronized among the plurality of viewing terminals n A computer that includes an internal clock having and constitutes the viewing terminal that receives and plays back the video The current time T when the head of the video starts playing from another viewing terminal that is playing the video n is received as the start time T 0 , the start time T 0 is recorded in the memory, the current time T n is obtained from the internal clock, and the playback position Ct is obtained by subtracting the start time T n from the current time T 0 , and a synchronization processing unit A program for functioning as a video playback unit that sets the playback position of the video to the playback position Ct obtained by the synchronization processing unit and plays the video from the playback position Ct, when a new viewing terminal joins the distribution network, the synchronization processing unit Receiving an inquiry from the new viewing terminal, reading the start time T from the memory, and transmitting the start time T to the new viewing terminal. A program characterized by this. 0 Reading out the start time T, 0 And transmitting the start time T to the new viewing terminal. A program characterized by this.

Citation Information

Patent Citations

  • Simultaneous reproduction system, information processing apparatus, midway participation method, and midway participation program

    JP2007013705A

  • Terminal cooperation continuation viewing-and-listening system, terminal, server, and method

    JP2009130876A

  • Program, information storage medium, and motion picture distributing system

    JP2009284055A

  • System and method of content synchronous reproduction, reproduction terminal, method of controlling the same, and control program

    JP2010183237A

  • Communication device, communication method, and program

    JP2019219919A