Terminal device, switching method, and switching program

The terminal device facilitates seamless switching between WebRTC and HLS servers to provide low-latency live streaming and easy access to past video data, addressing the limitations of existing technologies in video streaming.

JP7783017B2Active Publication Date: 2025-12-09NTT DOCOMO BUSINESS INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021185141
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-11-12
Publication Date
2025-12-09
Estimated Expiration
2041-11-12

AI Technical Summary

Technical Problem

Existing live streaming technologies using WebRTC and HLS do not allow seamless switching between low-latency live streaming and playback of past video data, leading to difficulties in comfortably viewing video data from different time periods.

Method used

A terminal device with a determination unit and switching unit that dynamically selects between WebRTC and HLS servers based on playback time and network conditions to enable low-latency live streaming and easy access to past video data.

Benefits of technology

Enables low-latency live streaming with the ability to easily view video data from desired past times, improving user experience by allowing smooth transitions between real-time and historical video playback.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007783017000001
    Figure 0007783017000001
  • Figure 0007783017000002
    Figure 0007783017000002
  • Figure 0007783017000003
    Figure 0007783017000003
Patent Text Reader

Abstract

To enable a user to view live distribution with a low delay and easily view video data of a past time desired by a user.SOLUTION: A terminal device 100 comprises: a determination unit which, on the basis of whether a predetermined condition is satisfied, determines whether to receive, via a network, video data from a first server for distributing the video data acquired from a video source or to receive video data from a second server for distributing the video data, after converting to a video file the video data acquired from the video source; and a switch unit which makes a request for distribution of the video data to the first server or the second server on the basis of a determination result of the determination unit.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a terminal device, a switching method, a switching program, and the like. [Background technology]

[0002] Technologies for live streaming of video data include WebRTC (Web Real-Time Communication) and HLS (Http Live Streaming).

[0003] Servers that perform live streaming based on WebRTC (hereinafter referred to as WebRTC streaming servers) perform stream-type live streaming. For example, a WebRTC streaming server receives video data in real time from a video source and delivers it directly to the user's device without converting it into a video file. The device then expands the received video data into memory and plays it back, achieving low-latency live streaming.

[0004] On the other hand, servers that perform live streaming based on HLS (hereinafter referred to as HLS streaming servers) perform segment download-type live streaming. For example, an HLS streaming server converts video data obtained in real time from a video source into video files of a certain length (about tens of seconds) and stores them, while delivering the video data to the user's device. The device then temporarily stores the received video files in its internal storage and plays them back. [Prior art documents] [Non-patent literature]

[0005] [Non-Patent Document 1] “What is WebRTC?”, [online], [Retrieved November 1, 2021], Internet<https: / / www.freshvoice.net / knowledge / basic / 7437 / > [Non-patent document 2] “What is HLS?”, [online], [Retrieved November 1, 2021], Internet<https: / / www.dpsj.co.jp / tech-articles / wowza-blog-hls> Summary of the Invention [Problem to be solved by the invention]

[0006] WebRTC distribution servers can achieve low-latency live streaming, but video data that has already been distributed is not stored on the WebRTC distribution server or on the device that received the video data, so video data cannot be re-distributed from past times.On the other hand, video files remain on the HLS distribution server and on the device that received the video data, so video data can be re-distributed and played from past times, but low-latency live streaming cannot be achieved because video files must be created.

[0007] To address the above issue, it is possible for users to view video data by separately preparing a WebRTC viewing player for viewing video data distributed from a WebRTC distribution server and an HLS viewing player for viewing video data distributed from an HLS distribution server, but this would prevent users from viewing the video data comfortably.

[0008] For example, if you are watching video data using a WebRTC viewing player and then switch to an HLS viewing player to view the video data in order to check video data from a previous time, it is difficult to understand the relationship with the playback time of the video data you have previously viewed using the WebRTC viewing player, making it difficult to view the video data from a previous time that you want.

[0009] The present invention has been made in consideration of the above, and aims to provide a terminal device, a switching method, and a switching program that enable viewing of low-latency live broadcasts and that allow users to easily view video data from past times as desired. [Means for solving the problem]

[0010] In order to solve the above-mentioned problems and achieve the object, the terminal device of the present invention includes a determination unit that determines whether to receive video data from a first server that distributes video data acquired from a video source via a network, or whether to receive video data from a second server that converts the video data acquired from the video source into a video file, saves it, and then distributes the video data, based on whether a predetermined condition is met, and a switching unit that makes a request for distribution of video data to the first server or the second server based on the determination result of the determination unit. [Effects of the Invention]

[0011] According to the present invention, it is possible to view live distribution with low delay, and also to easily view video data from a desired time in the past. [Brief explanation of the drawings]

[0012] [Figure 1] FIG. 1 is a diagram illustrating an example of a system according to the first embodiment. [Figure 2] FIG. 2 is a diagram (1) for explaining the processing of the terminal device according to the first embodiment. [Figure 3] FIG. 3 is a diagram (2) for explaining the processing of the terminal device according to the first embodiment. [Figure 4] FIG. 4 is a diagram (3) for explaining the process of the terminal device according to the first embodiment. [Figure 5] FIG. 5 is a functional block diagram illustrating a configuration of a terminal device according to the first embodiment. [Figure 6] FIG. 6 is a flowchart of a processing procedure of the terminal device according to the first embodiment. [Figure 7] FIG. 7 is a functional block diagram illustrating a configuration of a terminal device according to the second embodiment. [Figure 8] FIG. 8 is a flowchart of a processing procedure of the terminal device according to the second embodiment. [Figure 9] FIG. 9 is a diagram illustrating an example of a system according to the third embodiment. [Figure 10] FIG. 10 is a functional block diagram illustrating a configuration of a terminal device according to the third embodiment. [Figure 11] FIG. 11 is a flowchart of a processing procedure of the terminal device according to the third embodiment. [Figure 12] FIG. 12 is a diagram illustrating an example of a computer that executes a switching program. DETAILED DESCRIPTION OF THE INVENTION

[0013] Hereinafter, embodiments of the terminal device, the switching method, and the switching program disclosed in the present application will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to these embodiments. [Example]

[0014] FIG. 1 is a diagram illustrating an example of a system according to a first embodiment. As illustrated in FIG. 1, the system includes a video source 10, a WebRTC distribution server 20, an HLS distribution server 30, and a terminal device 100. The video source 10 and the WebRTC distribution server 20 are connected to each other wirelessly or by wire. The video source 10 and the HLS distribution server 30 are connected to each other wirelessly or by wire. The WebRTC distribution server 20 and the terminal device 100 are connected to each other via a network 50. The HLS distribution server 30 and the terminal device 100 are connected to each other via the network 50.

[0015] The video source 10 corresponds to a photographing device such as a camera. The video source 10 outputs photographed video data to the WebRTC distribution server 20 and the HLS distribution server 30 in real time.

[0016] The WebRTC distribution server 20 performs live streaming when it receives a video data distribution request from the terminal device 100. For example, the WebRTC distribution server 20 distributes video data acquired in real time from the video source 10 to the terminal device 100 without converting the video data into a video file and storing it in a storage device. The WebRTC distribution server 20 does not retain the video data after distribution.

[0017] When a video data distribution request is received, the HLS distribution server 30 performs segment download-type live distribution. For example, the HLS distribution server 30 converts video data acquired in real time from the video source 10 into video files of a fixed time period (approximately several tens of seconds) and stores the video files in the video DB 35.

[0018] The HLS distribution server 30 acquires, from the video DB 35, video data corresponding to the segment file information specified in the distribution request, and distributes the acquired video data to the terminal device 100.

[0019] The terminal device 100 receives video data from the WebRTC distribution server 20 or the HLS distribution server 30 and plays the received video data. Here, the terminal device 100 determines whether to receive the video data from the WebRTC distribution server 20 or the HLS distribution server 30 based on whether a predetermined condition is satisfied, and based on the determination result, makes a distribution request for the video data to the WebRTC distribution server 20 or the HLS distribution server 30 (sends a distribution request).

[0020] 2 to 4 are diagrams for explaining the processing of the terminal device according to the first embodiment. First, FIG. 2 will be explained. The terminal device 100 displays a UI (User Interface) 60. The UI 60 includes a playback area 60a and an operation area 60b. The playback area 60a is an area where video data is played. The operation area 60b is an area where the user operates the time for playing the video data.

[0021] The operation area 60b includes a seek bar 61 and a pointer 62. The position on the seek bar 61 corresponds to the elapsed time from the start time of the video data. The left end of the seek bar 61 corresponds to the start time of the video data. In the following explanation, the time indicated by the pointer 62, which is the time from the start time, will be referred to as "playback time." The further to the right the position of the seek bar 61 moves, the more time increases, and the right end of the seek bar 61 corresponds to the total time of the video data up to the present. As long as real-time live streaming continues, the total time continues to increase. In this embodiment 1, the length of the seek bar 61 is fixed, and the time on the seek bar 61 is adjusted as the total time increases.

[0022] Video data of a playback time corresponding to the position of a pointer 62 set on a seek bar 61 is played back in a playback area 60a. When a user wants to view real-time video data, the user sets the position of the pointer 62 to the right end of the seek bar 61. When a user wants to view video data from a past time, the user moves the position of the pointer 62 to a playback time position corresponding to the desired past time.

[0023] We now move on to the description of Fig. 3. As shown in Fig. 3, when the position of the pointer 62 is set to the right end of the seek bar 61, the terminal device 100 requests the WebRTC distribution server 20 to distribute video data, and plays back the real-time video data.

[0024] We now move on to the description of Fig. 4. As shown in Fig. 4, when the position of the pointer 62 is set at a position other than the right end of the seek bar 61, the terminal device 100 requests the HLS distribution server 30 to distribute video data of a past time corresponding to the position of the pointer 62, and plays back the video data from that past time. When requesting the HLS distribution server 30 to distribute video data, the terminal device 100 notifies the HLS distribution server 30 of segment file information corresponding to the position of the pointer 62. The segment file information corresponds to the time information of the position of the pointer 62.

[0025] As described above, the terminal device 100 according to the first embodiment requests the WebRTC distribution server 20 to distribute video data when the position of the pointer 62 is set at the right end of the seek bar 61, and requests the HLS distribution server 30 to distribute video data at a time corresponding to the position of the pointer 62 when the position of the seek bar 61 is set at a position other than the right end, and displays the video data distributed from the WebRTC distribution server 20 or the HLS distribution server 30 in the playback area 60a of the UI 60. This enables viewing of live distribution with low latency and allows the user to easily view video data from a desired past time.

[0026] For example, when the pointer 62 is moved, the right end of the seek bar 61 corresponds to the real-time time, so it is easy to check how far back the video data is compared with the real-time time.

[0027] Next, a configuration example of the terminal device 100 according to the present embodiment 1 will be described. Fig. 5 is a functional block diagram showing the configuration of the terminal device according to the present embodiment 1. As shown in Fig. 5, the terminal device 100 includes a communication control unit 110, an input unit 120, a display unit 130, a storage unit 140, and a control unit 150.

[0028] The communication control unit 110 is realized by a NIC (Network Interface Card) or the like, and controls communication between the WebRTC delivery server 20 and the control unit 150 via a LAN (Local Area Network) or a network 50, and communication between the HLS delivery server 30 and the control unit 150. The communication control unit 110 may also communicate with other external devices.

[0029] The input unit 120 is realized using input devices such as a keyboard and a mouse, and inputs various information to the control unit 150 in response to input operations by the user. For example, the user operates the input unit 120 to move the position of the pointer 62 of the UI 60 described in FIG. 2 etc. to a desired position.

[0030] The display unit 130 is an output device that outputs information acquired from the control unit 150, and is realized by a display device such as a liquid crystal display. The display unit 130 displays the UI 60 and the like described with reference to FIG.

[0031] The storage unit 140 stores various types of information used by the control unit 150 etc. The storage unit 140 is realized by a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk.

[0032] The control unit 150 includes a switching unit 151, a first receiving unit 152, a second receiving unit 153, a display control unit 154, and a determination unit 155. The control unit 150 corresponds to a CPU (Central Processing Unit) or the like.

[0033] Based on the determination result of the determination unit 155, the switching unit 151 transmits a video data delivery request to the WebRTC delivery server 20 or the HLS delivery server 30.

[0034] When the determination unit 155 determines that video data will be received from the WebRTC distribution server 20, the switching unit 151 transmits a distribution request for the video data to the WebRTC distribution server 20. When the determination unit 155 determines that video data will be received from the WebRTC distribution server 20 and the switching unit 151 is receiving video data from the HLS distribution server 30, the switching unit 151 requests the HLS distribution server 30 to stop distribution.

[0035] If the switching unit 151 has already received video data from the WebRTC distribution server 20, it does not need to make a distribution request.

[0036] When the determination unit 155 determines that video data will be received from the HLS distribution server 30, the switching unit 151 transmits a distribution request for the video data to the HLS distribution server 30. The distribution request sent to the HLS distribution server 30 includes segment file information corresponding to the position of the pointer 62. When the switching unit 151 is receiving video data from the WebRTC distribution server 20 at the time when the determination unit 155 determines that video data will be received from the HLS distribution server 30, the switching unit 151 requests the WebRTC distribution server 20 to stop distribution.

[0037] Every time the position of the pointer 62 is updated, the switching unit 151 requests the HLS distribution server 30 to distribute the segment file information corresponding to the position of the pointer 62.

[0038] It should be noted that the switching unit 151 requests the WebRTC delivery server 20 to deliver video data at the start of processing, regardless of the determination result of the determination unit 155.

[0039] The first receiving unit 152 receives video data distributed from the WebRTC distribution server 20. The first receiving unit 152 outputs the received video data to the display control unit 154.

[0040] The second receiving unit 153 receives the video data distributed from the HLS distribution server 30. The second receiving unit 153 outputs the received video data to the display control unit 154.

[0041] When a display request for the UI 60 is received from a user operating the input unit 120, the display control unit 154 outputs the UI 60 shown in FIG.

[0042] The display control unit 154 acquires the video data from the first receiving unit 152 or the second receiving unit 153, and plays the acquired video data in the playback area 60a.

[0043] Here, when the display control unit 154 receives a movement operation of the pointer 62 from the user operating the input unit 120, the display control unit 154 moves the position of the pointer 62 in accordance with the movement operation. Every time the display control unit 154 receives a movement operation of the pointer 62, the display control unit 154 generates movement operation information of the pointer 62 and outputs it to the determination unit 155.

[0044] The movement operation information output by the display control unit 154 to the determination unit 155 includes information as to whether or not the pointer 62 is located at the right end of the seek bar 61. If the pointer 62 is not located at the right end of the seek bar 61, the movement operation information includes segment file information according to the position of the pointer 62.

[0045] The determination unit 155 determines whether to receive video data from the WebRTC distribution server 20 or the HLS distribution server 30 based on the movement operation information obtained from the display control unit 154, and outputs the determination result to the switching unit 151.

[0046] The determination unit 155 determines, based on the movement operation information, that video data is to be received from the WebRTC distribution server 20 when the pointer 62 is located at the right end of the seek bar 61.

[0047] On the other hand, if the pointer 62 is not located at the right end of the seek bar 61, the determination unit 155 determines, based on the movement operation information, that video data is to be received from the HLS distribution server 30. The determination unit 155 outputs the time information included in the movement operation information to the switching unit 151.

[0048] Next, an example of a processing procedure of the terminal device 100 according to the present embodiment 1 will be described. Fig. 6 is a flowchart showing the processing procedure of the terminal device according to the present embodiment 1. As shown in Fig. 6, the display control unit 154 of the terminal device 100 causes the display unit 130 to display the UI 60 (step S101).

[0049] The switching unit 151 of the terminal device 100 transmits a distribution request to the WebRTC distribution server 20, and the first receiving unit 152 receives the video data (step S102). The display control unit 154 starts playing the video data (step S103).

[0050] If the display control unit 154 has not received a movement operation of the pointer 62 (step S104, No), the process proceeds to step S104 again. On the other hand, if the display control unit 154 has received a movement operation of the pointer 62 (step S104, Yes), the process proceeds to step S105.

[0051] The determination unit 155 determines whether the position of the pointer 62 after the movement operation is at the right end or not (step S105). If the position of the pointer 62 is at the right end (step S106, Yes), the determination unit 155 proceeds to step S107. If the position of the pointer 62 is not at the right end (step S106, No), the determination unit 155 proceeds to step S108.

[0052] The switching unit 151 transmits a distribution request to the WebRTC distribution server 20, and the first receiving unit 152 receives the video data (step S107), and the process proceeds to step S110.

[0053] The switching unit 151 sets the segment file information according to the position of the pointer 62 in the distribution request (step S108). The switching unit 151 transmits the distribution request to the HLS distribution server 30, and the second receiving unit 153 receives the video data (step S109), and the process proceeds to step S110.

[0054] If the terminal device 100 does not want to end the playback (step S110, No), the process proceeds to step S104. If the terminal device 100 wants to end the playback (step S110, Yes), the process ends.

[0055] Next, the effects of the terminal device 100 according to the first embodiment will be described. When the position of the pointer 62 is set at the right end of the seek bar 61, the terminal device 100 requests the WebRTC distribution server 20 to distribute video data. When the position of the pointer 62 is set at a position other than the right end of the seek bar 61, the terminal device 100 requests the HLS distribution server 30 to distribute video data at a time corresponding to the position of the pointer 62, and displays the video data distributed from the WebRTC distribution server 20 or the HLS distribution server 30 in the playback area 60a of the UI 60. This enables viewing of live distribution with low latency and allows the user to easily view video data from a desired past time.

[0056] Note that the terminal device 100 described above determines whether to request the WebRTC distribution server 20 to distribute video data or to the HLS distribution server 30 to distribute video data depending on whether the position of the pointer 62 is at the right end or not, but this is not limited to this.

[0057] The terminal device 100 may acquire information on the total time of the video data and the playback time (current playback time) of the video data currently being played on the UI 60 from the display control unit 154, and may determine, based on the total time and the current playback time, whether to make a video data delivery request to the WebRTC delivery server 20 or to the HLS delivery server 30. For example, if the total time and the current playback time match, the determination unit 155 of the terminal device 100 determines to make a video data delivery request to the WebRTC delivery server 20. On the other hand, if the total time and the current playback time do not match, the terminal device 100 makes a video data delivery request to the HLS delivery server 30. In this case, the switching unit 151 sets the current playback time as time information and transmits a delivery request to the HLS delivery server 30.

[0058] This enables viewing of live streaming with low latency using the total time and the current playback time, and also allows users to easily view video data from a desired time in the past. [Example]

[0059] Next, an example of a system according to the present embodiment 2 will be described. The configuration of the system according to the present embodiment 2 is the same as that of the system described in the embodiment 1, and therefore the description will be omitted. A terminal device according to the present embodiment 2 is connected to a WebRTC distribution server 20 and an HLS distribution server 30 via a network 50.

[0060] The terminal device according to the second embodiment switches the server that receives video data from the WebRTC distribution server 20 to the HLS distribution server 30 based on the communication quality of the network 50. For example, the terminal device receives video data from the WebRTC distribution server 20 while the communication quality of the network 50 is maintained at a certain level. On the other hand, the terminal device receives video data from the HLS distribution server 30 when the communication quality of the network 50 falls below the certain level. This allows the user to view video data according to the communication quality of the network 50 without having to manually perform a switching operation or the like.

[0061] Fig. 7 is a functional block diagram showing the configuration of a terminal device according to Example 2. As shown in Fig. 7, the terminal device 200 includes a communication control unit 210, an input unit 220, a display unit 230, a storage unit 240, and a control unit 250.

[0062] The explanations regarding the communication control unit 210, input unit 220, display unit 230, and storage unit 240 are the same as the explanations regarding the communication control unit 110, input unit 120, display unit 130, and storage unit 140 explained in the first embodiment.

[0063] The control unit 250 includes a switching unit 251, a first receiving unit 252, a second receiving unit 253, a display control unit 254, a statistical data acquisition unit 255, and a determination unit 256. The control unit 250 corresponds to a CPU or the like.

[0064] Based on the determination result of the determination unit 256, the switching unit 251 transmits a delivery request for video data to the WebRTC delivery server 20 or the HLS delivery server 30. At the start of processing, the switching unit 251 requests the WebRTC delivery server 20 to deliver video data, regardless of the determination result of the determination unit 256. Other processing related to the switching unit 251 is similar to the description of the switching unit 151 described in the first embodiment.

[0065] The first receiving unit 252 receives video data distributed from the WebRTC distribution server 20. The first receiving unit 252 outputs the received video data to the display control unit 254 and the statistical data acquisition unit 255.

[0066] Under the switching control of the switching unit 251, while video data is being distributed from the HLS distribution server 30 to the second receiving unit 253, the first receiving unit 252 periodically accesses the WebRTC distribution server 20 to receive the video data, and outputs the received video data to the statistical data acquisition unit 255.

[0067] The second receiving unit 253 receives the video data distributed from the HLS distribution server 30. The second receiving unit 253 outputs the received video data to the display control unit 254.

[0068] When a display request for a UI for viewing video data is received from a user operating the input unit 220, the display control unit 254 outputs the UI to the display unit 230 to display it. The display control unit 254 acquires video data from the first receiving unit 252 or the second receiving unit 253, and plays the acquired video data in the playback area of ​​the UI.

[0069] The statistical data acquisition unit 255 acquires the latency and packet loss rate of the network 50 based on the video data acquired from the WebRTC distribution server 20. The statistical data acquisition unit 255 outputs information on the latency and packet loss rate to the determination unit 256.

[0070] Based on the latency and packet loss rate information acquired from the statistical data acquisition unit 255, the determination unit 256 determines whether to receive video data from the WebRTC distribution server 20 or the HLS distribution server 30, and outputs the determination result to the switching unit 251.

[0071] If the latency is less than the threshold value Th1 and the packet loss rate is less than the threshold value Th2, the determination unit 256 determines that the communication quality of the network 50 is maintained at a certain level. The values ​​of the threshold values ​​Th1 and Th2 are set in advance. If the communication quality of the network 50 is maintained at a certain level, the determination unit 256 determines to receive video data from the WebRTC distribution server 20.

[0072] On the other hand, if the latency is equal to or greater than the threshold Th1 or the packet loss rate is equal to or greater than the threshold Th2, the determination unit 256 determines that the communication quality of the network 50 is not maintained at a certain level. If the communication quality of the network 50 is not maintained at a certain level, the determination unit 256 determines to receive video data from the HLS distribution server 30.

[0073] Next, a description will be given of an example of a processing procedure of the terminal device 200 according to the present embodiment 2. Fig. 8 is a flowchart showing the processing procedure of the terminal device according to the present embodiment 2. As shown in Fig. 8, the display control unit 254 of the terminal device 200 causes the display unit 230 to display a UI (step S201).

[0074] The switching unit 251 of the terminal device 200 transmits a distribution request to the WebRTC distribution server 20, and the first receiving unit 252 receives the video data (step S202). The display control unit 254 starts playing the video data (step S203).

[0075] The statistical data acquisition unit 255 of the terminal device 200 identifies the latency and the packet loss rate based on the video data (step S204).

[0076] If the communication quality of the network 50 is not equal to or higher than a certain quality (step S205, No), the determination unit 256 of the terminal device 200 proceeds to step S206. The switching unit 251 transmits a distribution request to the HLS distribution server 30, and the second receiving unit 253 receives the video data from the HLS distribution server 30 (step S206), and the process proceeds to step S209.

[0077] On the other hand, if the communication quality of the network 50 is equal to or higher than a certain quality (Yes in step S205), the determination unit 256 proceeds to step S207. The switching unit 251 determines whether video data is being received from the WebRTC distribution server 20 (step S207).

[0078] If the determination unit 256 is receiving video data from the WebRTC distribution server 20 (step S207, Yes), the process proceeds to step S209. On the other hand, if the determination unit 256 is not receiving video data from the WebRTC distribution server 20 (step S207, No), the process proceeds to step S208.

[0079] The switching unit 251 transmits a distribution request to the WebRTC distribution server 20, and the first receiving unit 252 receives the video data from the WebRTC distribution server 20 (step S208), and the process proceeds to step S209.

[0080] The terminal device 200 waits for a certain period of time (step S209). If the terminal device 200 does not want to end the playback (step S210, No), it proceeds to step S204. If the terminal device 200 wants to end the playback (step S210, Yes), it ends the process.

[0081] Next, the effects of the terminal device 200 according to the second embodiment will be described. The terminal device 200 switches the server that receives video data from the WebRTC distribution server 20 to the HLS distribution server 30 based on the communication quality of the network 50. For example, the terminal device 200 receives video data from the WebRTC distribution server 20 while the communication quality of the network 50 is maintained at a certain level. On the other hand, the terminal device 200 receives video data from the HLS distribution server 30 when the communication quality of the network 50 falls below the certain level. This makes it possible for the user to view video data according to the communication quality of the network 50 without having to manually perform a switching operation or the like. [Example]

[0082] Next, an example of a system according to the present embodiment 3 will be described. Fig. 9 is a diagram showing an example of a system according to the present embodiment 3. As shown in Fig. 9, this system includes a video source 10, a WebRTC distribution server 20, an HLS distribution server 30, a quality measurement server 40, and a terminal device 300.

[0083] The description of the video source 10, the WebRTC distribution server 20, and the HLS distribution server 30 shown in FIG. 9 is the same as the description of the video source 10, the WebRTC distribution server 20, and the HLS distribution server 30 described in the first embodiment.

[0084] The quality measurement server 40 measures the communication quality of the network 50. For example, the quality measurement server 40 measures latency and packet loss rate as communication quality. The quality measurement server 40 transmits information on the measured communication quality to the terminal device 300. The quality measurement server 40 repeatedly executes the above process at predetermined time intervals.

[0085] The terminal device 300 according to the third embodiment switches the server that receives video data from the WebRTC distribution server 20 to the HLS distribution server 30 based on the communication quality notified by the quality measurement server 40. For example, the terminal device 300 receives video data from the WebRTC distribution server 20 while the communication quality of the network 50 is maintained at a certain level. On the other hand, when the communication quality of the network 50 falls below the certain level, the terminal device receives video data from the HLS distribution server 30. This allows the user to view video data according to the communication quality of the network 50 without having to manually perform a switching operation or the like.

[0086] Fig. 10 is a functional block diagram showing the configuration of a terminal device according to Example 3. As shown in Fig. 10, the terminal device 300 includes a communication control unit 310, an input unit 320, a display unit 330, a storage unit 340, and a control unit 350.

[0087] The communication control unit 310, input unit 320, display unit 330, and storage unit 340 are explained in the same manner as the communication control unit 110, input unit 120, display unit 130, and storage unit 140 explained in the first embodiment.

[0088] The control unit 350 includes a switching unit 351, a first receiving unit 352, a second receiving unit 353, a display control unit 354, a communication quality collecting unit 355, and a determining unit 356. The control unit 350 corresponds to a CPU or the like.

[0089] Based on the determination result of the determination unit 356, the switching unit 351 transmits a delivery request for video data to the WebRTC delivery server 20 or the HLS delivery server 30. At the start of processing, the switching unit 351 requests the WebRTC delivery server 20 to deliver video data, regardless of the determination result of the determination unit 356. Other processing related to the switching unit 351 is similar to the description of the switching unit 151 described in the first embodiment.

[0090] The first receiving unit 352 receives video data distributed from the WebRTC distribution server 20. The first receiving unit 352 outputs the received video data to the display control unit 354.

[0091] The second receiving unit 353 receives the video data distributed from the HLS distribution server 30. The second receiving unit 353 outputs the received video data to the display control unit 354.

[0092] When a display request for a UI for viewing video data is received from a user operating input unit 320, display control unit 354 outputs the UI to display unit 330. Display control unit 354 acquires video data from first receiving unit 352 or second receiving unit 353, and plays the acquired video data in the playback area of ​​the UI.

[0093] While the display control unit 354 is outputting and displaying the UI on the display unit 330, the display control unit 354 outputs to the determination unit 356 information about the buffer size used when playing back the video data.

[0094] The communication quality collecting unit 355 collects information on communication quality from the quality measuring server 40. The information on communication quality includes the latency and packet loss rate of the network 50. The communication quality collecting unit 355 outputs the information on communication quality to the determining unit 356.

[0095] Based on the communication quality information and the buffer size information, the determination unit 356 determines whether to receive video data from the WebRTC distribution server 20 or from the HLS distribution server 30, and outputs the determination result to the switching unit 351.

[0096] If the latency is equal to or less than the buffer size and the packet loss rate is less than the threshold Th2, the determination unit 356 determines that a certain level of communication quality is maintained in the network 50. If a certain level of communication quality is maintained in the network 50, the determination unit 356 determines that video data is to be received from the WebRTC distribution server 20.

[0097] On the other hand, if the latency is greater than the buffer size or if the packet loss rate is equal to or greater than the threshold value Th2, the determination unit 356 determines that the communication quality of the network 50 is not maintained at a certain level. If the communication quality of the network 50 is not maintained at a certain level, the determination unit 356 determines to receive video data from the HLS distribution server 30.

[0098] Next, an example of a processing procedure of the terminal device 300 according to the present embodiment 3 will be described. Fig. 11 is a flowchart showing the processing procedure of the terminal device according to the present embodiment 3. As shown in Fig. 11, the display control unit 354 of the terminal device 300 causes the display unit 330 to display a UI (step S301).

[0099] The switching unit 351 of the terminal device 300 transmits a distribution request to the WebRTC distribution server 20, and the first receiving unit 352 receives the video data (step S302). The display control unit 354 starts playing the video data (step S303).

[0100] The communication quality collecting unit 355 of the terminal device 300 collects communication quality information from the quality measurement server 40 (step S304).

[0101] If the communication quality of the network 50 is not equal to or higher than a certain quality (step S305, No), the determination unit 356 of the terminal device 300 proceeds to step S306. The switching unit 351 transmits a distribution request to the HLS distribution server 30, and the second receiving unit 353 receives the video data from the HLS distribution server 30 (step S306), and the process proceeds to step S309.

[0102] On the other hand, if the communication quality of the network 50 is equal to or higher than a certain quality (step S305, Yes), the determination unit 356 proceeds to step S307. The switching unit 351 determines whether video data is being received from the WebRTC distribution server 20 (step S307).

[0103] If the determination unit 356 is receiving video data from the WebRTC delivery server 20 (step S307, Yes), the process proceeds to step S309. On the other hand, if the determination unit 356 is not receiving video data from the WebRTC delivery server 20 (step S307, No), the process proceeds to step S308.

[0104] The switching unit 351 transmits a distribution request to the WebRTC distribution server 20, and the first receiving unit 352 receives the video data from the WebRTC distribution server 20 (step S308), and the process proceeds to step S309.

[0105] The terminal device 300 waits for a certain period of time (step S309). If the terminal device 300 does not want to end the playback (step S310, No), it proceeds to step S304. If the terminal device 300 wants to end the playback (step S310, Yes), it ends the process.

[0106] Next, the effects of the terminal device 300 according to the third embodiment will be described. The terminal device 300 switches the server that receives video data from the WebRTC distribution server 20 to the HLS distribution server 30 based on the communication quality notified by the quality measurement server 40. For example, the terminal device 300 receives video data from the WebRTC distribution server 20 while the communication quality of the network 50 is maintained at a certain level. On the other hand, the terminal device 300 receives video data from the HLS distribution server 30 when the communication quality of the network 50 falls below the certain level. This makes it possible for the user to view video data according to the communication quality of the network 50 without having to manually perform a switching operation or the like.

[0107] Furthermore, since the information on communication quality is notified from the quality measurement server 40, the processing load on the terminal device 300 can also be reduced.

[0108] Next, an example of a computer that executes the switching program will be described. Fig. 12 is a diagram showing an example of a computer that executes the switching program. The computer 1000 includes, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These components are connected by a bus 1080.

[0109] The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012. The ROM 1011 stores, for example, a boot program such as a BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to a hard disk drive 1031. The disk drive interface 1040 is connected to a disk drive 1041. A removable storage medium such as a magnetic disk or optical disk is inserted into the disk drive 1041. The serial port interface 1050 is connected to, for example, a mouse 1051 and a keyboard 1052. The video adapter 1060 is connected to, for example, a display 1061.

[0110] Here, the hard disk drive 1031 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. The various pieces of information described in the above embodiments are stored in the hard disk drive 1031 or memory 1010, for example.

[0111] The switching program is stored in the hard disk drive 1031 as a program module 1093 in which commands to be executed by the computer 1000 are written. Specifically, the program module 1093 in which each process executed by the terminal device 100 (200, 300) described in the above embodiment is written is stored in the hard disk drive 1031.

[0112] Furthermore, data used for information processing by the switching program is stored as program data 1094, for example, in the hard disk drive 1031. Then, the CPU 1020 reads the program module 1093 and the program data 1094 stored in the hard disk drive 1031 into the RAM 1012 as necessary, and executes each of the above-described procedures.

[0113] Note that the program module 1093 and program data 1094 related to the switching program are not limited to being stored in the hard disk drive 1031, and may be stored in, for example, a removable storage medium and read by the CPU 1020 via the disk drive 1041. Alternatively, the program module 1093 and program data 1094 related to the switching program may be stored in another computer connected via a network such as a LAN or a WAN (Wide Area Network), and read by the CPU 1020 via the network interface 1070.

[0114] Although the present invention has been described above as an embodiment, the present invention is not limited to the description and drawings that form part of the disclosure of the present invention. In other words, other embodiments, examples, and operational techniques that can be made by those skilled in the art based on the present invention are all included in the scope of the present invention. [Explanation of symbols]

[0115] 10 Video Source 20 WebRTC distribution server 30 HLS distribution servers 40 Quality Measurement Server 100, 200, 300 terminal devices 110, 210, 310 Communication control unit 120,220,320 Input section 130,230,330 Display section 140,240,340 storage section 150,250,350 Control unit 151,251,351 Switching section 152,252,352 First receiving unit 153,253,353 Second receiving unit 154,254,354 Display control unit 155,256,356 Judgment section 255 Statistical Data Acquisition Unit 355 Communication Quality Collection Department

Claims

1. a determination unit that determines whether to receive the video data from a first server that distributes the video data acquired from a video source via a network, or to receive the video data from a second server that converts the video data acquired from the video source into a video file, stores the video data, and then distributes the video data, based on whether a predetermined condition is satisfied; a switching unit that issues a video data distribution request to the first server or the second server based on the determination result of the determination unit; a display control unit that displays screen information including a playback area for playing back the video data received from the first server or the video data received from the second server, and an operation area for accepting a movement operation of a pointer on a seek bar that corresponds to a time span from a start time of the video data to a total time, the pointer indicating the current playback time of the video data; Equipped with The terminal device is characterized in that the judgment unit determines that video data will be received from the first server when the position of the pointer is at a position corresponding to the total time of the seek bar, and determines that video data will be received from the second server when the position of the pointer moves to a position other than that corresponding to the total time of the seek bar.

2. The terminal device according to claim 1, characterized in that when the determination unit determines that video data is to be received from the second server, the switching unit makes a delivery request to the second server for video data corresponding to the playback time indicated by the pointer.

3. A determination unit that determines whether video data is to be received from a first server that distributes video data acquired from a video source via a network, or whether video data is to be received from a second server that converts the video data acquired from the video source into a video file, saves it, and then distributes the video data, based on whether a predetermined condition is satisfied; a switching unit that requests the first server or the second server to deliver video data based on the determination result of the determination unit; Equipped with The terminal device is characterized in that the determination unit further acquires a total time of the video data and a current playback time of the video data, and if the total time and the current playback time match, determines to receive the video data from the first server, and if the total time and the current playback time do not match, determines to receive the video data from the second server.

4. 3. The terminal device according to claim 1, wherein the determination unit determines whether to receive video data from the first server or the second server based on the quality of the network.

5. a determination step of determining whether to receive the video data from a first server that distributes the video data acquired from a video source via a network, or whether to receive the video data from a second server that converts the video data acquired from the video source into a video file, stores the video data, and then distributes the video data, based on whether a predetermined condition is satisfied; a switching step of issuing a video data distribution request to the first server or the second server based on the determination result of the determination step; a display control process for displaying screen information including a playback area for playing back the video data received from the first server or the video data received from the second server, and an operation area for accepting a movement operation of a pointer on a seek bar associated with a time span from a start time of the video data to a total time, the pointer indicating the current playback time of the video data; Including, The switching method is characterized in that the determination process determines that video data will be received from the first server when the position of the pointer is at a position corresponding to the total time of the seek bar, and determines that video data will be received from the second server when the position of the pointer moves to a position other than that corresponding to the total time of the seek bar.

6. A determination process for determining whether video data is to be received from a first server that distributes video data acquired from a video source via a network, or whether video data is to be received from a second server that converts the video data acquired from the video source into a video file, saves it, and then distributes the video data, based on whether a predetermined condition is satisfied; a switching step of issuing a video data distribution request to the first server or the second server based on the determination result of the determination step; Including, The switching method is characterized in that the determination step further acquires the total time of the video data and the current playback time of the video data, and if the total time and the current playback time match, determines to receive the video data from the first server, and if the total time and the current playback time do not match, determines to receive the video data from the second server.

7. a determination step of determining whether to receive the video data from a first server that distributes the video data acquired from a video source via a network, or whether to receive the video data from a second server that converts the video data acquired from the video source into a video file, stores the video data, and then distributes the video data, based on whether a predetermined condition is satisfied; a switching step of issuing a video data distribution request to the first server or the second server based on the determination result of the determining step; a display control step of displaying screen information including a playback area for playing back the video data received from the first server or the video data received from the second server, and an operation area for accepting a movement operation of a pointer on a seek bar associated with a time span from a start time of the video data to a total time, the pointer indicating the current playback time of the video data; on the computer, The determination step is a switching program that determines that video data will be received from the first server when the position of the pointer is at a position corresponding to the total time of the seek bar, and determines that video data will be received from the second server when the position of the pointer is moved to a position other than that corresponding to the total time of the seek bar.

8. A determination step for determining whether video data is to be received from a first server that distributes video data acquired from a video source via a network, or whether video data is to be received from a second server that distributes video data after converting and saving the video data acquired from the video source into a video file, based on whether a predetermined condition is satisfied; a switching step of issuing a video data distribution request to the first server or the second server based on the determination result of the determining step; on the computer, The determination step further acquires the total time of the video data and the current playback time of the video data, and if the total time and the current playback time match, determines to receive the video data from the first server, and if the total time and the current playback time do not match, determines to receive the video data from the second server.

Citation Information

Patent Citations

  • Recording medium and device recording program for providing low-delay live broadcast content

    JP2018507662A

  • Video communication server, system, method, and program

    JP2020048052A

  • Receiving device, server system, and receiving program

    JP2020150387A

  • Apparatus and computer-readable recording medium having program recorded therein for providing low-latency real-time broadcast content

    US20170324797A1