A method and apparatus for seamless playback between downloaded and streamed data using a local network server.

CN119732064BActive Publication Date: 2026-09-01SK TELECOM CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202380060520.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2022-06-27
Filing Date
2023-06-26
Publication Date
2026-09-01
Estimated Expiration
2043-06-26

AI Technical Summary

Technical Problem

然而,这种方法难以应用于低规格终端,因为它需要在用户界面中同时使用多个播放器

Benefits of technology

[0017]According to some embodiments of this disclosure, a portion of each item in the playlist is pre-downloaded and quickly served upon request, thereby minimizing TCP session connection latency and buffering latency, among the latency factors that occur during content playback.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119732064B_ABST
    Figure CN119732064B_ABST
Patent Text Reader

Abstract

A method and apparatus for seamless playback between downloaded and streamed data using a local network server are disclosed. One aspect of this disclosure provides an operational method for a terminal for seamless content playback, the method comprising the steps of: a download agent downloading an initial segment and storing the downloaded initial segment in a memory, the initial segment being at least some of media segments configured for each of a plurality of content segments; a local network server transmitting the initial segment of a first content segment from the media segments stored in the memory to a player; and the local network server requesting the download agent to download the remaining segments of the first content.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates, in some embodiments, to a method and apparatus for seamless playback between downloaded data and streaming data using a local network server. Background Technology

[0002] The statements in this section are provided only as background information in relation to this disclosure and do not necessarily constitute prior art.

[0003] As media viewing behavior gradually shifts from live content to on-demand content, various over-the-top (OTT) services are trying to stand out.

[0004] Among them, file-based live streaming services are typically offered in short formats, and their user experience (UX) supports swiping up and down and / or left and right to move between different content.

[0005] The difference between short-form platforms and traditional OTT content lies not only in length but also in the way the content is presented. Traditional OTT relies on the platform's programming, which involves watching pre-set content in a playback order. This is similar to the user experience of watching live streaming services in the past.

[0006] The biggest problem with providing these services on top of streaming is the latency associated with switching between content. HTTP-based streaming services suffer from earlier packets in the packet queue on the network not being processed, and subsequent packets in the same queue being blocked by the delayed head of the queue (HOL). In addition, players may need their buffers to hold some content that exceeds a certain size to overcome network jitter before enabling playback, and these factors contribute to the initial latency in the playback of streaming content.

[0007] Figure 1 This is a graph illustrating latency factors during content playback using streaming. (See reference...) Figure 1 The latency during streaming content playback can have three components: TCP session connection latency Δ1, buffering latency to overcome network jitter Δ2, and playback latency Δ3 required to decode and render the received content. Under normal circumstances, these three latency components are repeatedly introduced each time content is switched. Therefore, frequent jumps between content cause these initial latency components to occur more frequently, leading to customer dissatisfaction.

[0008] A simple solution to this problem is to prepare the content to be transferred for playback in multiple players, and then switch players as the content is transferred. However, this method is difficult to apply to low-spec terminals because it requires using multiple players simultaneously in the user interface. Furthermore, when the prepared content segment is not the one selected by the user, latency is not reduced; instead, it consumes additional terminal resources to prepare the desired content for playback. Summary of the Invention

[0009] Technical issues

[0010] This disclosure seeks, in some embodiments, a method and apparatus for minimizing TCP session connection latency and buffering latency, among latency factors occurring during content playback (or switching).

[0011] The challenges sought to be addressed in this disclosure are not limited to those mentioned above, and other challenges not mentioned will be apparent to those skilled in the art as described below.

[0012] Technical means

[0013] At least one aspect of this disclosure provides a method for operating a terminal for seamless playback of content, the method comprising: downloading an initial segment of each of a plurality of contents by a download agent and storing it in a memory, wherein the initial segment of each content includes at least some of a plurality of media segments constituting each content; transmitting the initial segment of a first content among the media segments stored in the memory to a player by a local network server; and requesting the download agent to download the remaining segments of the first content by the local network server.

[0014] Another aspect of this disclosure provides a terminal comprising: a download agent configured to download an initial fragment of each of a plurality of contents and store it in a memory, wherein the initial fragment of each content includes at least a portion of a plurality of media segments constituting each content; and a local network server configured to transmit the initial fragment of a first content among the media segments stored in the memory to a player and request the download agent to download the remaining fragments of the first content.

[0015] Another aspect of this disclosure provides a computer-readable recording medium that stores instructions that, when executed by a computer, cause the computer to perform the methods described above.

[0016] Technical effect

[0017] According to some embodiments of this disclosure, a portion of each item in the playlist is pre-downloaded and quickly served upon request, thereby minimizing TCP session connection latency and buffering latency, among the latency factors that occur during content playback.

[0018] According to some embodiments of this disclosure, while utilizing a local network server, content is provided to a player through an appropriate combination of streaming and downloading, thereby allowing content obtained by both methods to be played continuously without modification to the player.

[0019] According to some embodiments of this disclosure, for each piece of content, both playback from the beginning and subsequent viewing playback can be supported.

[0020] According to some embodiments of this disclosure, a local network server can be used instead of the player receiving streamed content for playback, thereby minimizing the interaction between the player and the service infrastructure and simplifying the implementation of the player.

[0021] According to some embodiments of this disclosure, a download agent can be used to manage the list of content required for playback.

[0022] The effects of this disclosure are not limited to those described above, and other effects not mentioned below will be apparent to those skilled in the art from the following description. Attached Figure Description

[0023] Figure 1 This is a graph illustrating the initial latency factor in playing content using streaming.

[0024] Figure 2 This is a schematic block diagram of a streaming service providing system according to at least one embodiment of the present disclosure.

[0025] Figure 3 This is a schematic block diagram of a client terminal according to at least one embodiment of the present disclosure.

[0026] Figure 4 This is a diagram illustrating content switching in a streaming service according to at least one embodiment of the present disclosure.

[0027] Figure 5 This is a flowchart of a streaming service process according to at least one embodiment of the present disclosure.

[0028] Figure 6 This is a flowchart of the operation of a client terminal for seamless playback of selected content according to at least one embodiment of the present disclosure.

[0029] Figure 7This is a flowchart of the operation of a client terminal for seamless playback of changed content according to at least one embodiment of this disclosure. Detailed Implementation

[0030] In the following description, some embodiments of the present disclosure will be described in detail with reference to the accompanying illustrative drawings. In the following description, the same reference numerals preferably denote the same elements, although these elements are shown in different drawings. Furthermore, in the following description of some embodiments, detailed descriptions of related known components and functions will be omitted for clarity and brevity when they are considered to obscure the subject matter of the present disclosure.

[0031] Furthermore, various ordinal numbers or alpha codes such as first, second, i), ii), a), b), etc., used as prefixes are merely for distinguishing one component from another, and do not imply or teach the nature, order, or sequence of the components. Throughout the specification, when a component "comprises" or "includes" a component, that component means that it also includes other components, not excludes other components, unless specifically stated otherwise.

[0032] The following description of the present disclosure, presented in conjunction with the accompanying drawings, is intended to describe exemplary embodiments of the present disclosure and is not intended to represent the only embodiments in which the technical concepts of the present disclosure can be practiced.

[0033] Figure 2 This is a schematic block diagram of a streaming service providing system according to at least one embodiment of the present disclosure.

[0034] like Figure 2 As shown, the streaming service providing system 20 may include all or some of the following: client terminal 200, content server 220, front-end platform 240, and application programming interface gateway (API gateway) 260. (Not necessarily) Figure 2 All the blocks shown are essential components, and in other implementations, some blocks included in the streaming service providing system 20 may be added, modified, or deleted.

[0035] Client terminal 200 is a device that can receive and play content from content server 220 using wireless or wired communication methods. Here, the content can be, but is not limited to, video-on-demand (VoD) media content.

[0036] Client terminal 200 can receive and play content from content server 220 via streaming. To provide efficient streaming services, content server 220 can be implemented as a content delivery network (CDN) including origin server and one or more cache servers.

[0037] The front-end platform 240 can perform user authentication for streaming services and can provide the client terminal 200 with a playlist containing one or more content items and streaming addresses such as Uniform Resource Locators (URLs).

[0038] At this time, the front-end platform 240 can receive user authentication requests, playlist requests, and / or streaming address requests from the client terminal 200 via the API gateway 260.

[0039] API gateway 260 can be implemented as a server aggregating requests from client terminal 200. API gateway 260 can forward requests received from client terminal 200 to front-end platform 240, and can forward responses received from front-end platform 240 to client terminal 200. According to implementations, API gateway 260 can also process received requests or responses and forward them to front-end platform 240 or client terminal 200.

[0040] Figure 3 This is a schematic block diagram of a client terminal according to at least one embodiment of the present disclosure.

[0041] like Figure 3 As shown, client terminal 200 may include all or some of the following: download agent 300, storage 320, local network server 340, player 360, and user interface 380. (Not necessarily) Figure 3 All the blocks shown are essential components, and in other implementations, some blocks included in the client terminal 200 may be added, modified, or deleted.

[0042] Download agent 300 can manage the download of content. Download agent 300 can download media segments of content from content server 220 and store them in storage 320. Media segments can include various media formats such as, but not limited to, MP4, FMP4, or Transport Stream (TS).

[0043] Before selecting content to play, download agent 300 can pre-download initial data for each of multiple pieces of content from the user's playlist from content server 220 and store the pre-downloaded initial data in storage 320. Multiple pieces of content can refer to multiple different videos or multiple different segments within a single video. For example, multiple pieces of content can be multiple highlight segments specified for a single video. Initial data can include media segments of the content and / or at least some of the content attributes. Content attributes can contain video / audio configuration information (such as PAT or PMT) and a manifest file containing indexes of the segments.

[0044] Subsequently, when content is selected to be played on client terminal 200, download agent 300 can download the remaining portion of the content to complete the playback of the selected content, and can notify local network server 340 of the download progress.

[0045] Furthermore, the download agent 300 can manage the data stored in the memory 320. For example, the download agent 300 can remove unwanted data from the data stored in the memory 320 based on preset conditions. In embodiments of this disclosure, content is stored in the memory 320 and is not directly streamed and played by the player 360; therefore, the download agent 300 can perform appropriate management of unused segments to ensure effective use of the memory 320.

[0046] The memory 320 can temporarily or semi-permanently store media segments and / or content attributes downloaded by the download agent 300.

[0047] The local network server 340 can transmit media segments and / or content attributes stored in the memory 320 to the player 360 to support continuous streaming on the player 360. The player 360 can be used to play content containing media segments obtained from the local network server 340.

[0048] Player360 can include a buffer and can only start playing content once a certain amount of content has been filled in the buffer to overcome network jitter.

[0049] When content is selected to be played on the client terminal 200, the local network server 340 can transmit the initial data pre-stored in the memory 320 to the player 360 to quickly meet the initial playback conditions on the player 360.

[0050] Typically, communication between client terminal 200 and content server 220 occurs over a public network, which may make it difficult to ensure reliable high-speed transmission. However, communication via the local network server 340 according to this disclosure occurs within client terminal 200, which can sufficiently ensure stable high-speed transmission and avoid head-of-line (HOL) congestion problems. Therefore, local network server 340 can quickly fill the buffer of player 360 with media segments pre-stored in memory 320, thereby significantly reducing the buffering time required.

[0051] According to at least one embodiment of this disclosure, by using a local network server 340, the interaction between the player 360 and service infrastructure such as the content server 220 can be minimized. Furthermore, the player 360 can be easily implemented by utilizing any known player, as it only needs to request consecutive segments from the local network server 340.

[0052] The user interface 380 can be a physical or virtual medium implemented for temporary or permanent access to enable interaction between the user and the client terminal 200.

[0053] The user interface 380 may include at least one input device that can be manipulated by a user and at least one output device that displays the results of the user's use. The user interface 380 may include at least one object designed to interact with the user, such as a display screen, keyboard, mouse, text, or icon.

[0054] Figure 4 This is a diagram illustrating content switching in a streaming service according to at least one embodiment of the present disclosure.

[0055] Reference Figure 4 According to at least one embodiment of this disclosure, a client terminal 200 can provide users with multiple channels and content. Each channel may consist of specific types of content such as entertainment, drama, movies, and / or documentaries. Figure 4 In the example, "Content #1" of the "Entertainment Channel" is the content that the client terminal 200 is currently playing or planning to play, and "Content #2" and "Content #3" of the "Entertainment Channel", as well as "Drama Channel" and "Movie Channel", are adjacent contents that can be navigated from the content being watched.

[0056] The client terminal 200 can receive requests from the user via the user interface 380 to switch to content in different channels or to different content within the same channel. The user can request the client terminal 200 to switch content via preset gesture input. Here, gesture input can include at least one of swiping, flicking, panning, tapping, double-tapping, dragging, and pinching and opening.

[0057] For example, a user can request to switch to a different channel via a swipe in a first direction, and can request to switch to different content within the same channel via a swipe in a second direction. Here, the first direction can be, but is not limited to, a vertical direction, i.e., up or down, and the second direction can be, but is not limited to, a horizontal direction, i.e., left or right. For example, according to other embodiments, a user can request to switch content by tapping or double-tapping at least one side of the screen displayed by the user interface 380.

[0058] Client terminal 200 can determine which content to switch to based on gesture input detected via user interface 380 and a predefined sequence of channels and / or content.

[0059] In at least one implementation, upon detecting an upward or downward swiping motion, the client terminal 200 can determine the initial content in the adjacent channel corresponding to the upward or downward swiping motion as the content to switch to. Figure 4In the example, upon detecting an upward swipe, client terminal 200 can determine that the initial content in the "Movie Channel" is the content to switch to. Conversely, upon detecting a downward swipe, client terminal 200 can determine that the initial content in the "Drama Channel" is the content to switch to. Here, the initial content can be, but is not limited to, content defined by the first order of playback of related content or the last content played by the user in the related channel.

[0060] On the other hand, upon detecting a leftward or rightward swipe motion, the client terminal 200 can determine the content to be switched to from the previous or next playback sequence of the currently viewed channel. Figure 4 In the example, when a leftward swipe is detected, the client terminal 200 can determine that "Content #2" of the "Entertainment Channel" is the content to switch to. On the other hand, after switching to "Content #2" of the "Entertainment Channel" and detecting a rightward swipe, the client terminal 200 can determine that "Content #1" of the "Entertainment Channel" is the content to switch to.

[0061] As used in this disclosure, switching (or changing) content can be used as a term encompassing both switching to content on a different channel and switching to different content within the same channel.

[0062] Figure 5 This is a flowchart of a streaming service process according to at least one embodiment of the present disclosure.

[0063] During initial service startup, client terminal 200 can call the authentication API to perform user authentication (S500). Here, the user authentication request sent by client terminal 200 may include user account information.

[0064] Client terminal 200 can call the Electronic Program Guide (EPG) API to obtain a playlist from front-end platform 240 (S510). Here, the playlist may include a list of content curated through personalized recommendations for client terminal 200. The playlist may also include the number of media segments to be pre-downloaded for each piece of content and their time values. Here, the time value may be a time value corresponding to the user's last viewing point to support subsequent viewing characteristics of the relevant content.

[0065] Client terminal 200 can call the URL request API to obtain the streaming URL of each item in the playlist from front-end platform 240 (S520).

[0066] Using the streaming URL for each content, client terminal 200 can download initial data for a specific content from content server 220 (S530). Here, the initial data for a specific content may include at least some of the media segments of each content. For example, client terminal 200 may pre-download a preset number of segments, counted from the start point of playback for each content, as initial data for each content.

[0067] When selecting content to play (S540), the client terminal 200 can quickly start playing using the initial data of the selected content (S550).

[0068] In order to fully play the selected content, the client terminal 200 can receive and play the remaining data of the corresponding content from the content server 220 (S560).

[0069] When a request to change the playback content is detected (S570), the client terminal 200 can quickly start playback using the initial data of the content to be changed (S580).

[0070] In order to fully play the changed content, the client terminal 200 can receive and play the remaining data of the corresponding content from the content server 220 (S590).

[0071] Meanwhile, in step S580, the client terminal 200 can receive content change requests manually from the user, or it can automatically generate content change requests when the playback of previous content has finished or is about to finish. When a content change request is automatically generated, multiple pieces of content can be played one after another in a predefined order.

[0072] Figure 6 This is a flowchart of the operation of a client terminal for seamless playback of selected content according to at least one embodiment of the present disclosure.

[0073] In the following text, reference will be made to Figure 6 Describe client terminal 200 in Figure 5 The specific operations in steps S530 to S560. Figure 6 The example described is playing the i-th item out of M items in a playlist (i is a natural number less than or equal to M, where M is a natural number).

[0074] Download agent 300 can use the streaming URL of each content to download at least some of the media segments (hereinafter referred to as initial segments) that make up each content from content server 220 and store them in memory 320 (S600). For example, download agent 300 can download a preset number of media segments, counted from a preset playback start point of each of M content, as initial segments and store them in memory 320. In this case, the number of initial segments for each content downloaded by download agent 300 can satisfy the condition shown in Equation 1.

[0075] [Equation 1]

[0076] N i ≥N min ,i∈C

[0077] Here, C is the list of contents included in the playlist, and N... i This represents the initial number of segments pre-downloaded for the i-th content in C, and N... min It is the minimum number of segments required to buffer in the player at the start of playback to overcome network jitter.

[0078] at the same time, Figure 6 An example is shown where the initial segment includes a preset number of media segments counted from the first media segment of each content, but this disclosure is not limited to this configuration. For example, if multiple content items include content that the user has already watched, the initial segment may include a preset number of media segments counted from the media segment corresponding to the last viewing point of that content.

[0079] When the i-th item in the playlist is selected as the item to be played, player 360 can receive a request to play the i-th item (S610). For example, but not limited to, player 360 can receive a content playback request including the streaming URL of the i-th item from user interface 380. In another example, download agent 300 can send the streaming URL of the i-th item to player 360 when it receives a content playback request.

[0080] Player 360 may request the initial segment of the i-th content from local network server 340 (S620). Here, player 360 may request the initial segment of the i-th content from local network server 340 using, but not limited to, the streaming URL of the i-th content. In other embodiments, player 360 may request the initial segment of the i-th content from local network server 340 using separate identification information that identifies each piece of content and / or each segment of content within client terminal 200.

[0081] The local network server 340 can transmit the initial segment of the i-th content in the media segment stored in the memory 320 to the player 360 (S630). In step S630, the transmission of the initial segment occurs internally within the client terminal 200, which does not cause head-of-line (HOL) congestion and allows for arbitrary high-speed transmission. This allows the buffer within the player 360 to be filled quickly.

[0082] The local network server 340 can request the download agent 300 to download the remaining segments of the i-th content to complete the playback of the i-th content (S640). Therefore, the download agent 300 can continuously download the remaining segments of the i-th content and store them in the memory 320 (S650), and the download agent 300 can send a storage notification to the local network server 340, indicating that the required segments have been saved in the memory 320 (S660).

[0083] Meanwhile, once the initial segment of the i-th content is filled in the buffer in the player 360, the initial segment of the i-th content can be played, and the player 360 can continuously request the remaining segments of the i-th content from the local network server 340 (S670).

[0084] When the local network server 340 determines that the segments requested in step S640 are stored in the memory 320, the local network server 340 can continuously transmit them to the player 360 (S680). The local network server 340 can determine whether the requested remaining segments have already been stored in the memory 320 by receiving storage notifications from the download agent 300.

[0085] Figure 7 This is a flowchart of the operation of a client terminal for seamless playback of changed content according to at least one embodiment of this disclosure.

[0086] In the following text, reference will be made to Figure 7 Describe client terminal 200 in Figure 5 The specific operations in steps S570 to S590. Figure 7 The example content transition from the i-th content to the j-th content is shown, where the segment corresponding to the last viewing point of the i-th content can be represented as S. i (I).

[0087] Once the j-th content is determined to be the content to be changed, the player 360 and the download agent 300 can receive a content change request for the j-th content (S700). For example, the player 360 and the download agent 300 can receive a content change request including the streaming URL of the j-th content from the user interface 380, but this disclosure is not limited thereto. In another example, the download agent 300 can send the streaming URL of the j-th content to the player 360 when it receives a content change request.

[0088] Player 360 can remove all media segments of the i-th content in the buffer (S710).

[0089] Download agent 300 can remove unwanted media segments from the media segments of the i-th content stored in memory 320 (S714). Here, unwanted media segments may refer to media segments saved for the initial segment used to start playing the i-th content and for subsequent segments used to play the i-th content from the last viewing point. Furthermore, subsequent viewing segments may refer to a preset number of segments counted from the segment corresponding to the last viewing point of the i-th content.

[0090] exist Figure 7 In the example, the initial segment used to play the i-th content from the beginning is S. i (1) to S i (N i ), and the subsequent viewing segments used for continuous playback are S i (I) to S i (I+N i -1). Downloading proxy 300 can remove the remaining segments S besides the ones mentioned above. i (N i ) to S i (I-1).

[0091] Player 360 can request the initial fragment of the j-th content from local network server 340 (S720). In response, local network server 340 can transmit the initial fragment of the j-th content stored in memory 320 to player 360 (S730) to quickly fill the buffer in player 360.

[0092] The local network server 340 may request the download agent 300 to download the remaining segments of the j-th content to complete the playback of the j-th content (S740). In response, the download agent 300 may continuously download the remaining segments of the j-th content and store them in the memory 320 (S750), and the download agent 300 may send a storage notification to the local network server 340 indicating that the requested segments have been saved in the memory 320 (S760).

[0093] Once the initial segment of the j-th content is filled in the buffer in the player 360, the initial segment of the j-th content can be played, and at the same time, the player 360 can continuously request the remaining segments of the j-th content from the local network server 340 (S770).

[0094] When the local network server 340 determines that the segments requested in step S740 are stored in the memory 320, the local network server 340 can continuously transmit them to the player 360 (S780). The local network server 340 can determine whether the remaining requested segments have been stored in the memory 320 by receiving storage notifications from the download agent 300.

[0095] Download agent 300 can remove unused segments from the segments stored in memory 320 according to a preset strategy (S790). In one example, segments can be removed based on the state of player 360 to meet the usage settings. In another example, segments that have been stored in memory 320 for a certain amount of time can be removed. For example, when S... j (N c When transferring a target segment to player 360 at an unused segment management point, download agent 300 can remove the initial segment S from segments corresponding to an earlier time point than the target segment. j (1) to S j (N j The remaining fragment S, excluding ) j (N j +1) to S j (N c -1).

[0096] As described above, embodiments of this disclosure can pre-download a portion of each item in the playlist and quickly provide that portion upon request, thereby eliminating the time required to obtain the streaming URL of the content after a content playback request or change request. Furthermore, unlike conventional methods that require several seconds to reach available bandwidth due to the slow start of the TCP transmission window size, embodiments of this disclosure can arbitrarily increase the TCP transmission window size using a local network server or utilize multiplexed transmissions to reduce initial player buffering time.

[0097] In other words, as mentioned above Figure 1The conventional method described herein incurs all of the following during content playback (or switching): TCP session connection delay Δ1, buffering delay Δ2, and playback delay Δ3. At least one embodiment of this disclosure does not incur TCP session connection delay Δ1 and shortens the buffering delay Δ2 by adjusting the size of the TCP transmission window and / or utilizing multiplexed transmission. For example, when using TCP transmission configured with 4x multiplexing, the initial playback delay will be (Δ2 / 4) + Δ3.

[0098] The apparatus or method according to this disclosure may have corresponding hardware and software components arranged to be implemented as hardware or software or a combination thereof. Furthermore, each component may be functionally implemented by software, and a microprocessor may, at implementation time, perform functions for each component via software.

[0099] Various illustrative embodiments of the systems and methods described herein can be implemented using digital electronic circuits, integrated circuits, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include those implemented in one or more computer programs executable on a programmable system. The programmable system includes at least one programmable processor coupled to receive and transmit data and instructions from a storage system, at least one input device, and at least one output device, wherein the programmable processor may be a dedicated processor or a general-purpose processor. The computer program (also referred to as a program, software, software application, or code) contains the instructions of the programmable processor and is stored in a computer-readable recording medium.

[0100] Computer-readable recording media include any type of recording device on which data that can be recorded and read by a computer system is stored. Examples of computer-readable recording media include non-volatile or non-transitory media such as ROM, CD-ROM, magnetic tape, floppy disk, memory card, hard disk, optical / disk, storage device, etc. Computer-readable recording media may also include transient media such as data transmission media. Furthermore, computer-readable recording media can be distributed across computer systems connected via a network, where computer-readable code can be stored and executed in a distributed manner.

[0101] Although the steps in the various flowcharts / timing diagrams are described in this specification as being performed sequentially, they merely exemplify the technical ideas of some embodiments of this disclosure. Therefore, those skilled in the art related to the embodiments can perform these steps by changing the order described in the flowcharts / timing diagrams or by executing two or more steps in parallel without departing from the spirit and scope of the embodiments; thus, the steps in the flowcharts / timing diagrams are not limited to the temporal order shown.

[0102] Although exemplary embodiments of this disclosure have been described for illustrative purposes, those skilled in the art will understand that various modifications, additions, and substitutions can be made without departing from the concept and scope of the claimed invention. Therefore, exemplary embodiments of this disclosure have been described for the sake of brevity and clarity. The scope of the technical concept of the embodiments of this disclosure is not limited by the illustrations. Therefore, one of those skilled in the art will understand that the scope of the claimed invention is not limited to the embodiments explicitly described above, but rather to the claims and their equivalents.

[0103] (See attached image labels)

[0104] 20: Streaming service provider system

[0105] 200: Client Terminal

[0106] 220: Content Server

[0107] 240: Front-end platform

[0108] 260: API Gateway

[0109] Cross-references to related applications

[0110] This application claims priority to Korean Patent Application No. 10-2022-0078530, filed on June 27, 2022, the disclosure of which is incorporated herein by reference in its entirety.

Claims

1. A method for operating a terminal for seamless content playback, the method comprising the following steps: The terminal's download agent downloads an initial fragment of each of a plurality of contents and stores the initial fragment locally in the terminal's memory, wherein the initial fragment of each content includes at least some of the media fragments that make up each content; The local network server of the terminal transmits the initial fragment of the first content in the media segment stored in the memory to the player of the terminal. The local network server requests the download proxy to download the remaining fragments of the first content; The download agent of the terminal downloads the remaining fragments in response to a request to download the remaining fragments of the first content and stores the remaining fragments locally in the memory of the terminal; The download agent sends a storage notification to the local network server indicating that the remaining fragments of the first content have been locally stored in the terminal's memory; and Upon receiving the storage notification from the download agent, the local network server continuously transmits the remaining fragments of the first content stored in the memory to the player.

2. The method according to claim 1, further comprising: Before transmitting the initial fragment: The player receives a content playback request that includes the streaming URL of the first content; as well as The player requests the initial segment of the first content from the local network server.

3. The method according to claim 1, further comprising the following steps: In response to a content change request for a second content different from the first content, the download agent removes unwanted media segments from the media segments of the first content stored in the memory.

4. The method according to claim 3, wherein, The unwanted media segments include: The media segments of the first content stored in the memory, excluding the media segments used to play the first content from the beginning and the media segments used to play the first content continuously from the last viewing point.

5. The method according to claim 1, wherein, The initial segments for each content have a number greater than the minimum number of segments required to be buffered in the player at the start of playback to overcome network jitter.

6. The method according to claim 1, wherein, The initial fragment for each piece of content includes: A preset number of media segments, starting from the first media segment of each of the contents.

7. The method according to claim 1, wherein, The initial fragment for each piece of content includes: A preset number of media segments are counted, starting from the media segment corresponding to the last viewing point of each of the aforementioned contents.

8. The method according to claim 1, wherein, The multiple contents include: Multiple different videos, or multiple different segments within a single video.

9. A non-transitory computer-readable recording medium storing instructions that, when executed by a computer, cause the computer to perform the method according to claim 1.

10. A terminal, the terminal comprising: A download agent configured to download an initial fragment of each of a plurality of contents and store the initial fragment locally in memory, wherein the initial fragment of each content includes at least some of the media fragments that make up each content; and A local network server, configured to transmit an initial segment of first content from the media segment stored in the memory to the player, and to request the download proxy to download the remaining segments of the first content. The download agent is further configured to download the remaining fragments of the first content in response to a request to download them, and to locally store the remaining fragments in the memory, and to send a storage notification to the local network server indicating that the remaining fragments of the first content have been locally stored in the terminal's memory; and The local network server is further configured to continuously transmit the remaining fragments of the first content stored in the memory to the player upon receiving the storage notification from the download agent.

Citation Information

Patent Citations

  • Cosmetic composition with improved formulation stability

    KR1020220078530A

  • Playing method of continuous moving picture in mobile terminal

    KR101382421B1

  • KR20210028805A