US20180109462A1 - Method for optimizing streaming media transmission and cache apparatus using the same - Google Patents
Method for optimizing streaming media transmission and cache apparatus using the same Download PDFInfo
- Publication number
- US20180109462A1 US20180109462A1 US15/293,287 US201615293287A US2018109462A1 US 20180109462 A1 US20180109462 A1 US 20180109462A1 US 201615293287 A US201615293287 A US 201615293287A US 2018109462 A1 US2018109462 A1 US 2018109462A1
- Authority
- US
- United States
- Prior art keywords
- video data
- resolution
- data block
- cache apparatus
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000005540 biological transmission Effects 0.000 title claims abstract description 16
- 230000008569 process Effects 0.000 claims description 55
- 230000004044 response Effects 0.000 claims description 36
- 238000004886 process control Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/613—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2491—Mapping quality of service [QoS] requirements between different networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/508—Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
- H04L41/509—Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to media content delivery, e.g. audio, video or TV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H04L67/2847—
-
- H04L67/322—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/61—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
Definitions
- the subject matter herein generally relates to data transmission of streaming media.
- Digital streaming is available in digital communication networks, for example, the Internet.
- Streaming media players receive streaming content and render the same on the display of a client.
- the streaming media players monitor client conditions and adjust the streaming content accordingly.
- the streaming media players determine how to adjust the streaming content appropriate for current conditions, and request higher or lower resolution accordingly of the streaming media.
- the streaming media players run in the client and fetch the streaming content from a content source via a cache apparatus.
- the cache apparatus pre-fetches the streaming content from the content source and provides the pre-fetched streaming content to the client, in response to the requests of the streaming media players. If both the client's processor and network bandwidth between the client and the cache apparatus are operating below capacity, the streaming media players may request a higher resolution of stream which is not supported by weak network status between the cache apparatus and the content source. This leads streaming video rendered in the client to be switched back and forth between the high resolution and low resolution, and results in a non-fluent viewing experience.
- FIG. 1 illustrates a schematic diagram of one embodiment of an operating environment of a cache apparatus in accordance with the present disclosure
- FIG. 2 illustrates a block diagram of one embodiment of functional modules of a cache apparatus in accordance with the present disclosure
- FIG. 3 illustrates a flowchart of one embodiment of a method for optimizing streaming media transmission
- FIG. 4 illustrates a flowchart of another embodiment of a method for optimizing streaming media transmission.
- references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean “at least one.”
- module refers to logic embodied in computing or firmware, or to a collection of software instructions, written in a programming language, such as, Java, C, or assembly.
- One or more software instructions in the modules may be embedded in firmware, such as in an erasable programmable read only memory (EPROM).
- EPROM erasable programmable read only memory
- the modules described herein may be implemented as either software and/or computing modules and may be stored in any type of non-transitory computer-readable medium or other storage device. Some non-limiting examples of non-transitory computer-readable media include CDs, DVDs, BLU-RAY, flash memory, and hard disk drives.
- the term “comprising”, when utilized, means “including, but not necessarily limited to”; it specifically indicates open-ended inclusion or membership in a so-described combination, group, series and the like.
- FIG. 1 illustrates one embodiment of an operating environment of one embodiment of a cache apparatus 2 .
- the cache apparatus 2 connects with clients (e.g., clients 4 A- 4 D) via a first network such as, for example, Local Area Network.
- the cache apparatus 2 connects with content source 6 via a second network such as, for example, Wide Area Network, Internet.
- Embodiments of the clients 4 A - 4 D may be include laptop computers, smart mobile phones, tablet personal computers, set top box, or the like. Based on adaptive bit-rate streaming technology, the clients 4 A- 4 D may automatically adjust resolution of one or more streams appropriate for current network status.
- a client e.g., client 4 A
- a streaming media file e.g., “sample”
- the content source 6 feeds back a list (e.g., sample.m3u8) to the client 4 A, wherein the “sample.m3u8” lists types of resolutions of the “sample” file which can be provided by the source content 6 .
- the client 4 A selects a type of resolution of the “sample” file (e.g., a first-resolution) according to settings or network status, and begins to request first-resolution video data blocks of “sample” file from the content source 6 via the cache apparatus 2 .
- a type of resolution of the “sample” file e.g., a first-resolution
- the “sample” file includes a plurality of video data blocks (i.e., video segments), and each video data block includes several resolutions, for example, a first-resolution, a second-resolution, and more.
- the second-resolution has more data than the first-resolution.
- a first-resolution 1-th video data block is represented with A 1
- a first-resolution 2-th video data block is represented with A 2
- a first-resolution 3-th video data block is represented with A 3
- a second-resolution 1-th video data block is represented with B 1
- a second-resolution 2-th video data block is represented with B 2
- a second-resolution 3-th video data block is represented with B 3 , and so on.
- the client 4 A fetches desired video data blocks from the content source 6 via the cache apparatus 2 .
- FIG. 2 illustrates one embodiment of functional modules of the cache apparatus 2 .
- the cache apparatus 2 includes a cache control system 10 , a non-transitory storage system 20 , at least one processor 30 , and a communication unit 40 .
- the cache control system 10 includes a receiving module 100 , a response module 200 , and a estimation module 300 .
- the modules 100 ⁇ 300 are configured to be executed by one or more processors (for example the processor 30 ) to achieve functionality.
- the non-transitory storage system 20 can store code and data as to the cache control system 10 and store video data blocks obtained from the content source 6 .
- the receiving module 100 receives, from the client 4 A, one or more requests for one or more first-resolution video data blocks (e.g., a 1-th request for the first-resolution 1-th video data block A 1 ).
- the response module 200 generates a first pre-fetch process in response to the 1-th request, wherein the first pre-fetch process controls the cache apparatus 2 to pre-fetch the first-resolution 1-th video data block A 1 and subsequent video data blocks (e.g., A 2 , A 3 , A 4 , . . . ) from the content source 6 .
- the response module 200 after receiving the 1-th request for A 1 from the client 4 A, the response module 200 not only pre-fetches the A 1 , but also pre-fetches the subsequent video data blocks (e.g., A 2 , A 3 , A 4 , . . . ) if network conditions between the cache apparatus 2 and the content source 6 permits.
- the response module 200 provides A l to the client 4 A, and provides A 2 to the client 4 A when the receiving module 100 receives a 2-th request for A 2 , provides A 3 to the client 4 A when the receiving module 100 receives a 3-th request for A 3 , and so on.
- the response module 200 prioritizes providing the client 4 A with the A 2 pre-fetched and stored in the cache apparatus 2 .
- the response module 200 determines whether the A 1 is stored in the cache apparatus 2 . If it is determined that the A 1 is stored in the cache apparatus 2 , the response module 200 directly provides the client 4 A with the A 1 stored in the cache apparatus 2 . If it is determined that the A 1 is not stored in the cache apparatus 2 , the response module 200 generates the first pre-fetch process to pre-fetch the A 1 from the content source 6 and then provides the A 1 to the client 4 A.
- the client 4 A may request a higher resolution of streaming media. For example, from a n-th video data block (including A n , B n , . . . ) of the “sample ” file, the client 4 A begins to request a second-resolution n-th video data block B n and subsequent video data blocks (e.g., B n+1 , B n+2 , B n+3 , . . . ).
- n-th video data block including A n , B n , . . .
- subsequent video data blocks e.g., B n+1 , B n+2 , B n+3 , . . .
- the receiving module 100 receives, from the client 4 A, an n-th request for the second-resolution n-th video data block B.
- the response module 200 determines whether pre-fetching the B n from the content source 6 is supported according to quality of service (QoS) value of the second network between the cache apparatus 2 and the content source 6 .
- QoS quality of service
- the QoS refers to available bandwidth of the second network between the cache apparatus 2 and the content source 6 , to the system operating status of the cache apparatus 2 and of the content source 6 , and to other factors.
- the response module 200 limits data transmission speed from the cache apparatus 2 to the client 4 A and provides a first-resolution n-th video data block A n to the client 4 A.
- the limit on data transmission speed from the cache apparatus 2 to the client 4 A is able to guide the client 4 A to reduce expectation to request first-resolution subsequent video data blocks (e.g., A n+1 , A n+2 , . . . ).
- the response module 200 limits on data transmission speed by port settings, bandwidth allocation, delay-feedback, or the like.
- the delay-feedback means reducing speed of the cache apparatus feeding back video data blocks to the client 4 A (i.e., increasing interval time between which the cache apparatus feeds back video data blocks to the client 4 A).
- the response module 200 switches from the first pre-fetch process to a second pre-fetch process.
- the second pre-fetch process controls the cache apparatus 2 to pre-fetch the B n and subsequent video data blocks (e.g., B n+1 , B n+2 , B n+3 , . . . ) of the B n from the content source 6 .
- the response module 200 can provide the client 4 A with the B n which was pre-fetched by the second pre-fetch process.
- the receiving module 100 receives the n-th request for the B n and the response module 200 determines whether the B n is stored in the cache apparatus 2 . If it is determined that the B n is stored in the cache apparatus 2 , the response module 200 directly provides the client 4 A with the B.
- the cache control system also includes the estimation module 300 .
- the estimation module 300 is configured to determine QoS of the first network between the cache apparatus 2 and the client 4 A and estimate a probability of the cache apparatus 2 receiving a m-th request from the client 4 A for a second-resolution m-th video data block B m . Such estimation of probability is based on a result of determination, the probability increasing with improvement of the network status of the first network.
- the probability so estimated is compared with a predefined threshold value. If the probability is larger than the predefined threshold value, a determination can be made that pre-fetching a A m and the B m from the content source 6 is supported, and the first pre-fetch process and the second pre-fetch process are operated in parallel.
- the first pre-fetch process pre-fetches the A m and subsequent video data blocks (e.g., A m+1 , A m+2 , A m+3 , . . . ), and the second pre-fetch process pre-fetches the B m and subsequent video data blocks (e.g., B m+1 , B m+2 , B m+3 , . . . ) of the B m .
- the response module 200 provides the client 4 A with the B m or the subsequent video data blocks (e.g., B m+1 , B m+2 , B m+3 , . . . ), and terminates the first pre-fetch process.
- the second pre-fetch process is continued.
- the receiving module 100 still receives the m-th request for the A m , the response module still provides the A m to the client 4 A, and both the first pre-fetch process and the second pre-fetch process are still operated in parallel. Then, if the receiving module 100 receives a subsequent request of the m-th request (e.g., the (m+1)-th request for the B m+1 ), the response module provides the B m+1 to the client 4 A, and terminates the first pre-fetch process whilst continuing to operate the second pre-fetch process.
- a subsequent request of the m-th request e.g., the (m+1)-th request for the B m+1
- the response module provides the B m+1 to the client 4 A, and terminates the first pre-fetch process whilst continuing to operate the second pre-fetch process.
- FIG. 3 illustrates a flowchart of embodiment of a method for optimizing streaming media transmission.
- the method is provided by way of example, as there are a variety of ways to carry out the method.
- the method described below can be carried out using the cache apparatus 2 illustrated in FIG. 2 , for example, and various elements of these figures are referenced in explaining the processing method.
- the cache apparatus 2 is not to limit the operation of the method, which also can be carried out using other devices.
- Each step shown in FIG. 3 represents one or more processes, methods, or subroutines, carried out in the exemplary processing method. Additionally, the illustrated order of blocks is by example only and the order of the blocks can change.
- the method begins at block 102 .
- the cache apparatus 2 receives, from the client 4 A, one or more requests for one or more first-resolution video data blocks (e.g., a 1-th request for the A 1 ).
- the cache apparatus 2 generates a first pre-fetch process in response to the 1-th request, wherein the first pre-fetch process controls the cache apparatus 2 to the first-resolution 1-th video data block A 1 and subsequent video data blocks (e.g., A 2 , A 3 , A 4 , . . . ) from the content source 6 . Then, the cache apparatus 2 provides the A 1 to the client 4 A, and provides the A 2 to the client 4 A when the cache apparatus 2 receives a 2-th request for the A 2 , provides the A 3 to the client 4 A when the cache apparatus 2 receives a 3-th request for the A 3 , and so on.
- the first pre-fetch process controls the cache apparatus 2 to the first-resolution 1-th video data block A 1 and subsequent video data blocks (e.g., A 2 , A 3 , A 4 , . . . ) from the content source 6 .
- the cache apparatus 2 provides the A 1 to the client 4 A, and provides the A 2 to the client 4 A
- the cache apparatus 2 prioritizes determining whether the A 1 is stored in the cache apparatus 2 . If it is determined that the A 1 is stored in the cache apparatus 2 , the cache apparatus 2 directly provides the client 4 A with the A 1 stored in the cache apparatus 2 . If it is determined that the A 1 is not stored in the cache apparatus 2 , the cache apparatus 2 generates the first pre-fetch process to pre-fetch the A 1 from the content source 6 and then provides the A 1 to the client 4 A.
- the cache apparatus 2 receives, from the client 4 A, an n-th request for a B.
- the cache apparatus 2 may give a priority to determine whether the B n is stored in the cache apparatus 2 . If it is determined that the B n is stored in the cache apparatus 2 , the cache apparatus 2 directly provides the B n stored in the cache apparatus 2 to the client 4 A. If not, the flowchart goes to block 108 .
- the cache apparatus 2 determines whether pre-fetching the B n from the content source 6 is supported according to QoS of the second network between the cache apparatus 2 and the content source 6 . If yes, the flowchart goes to block 112 . If no, the flowchart goes to block 110 .
- the cache apparatus 2 limits data transmission speed from the cache apparatus 2 to the client 4 A and provides a first-resolution n-th video data block A n to the client 4 A.
- the cache apparatus 2 switches from the first pre-fetch process to a second pre-fetch process, wherein the second pre-fetch process controls the cache apparatus 2 to pre-fetch the B n and subsequent video data blocks (e.g., B n+1 , B n+2 , B n+3 , . . . ) from the content source 6 .
- the second pre-fetch process controls the cache apparatus 2 to pre-fetch the B n and subsequent video data blocks (e.g., B n+1 , B n+2 , B n+3 , . . . ) from the content source 6 .
- the cache apparatus 2 provides the client 4 A with the B n obtained from block 112 ; and waits to receive subsequent requests for the subsequent video data blocks (e.g., B n+1 , B n+2 , B n+3 , . . . ) to provide the client 4 A with the subsequent video data blocks (e.g., B n+1 , B n+2 , B n+3 , . . . ).
- the subsequent video data blocks e.g., B n+1 , B n+2 , B n+3 , . . .
- FIG. 4 illustrates a flowchart of another embodiment of a method for optimizing streaming media transmission.
- the cache apparatus 2 is able to pre-fetch and store higher-resolution video data blocks before receiving requests for the higher-resolution video data blocks from a client (e.g., 4 A).
- the cache apparatus 2 also adapts to be able to pre-fetch and store lower-resolution video data blocks before receiving requests for the lower-resolution video data blocks from a client (e.g., 4 A).
- the method begins at block 202 .
- the cache apparatus 2 receives, from the client 4 A, one or more requests for one or more first-resolution video data blocks (e.g., a 1-th request for the A 1 ).
- the cache apparatus 2 generates a first pre-fetch process in response to the 1-th request, wherein the first pre-fetch process controls the cache apparatus 2 to the first-resolution 1-th video data block A 1 and subsequent video data blocks (e.g., A 2 , A 3 , A 4 , . . . ) from the content source 6 . Then, the cache apparatus 2 provides the A 1 to the client 4 A, and provides the A 2 to the client 4 A when t the cache apparatus 2 receives a 2-th request for A 2 , provides the A 3 to the client 4 A when the cache apparatus 2 receives a 3-th request for A 3 , and so on.
- the first pre-fetch process controls the cache apparatus 2 to the first-resolution 1-th video data block A 1 and subsequent video data blocks (e.g., A 2 , A 3 , A 4 , . . . ) from the content source 6 .
- the cache apparatus 2 provides the A 1 to the client 4 A, and provides the A 2 to the client 4 A
- the cache apparatus 2 determines QoS value of the first network between the cache apparatus 2 and the client 4 A.
- the cache apparatus 2 estimates a probability of the cache apparatus 2 receiving a m-th request from the client 4 A for a second-resolution m-th video data block B m . Such estimation of probability is based on a result of determination. The probability so estimated is compared with a predefined threshold value. If the probability is larger than the predefined threshold value, the flowchart goes to block 210 . If no, the flowchart continues to operate the first pre-fetched process generated at the block 204 .
- the cache apparatus 2 determines whether pre-fetching a A m and the B m in parallel from the content source 6 is supported. If yes, the flowchart goes to block 212 . If no, the flowchart continues to operate the first pre-fetched process generated at the block 204 .
- the cache apparatus 2 operates the first pre-fetch process and the second pre-fetch process in parallel, wherein the first pre-fetch process pre-fetches pre-fetching the A m and subsequent video data blocks (e.g., A m+1 , A m+2 , A m+3 , . . . ), and the second pre-fetch process pre-fetches the B m and subsequent video data blocks (e.g., B m+1 , B m+2 , B m+3 , . . . ) of the B m .
- the first pre-fetch process pre-fetches pre-fetching the A m and subsequent video data blocks (e.g., A m+1 , A m+2 , A m+3 , . . . )
- the second pre-fetch process pre-fetches the B m and subsequent video data blocks (e.g., B m+1 , B m+2
- the cache apparatus 2 determines whether to receive the m-th request for the B m or subsequent requests for the subsequent video data blocks (e.g., B m+1 , B m+2 , B m+3 , . . . ). If yes, the flowchart goes to block 216 . If no, the cache apparatus 2 continues to provide the client 4 A with corresponding first-resolution video data blocks (e.g., A m , A m+1 , A m+2 , . . . ), and continues to operate the first pre-fetch process and the second pre-fetch process in parallel.
- first-resolution video data blocks e.g., A m , A m+1 , A m+2 , . . .
- the cache apparatus 2 provides the client 4 A with the B m or the subsequent video data blocks (e.g., B m+1 , B m+2 , B m+3 , . . . ), and terminates the first pre-fetch process and continue to operate the second pre-fetch process.
- the value m may equal to the value n.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Quality & Reliability (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/293,287 US20180109462A1 (en) | 2016-10-14 | 2016-10-14 | Method for optimizing streaming media transmission and cache apparatus using the same |
CN201610917206.XA CN107959668A (zh) | 2016-10-14 | 2016-10-20 | 流媒体传输优化方法及缓存装置 |
TW105137189A TWI640192B (zh) | 2016-10-14 | 2016-11-15 | 串流媒體傳輸優化方法及快取裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/293,287 US20180109462A1 (en) | 2016-10-14 | 2016-10-14 | Method for optimizing streaming media transmission and cache apparatus using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
US20180109462A1 true US20180109462A1 (en) | 2018-04-19 |
Family
ID=61904788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/293,287 Abandoned US20180109462A1 (en) | 2016-10-14 | 2016-10-14 | Method for optimizing streaming media transmission and cache apparatus using the same |
Country Status (3)
Country | Link |
---|---|
US (1) | US20180109462A1 (zh) |
CN (1) | CN107959668A (zh) |
TW (1) | TWI640192B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190208000A1 (en) * | 2017-12-29 | 2019-07-04 | Avermedia Technologies, Inc. | Media streaming control device and control method thereof |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108650544B (zh) * | 2018-05-17 | 2020-09-29 | 上海七牛信息技术有限公司 | 一种媒体播放方法、装置以及媒体播放*** |
CN110545482B (zh) * | 2018-05-29 | 2022-01-07 | 北京字节跳动网络技术有限公司 | 一种分辨率切换时的接续播放方法、装置及存储介质 |
CN112153465B (zh) * | 2019-06-28 | 2024-01-16 | 北京京东尚科信息技术有限公司 | 图像加载方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8180920B2 (en) * | 2006-10-13 | 2012-05-15 | Rgb Networks, Inc. | System and method for processing content |
US9009337B2 (en) * | 2008-12-22 | 2015-04-14 | Netflix, Inc. | On-device multiplexing of streaming media content |
CN102447723B (zh) * | 2010-10-12 | 2015-09-09 | 运软网络科技(上海)有限公司 | 客户端虚拟化架构 |
US9280540B2 (en) * | 2012-10-01 | 2016-03-08 | Verizon Patent And Licensing Inc. | Content-driven download speed |
-
2016
- 2016-10-14 US US15/293,287 patent/US20180109462A1/en not_active Abandoned
- 2016-10-20 CN CN201610917206.XA patent/CN107959668A/zh active Pending
- 2016-11-15 TW TW105137189A patent/TWI640192B/zh active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190208000A1 (en) * | 2017-12-29 | 2019-07-04 | Avermedia Technologies, Inc. | Media streaming control device and control method thereof |
Also Published As
Publication number | Publication date |
---|---|
TW201817244A (zh) | 2018-05-01 |
TWI640192B (zh) | 2018-11-01 |
CN107959668A (zh) | 2018-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10027545B2 (en) | Quality of service for high network traffic events | |
CN110198495B (zh) | 一种视频下载和播放的方法、装置、设备和存储介质 | |
US20180109462A1 (en) | Method for optimizing streaming media transmission and cache apparatus using the same | |
US20170195387A1 (en) | Method and Electronic Device for Increasing Start Play Speed | |
US10250657B2 (en) | Streaming media optimization | |
CA2874633C (en) | Incremental preparation of videos for delivery | |
WO2016105904A1 (en) | Context aware media streaming technologies, devices, systems, and methods utilizing the same | |
US10178431B2 (en) | Hybrid stream delivery | |
US20140344882A1 (en) | System and Method of Video Quality Adaptation | |
CN110209975B (zh) | 用于提供对象的方法、装置、设备和存储介质 | |
US8762563B2 (en) | Method and apparatus for improving the adaptive bit rate behavior of a streaming media player | |
WO2022206244A1 (en) | Reduced bandwidth consumption via generative adversarial networks | |
US11825139B2 (en) | Bitrate and pipeline preservation for content presentation | |
US9454328B2 (en) | Controlling hierarchical storage | |
US20170163555A1 (en) | Video file buffering method and system | |
CN113727172B (zh) | 视频缓存播放方法、装置、电子设备及存储介质 | |
US9801112B2 (en) | Wireless video link optimization using video-related metrics | |
US20150256464A1 (en) | Dynamic flow control in multicast systems | |
WO2019151473A1 (ja) | 品質予測装置、品質予測方法及びプログラム | |
KR102543019B1 (ko) | 높은 대역폭 네트워크들 상에서의 데이터의 버퍼링 | |
US20220210488A1 (en) | Method and system for detecting and managing similar content | |
KR20160022505A (ko) | 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 유형에 따른 서비스 처리 방법 및 이를 위한 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HON HAI PRECISION INDUSTRY CO., LTD., TAIWAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LIN, YU-CHUNG;REEL/FRAME:040011/0616 Effective date: 20161011 Owner name: NANNING FUGUI PRECISION INDUSTRIAL CO., LTD., CHIN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LIN, YU-CHUNG;REEL/FRAME:040011/0616 Effective date: 20161011 |
|
AS | Assignment |
Owner name: HON HAI PRECISION INDUSTRY CO., LTD., TAIWAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LIN, YU-CHUNG;REEL/FRAME:040026/0051 Effective date: 20161011 Owner name: NANNING FUGUI PRECISION INDUSTRIAL CO., LTD., CHIN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LIN, YU-CHUNG;REEL/FRAME:040026/0051 Effective date: 20161011 |
|
AS | Assignment |
Owner name: NANNING FUGUI PRECISION INDUSTRIAL CO., LTD., CHINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NANNING FUGUI PRECISION INDUSTRIAL CO., LTD.;HON HAI PRECISION INDUSTRY CO., LTD.;REEL/FRAME:045171/0347 Effective date: 20171229 Owner name: NANNING FUGUI PRECISION INDUSTRIAL CO., LTD., CHIN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NANNING FUGUI PRECISION INDUSTRIAL CO., LTD.;HON HAI PRECISION INDUSTRY CO., LTD.;REEL/FRAME:045171/0347 Effective date: 20171229 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |