CN114449335A - 在高带宽网络上缓冲数据 - Google Patents
在高带宽网络上缓冲数据 Download PDFInfo
- Publication number
- CN114449335A CN114449335A CN202111292789.9A CN202111292789A CN114449335A CN 114449335 A CN114449335 A CN 114449335A CN 202111292789 A CN202111292789 A CN 202111292789A CN 114449335 A CN114449335 A CN 114449335A
- Authority
- CN
- China
- Prior art keywords
- data
- downloading
- buffer
- determining
- cache
- 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.)
- Pending
Links
- 230000003139 buffering effect Effects 0.000 title abstract description 7
- 239000000872 buffer Substances 0.000 claims abstract description 101
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 2
- 208000003028 Stuttering Diseases 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
-
- 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/10—Architectures or entities
- H04L65/1059—End-user terminal functionalities specially adapted for real-time communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4335—Housekeeping operations, e.g. prioritizing content for deletion because of storage space restrictions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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/1066—Session management
- H04L65/1083—In-session procedures
- H04L65/1095—Inter-network session transfer or sharing
-
- 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
-
- 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/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- 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/752—Media network packet handling adapting media to network capabilities
-
- 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
-
- 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
-
- 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
- H04L7/00—Arrangements for synchronising receiver with transmitter
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8549—Creating video summaries, e.g. movie trailer
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了在高带宽网络上缓冲数据。本发明提供用于在高带宽网络上缓冲数据的技术。以第一下载速度将第一部分数据下载到缓冲器中。从所述缓冲器输出所述第一部分数据。在确定正在以大于所述第一下载速度的第二下载速度下载数据时,确定对一个或多个后续部分数据使用缓存,并且将第二部分数据下载到所述缓存中。在确定所述缓冲器为空时,从所述缓存输出所述第二部分数据。
Description
技术领域
本公开总体上涉及在高带宽网络上缓冲数据。
背景技术
一些系统以离散片段下载媒体。然后,按顺序输出每个片段。然而,如果下载速度显著变化,则流传输设备可为接下来的(一个或多个)片段选择非最佳位率。当间歇或突发连接丢失时,可能无法及时下载接下来的(一个或多个)片段,导致媒体输出出现缓冲和漏失。
发明内容
根据本公开的第一方面,提供了一种方法,包括:通过设备以第一下载速度将第一部分数据下载到缓冲器中;从所述缓冲器输出所述第一部分数据;在确定所述设备正在以大于所述第一下载速度的第二下载速度下载数据时:确定对一个或多个后续部分数据使用缓存;以及将第二部分数据下载到所述缓存中;以及在确定所述缓冲器为空时,从所述缓存输出所述第二部分数据。
根据本公开的第二方面,提供了一种非暂时性计算机可读介质,包含计算机程序代码,当由一个或多个计算机处理器的操作执行时,所述计算机程序代码执行包括以下项的操作:通过设备以第一下载速度将第一部分数据下载到缓冲器中;从所述缓冲器输出所述第一部分数据;在确定所述设备正在以大于所述第一下载速度的第二下载速度下载数据时:确定对一个或多个后续部分数据使用缓存;以及将第二部分数据下载到所述缓存中;以及在确定所述缓冲器为空时,从所述缓存输出所述第二部分数据。
根据本公开的第三方面,提供了一种系统,包括:一个或多个计算机处理器;以及存储介质,包含程序,所述程序在由所述一个或多个计算机处理器执行时执行操作,所述操作包括:通过所述系统以第一下载速度将第一部分数据下载到缓冲器中;从所述缓冲器输出所述第一部分数据;在确定所述系统正在以大于所述第一下载速度的第二下载速度下载数据时:确定对一个或多个后续部分数据使用缓存;以及将第二部分数据下载到所述缓存中;以及在确定所述缓冲器为空时,从所述缓存输出所述第二部分数据。
根据本公开的第四方面,提供了一种方法,包括:通过设备以第一下载速度将第一部分数据下载到缓冲器中;从所述缓冲器输出所述第一部分数据;在确定所述设备正在以大于所述第一下载速度的第二下载速度下载数据时:扩展所述缓冲器的尺寸;以及将第二部分数据下载到所述缓冲器中。
附图说明
因此可以通过参考附图获得得出并能够详细理解上述方面的方式以及上文简要总结的本文所述的实施例的更具体描述。
然而,应注意,附图图示了典型的实施例,因此不应被认为是限制性的;其他等效实施例也应考虑在内。
图1描绘了根据本文公开的一些实施例的包括流传输设备的系统,该流传输设备被配置为在具有动态带宽的网络连接上自适应地缓冲数据。
图2描绘了根据本文公开的一些实施例的包括流传输设备的系统,该流传输设备被配置为被配置为利用缓冲器和缓存以在具有动态带宽的网络连接上动态地缓冲数据。
图3是图示根据本文公开的一些实施例的动态响应切换网络连接的方法的流程图。
图4是图示根据本文公开的一些实施例的用于在动态网络条件下流传输媒体片段的方法的流程图。
图5是图示根据本文公开的一些实施例的用于在动态网络条件下下载数据的方法的流程图。
图6A和图6B是根据本文公开的一些实施例的被配置为在动态网络条件下流传输数据的计算设备的框图。
具体实施方式
在各种系统中,将数据下载并缓存到存储器中,以供立即或后续输出。例如,可以将视频下载到存储器中的缓冲器中,并从缓冲器输出以供显示,以对视频数据进行流传输。使用缓冲器允许系统在输出数据之前预先下载一些数据,以便防止在输出中出现断续(stutter)或暂停。例如,一些系统以离散片段下载媒体,将每个片段存储在缓冲器中。然后,按顺序从缓冲器输出每个片段。
一些系统利用自适应位率解决方案来改进流传输过程。在此类系统中,流传输平台以各种位率(例如,每秒十兆位、每秒十五兆位等)提供数据流。然后,流传输设备可以基于其自身的网络条件选择要下载的位率。例如,流传输设备可以测量正在下载视频文件的速度,以确定在下载下一部分视频时要求的适当位率。
然而,如果下载速度显著变化,则流传输设备可为接下来的(一个或多个)片段选择非最佳位率。例如,设备通常可以利用第一网络连接来下载媒体,但使用更高速度来接收间歇性连接。如果使用这些更高速度来选择下一位率,则设备将选择无法在原始连接速度上维持的更高位率。
本公开的实施例提供了响应于动态和切换连接的系统、设备和方法,以改进使用动态网络下载或上传数据的设备的操作。在本公开中,在一些示例中使用媒体流传输。然而,应理解,本公开的实施例容易地适用于涉及下载或上传数据的各种用途。
在一些实施例中,计算设备可以某个初始速度使用网络连接下载(或上传)数据。当增加的带宽可用时(在同一连接上或在第二网络连接上),设备可利用这种爆发速度(burst of speed)来下载(或上传)超出本应在时间帧中的数据的其他数据。在一个实施例中,如果设备正在利用某个初始位率、质量或正在下载或上传的数据量的其他指标,则所述设备继续使用同一位率以确保过程在更高速度连接不再可用时不会中断。
例如,移动设备可以利用4G连接来在流传输环境中下载媒体片段。设备可以基于4G连接的速度(也称为带宽)来选择流传输的位率。已经部署了越来越多的高速网络(诸如,毫米5G)。这些网络通常提供非常高的带宽,但带有间歇或突发连接。例如,毫米5G连接常常需要有塔架的视线,这会导致这种高带宽连接的不稳定和临时性。因此,在确定了后续片段要求的位率时,不应利用这种更高速度的连接。此外,由于存储器缓冲器常常相当有限,因此高速连接可能会因缓冲器很快被填满而浪费。
在本公开的实施例中,流传输设备可以通过分配单独的缓存或通过临时增加缓冲器尺寸而允许使用高速连接下载额外数据来利用这种间歇性连接。这允许设备利用间歇性高速连接,这减少了对流的中断并改进整个流传输系统的操作。
图1描绘了根据本文公开的一些实施例的包括流传输设备105的系统100,该流传输设备105被配置为在具有动态带宽的网络连接上适应性缓冲数据。在图示的实施例中,流传输设备105经由一个或多个网络110A-110B与内容服务器115通信耦合。在一个实施例中,网络110提供无线连接。在至少一个实施例中,流传输设备105是移动设备,例如,智能手机、平板电脑、膝上型电脑或可利用无线网络来下载或流传输数据的其他设备。
在一些实施例中,网络110A-110B可以与不同带宽或其他特性相关联。例如,在一个实施例中,网络110A可以是具有相对有限带宽(因此相对有限下载速度)的4G或3G蜂窝网络,而网络110B是诸如WiFi连接或5G网络之类的更高带宽网络。
虽然为了概念清晰描绘了两个网络110A-110B,但是本公开的实施例可利用任何数量的离散网络,包括单个网络。例如,本公开的实施例可用于允许流传输设备105在三个或更多网络之间切换时响应动态网络条件。类似地,本文公开的实施例可用于允许流传输设备105响应单个网络连接上的切换条件。
在一个实施例中,较高带宽网络110B可能是相对断续或间歇的,因此对于流传输设备105来说不能可靠使用。然而,当可用时,由于带宽较高,因此网络110B可用于在短时间内下载大量数据。在一些实施例中,流传输设备105通常可经由网络110A从内容服务器115下载数据(例如,视频数据)。在一些实施例中,流传输设备105使用自适应位率逻辑以经由网络110A至少部分地基于可用带宽或下载速度来选择向内容服务器115请求的位率变体来做此操作。
在一些实施例中,流传输设备105临时将该下载数据缓冲在存储器中的缓冲器中。然后,从该缓冲器输出媒体。在许多实施例中,缓冲器具有相对有限的尺寸。因此,流传输设备105通常就在需要输出/显示数据之前经由网络110A下载部分数据(例如,媒体片段)。
在一个实施例中,如果流传输设备105确定更高的带宽连接可用(例如,经由网络110B),则可以动态地响应以利用这些更高的速度。在一个实施例中,流传输设备105基于确定设备的当前连接被分类或标记为预定义高速连接来确定该更高速度可用。例如,当经由网络110A连接时,可以将流传输设备105连接分类为“4G”,而将网络110B分类为“5G”。
在一些实施例中,流传输设备105通过评估当前正在从内容服务器115或其他源下载数据有多快来识别更快的连接。例如,在一个这样的实施例中,流传输设备105监视其当前下载速度(例如,针对当前数据片段或部分)以及滑动窗口上的历史下载速度(例如,最后六十秒,或数据的最后十个片段或部分内)。如果当前下载速度根据某个预定义标准超过该历史速度,则流传输设备105可以确定正处于高带宽连接上。在实施例中,该标准可以包括阈值倍数(例如,至少快两倍)、最小速度(例如,至少每秒一百兆位)、阈值增加(例如,比历史速度快至少每秒五十兆位)等。
在至少一个实施例中,流传输设备105可以基于先前连接来识别高带宽连接。例如,在一个这样的实施例中,无论何时高带宽网络110B可用,流传输设备105都可以利用位置服务来识别并记录其当前位置。随后,基于流传输设备105的当前位置或移动,流传输设备105可以确定网络110B可能在未来的某个点处(例如,在十秒或某个其他预定义时间内)可用。作为响应,流传输设备105可以开始为更高速度的连接做准备,下面将对此进行讨论。
在一个实施例中,当流传输设备105确定正在使用更高带宽连接时,其开始将数据从内容服务器115下载到无限制的缓存或缓冲器中。在一些实施例中,该缓存位于流传输设备105的次级存储器中,通常被称为“辅助存储器”或“存储装置”(例如,硬盘驱动器(HD)、固态驱动器(SSD)、ROM、快闪存储器、固定或可移动存储介质等),而原始缓冲器位于流传输设备105的主存储器中,通常被称为“主存储器”或简称为“存储器”(例如,随机存取存储器(RAM))。如本领域中通常使用和已知的,术语“存储器”可以指在本文中被描述为“主存储器”的设备,而术语“存储装置”可以指在本文中被描述为“次级存储器”的装置。通常,主存储器与系统的(一个或多个)处理单元(例如,RAM)紧密耦合,允许较快的访问时间。然而,该直接耦合常常需要主存储器的尺寸相对有限。相比之下,次级存储器与主存储器相比通常缺少该直接访问,导致较慢的访问时间。然而,次级存储器通常可显著大于主存储器。在另一个实施例中,如果主存储器中有足够的空间可用(例如,在高存储器系统中),则流传输设备105可以扩展存储器缓冲器的尺寸,或者在主存储器中建立第二缓冲器或缓存。
在一些实施例中,流传输设备105以与先前用于下载数据的位率相同的位率将数据下载到该缓存中。例如,如果流传输设备105最初使用每秒十兆位的位率从内容服务器115进行流传输,则即使网络110B能够支持高得多的位率,流传输设备105也将继续请求十兆位进行流传输。
通过将该数据下载到无上限缓存中,流传输设备105可以利用高速并下载超出本应下载的数据的额外数据。例如,流传输设备105可以使用更快的网络110B继续将尽可能多的数据下载到缓存中,而不是缓冲有上限量的数据(例如,接下来的60秒视频,或接下来的五个片段)。
在一个实施例中,当原始存储器缓冲器为空(例如,已经输出所有先前下载的片段)时,流传输设备105将开始从缓存输出数据。这可以包括将数据传输到存储器以及将数据从存储器中输出,或者直接将数据从存储装置中输出。
在一些实施例中,流传输设备105可以继续将数据下载到缓存(而非原始缓冲器)中,直到满足一些预定义标准为止。这可以包括确定流传输设备105已经返回到原始网络110A。例如,流传输设备105可以检查其当前连接的标签或分类。在另一个实施例中,流传输设备105可以继续监视下载速度,如上面所讨论的,以检测是否回退到原始连接(例如,通过将当前速度与过去N个片段或秒内的历史速度的滑动窗口进行比较)。
在一个实施例中,然后,流传输设备105可以继续将数据从缓存输出直到缓存变空为止(例如,直到已经输出所有下载的数据为止)。在一个实施例中,当缓存接近为空(例如,当剩下要从缓存输出的数据量低于预定义阈值)时,流传输设备105可以返回到原始流传输范式。
在一些实施例中,流传输设备105正在从预定义数据池下载或流传输。例如,数据的片段或部分可以全部对应于给定剧集、电影、播客或其他媒体。在一个实施例中,如果流传输设备105在网络110B丢失之前将所有可用数据下载到缓存中(例如,如果已经下载整个剧集),则可以停止下载额外数据并且简单地将数据从缓存输出。
在一些实施例中,即使所有网络连接都丢失,流传输设备105也可以维护该下载的缓存以允许流传输设备105随后输出媒体。在另一个实施例中,流传输设备105可以仅在流传输会话保持活动时允许对缓存进行访问。在一个这样的实施例中,如果用户退出流,则流传输设备105可以删除缓存的数据或以其他方式将其标记为不可用,并且需要流传输设备105重新流传输媒体。
在一些实施例中,流传输设备105被配置为在完成第一流时从其他流下载额外数据。例如,如果流传输设备105正在从节目流传输给定剧集,则如果已完成给定剧集下载,则流传输设备105可以开始下载下一剧集。这可允许流传输设备105预取额外数据。在一个实施例中,流传输设备105可以使用任何合适的逻辑来确定要下载哪个数据流。例如,在一个实施例中,流传输设备105或内容服务器115利用预定义的媒体顺序或列表(例如,剧集列表),并请求/提供下一个。在另一个实施例中,流传输设备105或内容服务器115使用用于向用户建议媒体的其他定制逻辑以选择要下载的下一数据。
在至少一个实施例中,流传输设备105可以跟踪预下载的媒体是否实际上已被耗尽。在一些实施例中,流传输设备105通过监视实际上从缓存输出哪些数据或片段而这样做。流传输设备105可以将该信息传输到内容服务器115或其他系统。这允许内容服务器115(或其他系统)基于实际输出的媒体而不是仅基于已下载的数据,记住用户在给定流中的中断位置。类似的逻辑可应用于流传输设备105预取后续剧集或媒体的实施例。
在一些实施例中,除了将来自流的媒体下载到缓存中以外或代替将来自流的媒体下载到缓存中,流传输设备105可以预取其他预定义媒体。例如,除了预取请求媒体的片段以外或代替预取请求媒体的片段,流传输设备105可以使用高带宽网络110B将广告或其他预定义媒体下载到缓存中。这可以允许流传输设备105无缝输出该数据。例如,在直播环境中,可能没有可预先下载到缓存中的媒体。然而,流传输设备105可以使用高带宽连接来将广告或其他媒体预下载到缓存中。然后,稍后可以适当地输出该数据。在一个实施例中,流传输设备105可以监视实际输出/耗尽了哪些广告或其他媒体,并且将该信息传输到内容服务器115或其他系统。
在至少一个实施例中,流传输设备105可以选择性地使用高带宽网络110B来下载原本不会被下载的其他数据或变体。例如,尽管流传输设备105正在原始连接上以第一位率流传输数据,但是当网络110B可用时,流传输设备105可以以更高的位率将一个或多个片段流传输到缓存中。作为另一示例,如果流传输设备105正在流传输纯音频媒体,则当高带宽连接可用时,流传输设备105可以将一些相关联的视频下载到缓存中。
在一些实施例中,当流传输设备105将数据下载到缓存中时,允许缓存按需增长或扩展。也就是说,缓存是无上限的。例如,虽然在创建缓存时可以定义一些初始尺寸,但是流传输设备105可允许缓存随着数据下载而增长,直到达到某个预定的最大值或者直到存储空间耗尽为止。通过将无上限缓冲器用于偶发高带宽连接,流传输设备105可以显著改进流传输环境。
图2描绘了根据本文公开的一些实施例的包括流传输设备105的系统200,该流传输设备105被配置为利用缓冲器和缓存来通过具有动态带宽的网络连接动态地缓冲数据。在图示的实施例中,流传输设备105从内容服务器115下载媒体片段215。如图所示,这些片段215是预定义媒体流中连续的数据部分,并且被按顺序下载和输出。
在图示的实施例中,流传输设备105包括缓冲器205和缓存210。在至少一个实施例中,缓冲器205位于存储器中,而缓存210位于存储装置中。在一些实施例中,缓存210可以简单地对应于存储器中的额外空间。在又一个实施例中,缓存210不是离散的数据结构,而是通过扩展缓冲器205的上限来实现。
在一个实施例中,缓冲器205具有有限(通常是固定的)尺寸。在图示的实施例中,缓冲器205被配置为存储三个片段215。在本公开的一些实施例中,缓存210更大并且被配置为存储额外数据。在图示的实施例中,缓存210存储七个片段215。在至少一个实施例中,缓存210可随着数据下载而动态扩展。例如,如果缓存已满后高带宽连接仍然可用,则流传输设备105可以扩展缓存以允许其增长并存储更多片段215。
在实施例中,流传输设备105可以在正常使用期间将片段215下载到缓冲器205中。当从缓冲器205输出片段215时,将片段删除或以其他方式标记为“已耗尽”,从而允许流传输设备105将后续片段215下载到缓冲器205中。在图示的实施例中,在确定高带宽连接可用时,流传输设备105开始将后续片段215下载到缓存210中。也就是说,流传输设备105可以将尚未被提取(无论是否已被输出)的片段215下载到缓存210,而不是缓冲器205。
一旦缓冲器205中的最后一个片段215(图示的实施例中的片段215C)已经输出,流传输设备105就开始从缓存210输出后续片段215。在一些实施例中,这包括将片段215从缓存210按顺序传输到缓冲器205或存储器的另一部分中,然后将它们从存储器输出。
在一个实施例中,只要高带宽连接保持可用,流传输设备105就继续将片段215下载到缓存210。如果高带宽连接不再可用并且流传输设备105恢复使用初始连接,则流传输设备105可暂停下载直到缓存210中的所有(或几乎所有)数据都被耗尽为止。
例如,当流传输设备105确定缓存210中保留一些预定义量的数据(例如,要输出的另外三个片段215)时,流传输设备105可以启动原始流传输处理以将后续片段215下载到缓冲器205中。如果高带宽连接再次变得可用,则流传输设备105可以再次开始将数据下载到缓存210。这允许流传输设备105在具有不同带宽/速度的连接之间无缝转换。
图3是图示根据本文公开的一些实施例的动态响应切换网络连接的方法300的流程图。在一个实施例中,由流传输设备(诸如,流传输设备105)进行方法300。方法300在块305处开始,在块305处,流传输设备以某个初始速度将数据(例如,媒体片段)下载到缓冲器中(例如,在存储器中)。例如,流传输设备可以经由与第一带宽/速度相关联的第一无线连接将片段流传输到缓冲器中。在一些实施例中,流传输设备进一步下载与初始位率(例如,十兆位流)相关联的数据。
然后,方法300继续到方框310,在方框310处,流传输设备确定爆发连接(burstconnection)是否可用。在实施例中,爆发连接是变得可用于流传输设备的相对更高带宽或更高速度的连接。例如,爆发连接可以对应于5G连接。在另一个实施例中,爆发连接可以对应于同一原始连接上更快的下载速度。
在一个实施例中,流传输设备基于由当前连接指示的标签或分类来确定爆发连接是否可用。在另一个实施例中,流传输设备将当前或最近的下载速度与历史下载速度(例如,前面五个片段或六十秒内)进行比较。如果与原始速度相比(或抽象地,不与初始速度比较)当前速度超过某个预定义阈值,则流传输设备可确定爆发连接可用。
如果没有爆发连接可用,则方法300返回到方框305。以此方式,流传输设备继续照常通过缓冲器流传输数据。如果流传输设备确定爆发连接可用,则方法300继续到方框315,在方框315处,流传输设备创建用于经由爆发连接下载数据的缓存(或确定开始使用预先存在的缓存)。在一个实施例中,这包括为数据分配存储器或存储装置的某一部分。在一个实施例中,缓存大于缓冲器(或者缓存将无上限并允许按需增长)。
然后,方法300继续到方框320,在方框320处,流传输设备开始使用爆发连接将数据(例如,媒体的后续片段)下载到缓存中。在实施例中,由于爆发连接与更高的速度或带宽相关联,因此流传输设备可以立即下载额外片段,而不是等到就在需要输出额外片段之前。在至少一个实施例中,流传输设备继续下载与相同流或位率相关联的数据。也就是说,如果流传输设备正在下载给定流、变体或位率,则流传输设备可在下载到缓存中时继续使用相同的流、变体或位率。这允许流传输设备在缓冲器与缓存之间(以及在初始连接与爆发连接之间)来回无缝转换。
在方框325处,流传输设备确定爆发连接是否仍然可用。如果是,则方法300返回到方框320。以此方式,流传输设备可继续以更高的速度下载数据,直到爆发连接不再可用或者满足某个其他标准为止。如以上所讨论的,该标准可包括确定是否已下载整个媒体(例如,整个节目)等。在至少一个实施例中,流传输设备可以被授权以将一些预定义最大量数据下载到缓存中。例如,基于许可或一些其他标准,可以允许流传输设备预下载一些预定义量的数据(例如,多达五十个片段或十分钟)。
返回到方框325,如果流传输设备确定爆发连接不再可用,则方法300返回到方框305以使用初始连接将数据流传输到缓冲器中。在至少一个实施例中,流传输设备可以等待直到缓存为空(或几乎为空),而立即以初始速率开始流传输,如上面所讨论的。
有利地,方法300允许流传输设备在充分利用临时爆发连接来将数据预下载到缓存的同时在不同连接模式之间平滑转换。
图4是图示根据本文公开的一些实施例的用于在动态网络条件下流传输媒体片段的方法400的流程图。在一个实施例中,由流传输设备(例如,流传输设备105)执行方法400。在一个实施例中,方法400具体对应于流传输媒体片段(与更通用的数据相比),并且为一个这样的实施例提供额外细节。方法400在方框405处开始,在方框405处,流传输设备选择用于流传输的片段位率。
例如,使用自适应位率逻辑,流传输设备可以部分基于在流传输设备处可用的带宽或当前下载速度来确定要利用哪个位率。如本文中所使用的,给定位率可以替代地被称为“变体”、“流”等。在实施例中,选择位率包括选择要下载的媒体的特定版本或变体。虽然更高位率通常与更高质量的视频/音频相关联,但它们也需要更高的带宽才能可靠下载。因此,流传输设备可选择确保以可能的最高质量进行可靠流传输的位率。
在方框410处,流传输设备将与选择的位率相关联的(一个或多个)媒体片段下载到缓冲器中。如上面所讨论的,随后按顺序输出这些缓冲片段。在方框415处,流传输设备确定是否已完成下载媒体。例如,如果流传输设备正在流传输电影,则流传输设备可以确定是否已下载电影中的最后一个媒体片段。如果是,则方法400在方框420处终止。也就是说,在图示的实施例中,以此方式,如果仍在使用初始连接,则流传输设备将在其完成当前流时停止下载。
如果流传输设备确定其还没有完成对媒体的流传输,则方法400继续到方框425。在方框425处,流传输设备确定爆发连接是否可用,如上文所讨论的。如果爆发连接不可用,则方法400返回到方框410。以此方式,流传输设备可经由初始连接继续以初始选择的位率流传输数据。如果流传输设备确定爆发连接可用,则方法400继续到方框430。
在方框430处,流传输设备将媒体的后续片段下载到缓存中。在一个实施例中,该缓存可以位于存储器中或任何合适的位置。缓存可能大于缓冲器,与无上限或无限制尺寸相关联,或者两者兼有之。在图示的实施例中,虽然可以以更高的下载速度下载这些片段(由于爆发连接的更高带宽),但是流传输设备继续以相同位率/变体下载片段。这确保了,在爆发连接突然丢失(例如,由于瞬态和不稳定的性质)的情况下,后续片段仍可使用原始连接下载而不会中断。
在方框435处,流传输设备确定是否已经完成下载选择的媒体(例如,正在流传输的剧集或电影)。如果否,则方法400返回到方框445。如果流传输设备已完成下载当前媒体,则方法400进行到方框440,在方框440处,流传输设备识别下一媒体。在一个实施例中,流传输设备通过询问内容服务器或供应商来这样做。然后,内容服务器可确定接下来应流传输哪个媒体(例如,使用定义的媒体顺序、使用预测算法向用户推荐媒体等)。这允许流传输设备为用户可能希望查看的下一流预先缓存媒体。然后,方法400继续到方框445。
在方框445处,流传输设备确定爆发连接是否仍然可用。如果是,则方法400返回到方框430,以继续以增加的速度将片段下载到缓存中。如果爆发连接不再可用,则方法400返回到方框410,以使用原始连接继续流传输。在至少一个实施例中,如上面所讨论的,流传输设备可以暂停下载直到缓存已经被耗尽为止。
另外,在一些实施例中,如果流传输设备已经开始下载单独的媒体流(例如,连续剧中的下一集),则方法400可以终止,而不是继续下载来自下一媒体的片段,除非流传输设备实际上已经开始消费下一个媒体。也就是说,除非用户已经完成了第一媒体并且开始输出第二媒体,否则流传输设备将不会在初始连接上继续下载第二媒体。
图5是图示根据本文公开的一些实施例的用于在动态网络条件下下载数据的方法500的流程图。方法500从方框505处开始,在方框505处,设备(例如,流传输设备105)以第一下载速度将第一部分数据下载到缓冲器中。在方框510处,设备从缓冲器输出第一部分数据。然后,方法500继续到方框515,在方框515处,在确定设备正在以大于所述第一下载速度的第二下载速度下载数据时,设备确定对一个或多个后续部分数据使用缓存,并且将第二部分数据下载到缓存中。在方框520处,在确定缓冲器为空时,设备从缓存输出第二部分数据。
图6A是根据本文公开的一些实施例的被配置为在动态网络条件下流传输数据的计算设备600A的框图。在一个实施例中,计算设备600A是流传输设备105。虽然被描绘为物理设备,但是在实施例中,计算设备600A可以被实现为虚拟设备或服务,或者跨多个设备(例如,在云环境中)。如图所示,计算设备600A包括处理器605、存储器610、存储装置615、I/O接口620和网络接口625。在图示的实施例中,处理器605检索并执行存储在存储器610中的编程指令,以及存储和检索驻留在存储装置615中的应用数据。处理器605一般代表单个CPU、GPU、CPU和GPU、多个CPU、多个GPU、具有多个处理核的单个CPU或GPU等。一般包括存储器610以代表随机存取存储器。存储装置615可以是存储器或存储组件的任何组合,包括(但不限于)磁盘驱动器、基于闪存的存储设备等,并且可以包括固定存储设备、可移动存储设备或两者的组合,诸如,固定磁盘驱动器、可移动存储卡、缓存、光存储装置、网络附接存储装置(NAS)或存储区域网络(SAN)。
在一些实施例中,I/O设备635(诸如,鼠标、键盘、监视器、触摸屏等)经由I/O接口620连接。此外,经由网络接口625,计算设备600A可经由一个或多个网络与一个或多个诸如内容服务器的其他设备和组件(直接或间接)通信耦合。
在图示的实施例中,存储装置615包括数据缓存650A。在实施例中,数据缓存650A一般用于存储以爆发速度下载的数据部分,如上面所讨论的。在一些实施例中,数据缓存650A因可以扩展以存储任何数量的数据因而是无界的。例如,只要爆发连接可用,计算设备600A就可以继续将片段下载到数据缓存650A中,数据缓存按需增加。
如图所示,存储器610包括数据缓冲器645。将流传输应用640描绘为驻留在存储装置615中。虽然被描绘为软件,但在实施例中,流传输应用640的功能可以使用硬件、软件或硬件和软件的组合来实现。当处理器在运行时期间执行流传输应用640的指令时,存储器610可以用于临时存储流传输应用640。在一个实施例中,数据缓冲器645的尺寸是固定的。流传输应用640一般被配置为进行本文公开的一个或多个实施例。例如,当普通连接可用时,流传输应用640可以将数据(例如,从内容服务器)流传输到数据缓冲器645中。当爆发速度可用时,流传输应用640可以开始将数据流传输到数据缓存650A中。
图6B是根据本文公开的一些实施例的被配置为在动态网络条件下流传输数据的计算设备600B的框图。在图示的实施例中,计算设备600B包括存储器610中的数据缓冲器645和的数据缓存650B两者,而不是使用存储装置615来托管缓存。在一个实施例中,流传输应用640可如上面所讨论的将数据流传输到数据缓冲器645中。当爆发速度可用时,在图示的实施例中,流传输应用640将数据流传输到存储器610中的数据缓存650B中。也就是说,系统在存储器610中分配缓存而不是在存储装置615中分配缓存。在至少一个实施例中,流传输应用640可替代地在以爆发速度下载新数据时扩展数据缓冲器645的尺寸,而不是分配单独的数据缓存650B。
在一个实施例中,流传输应用640将数据下载到数据缓存650B中,直到爆发连接不再可用为止。在一些实施例中,如果数据缓存650B达到预定尺寸(也就是说,如果已经将预定数量的数据下载到数据缓存650B中),则流传输应用640可在存储装置615中分配另一缓存以继续下载数据。
在本公开中,参考了各种实施例。然而,应理解本公开并不限于特定描述的实施例。相反,无论是否与不同的实施例相关,都可以想到下面的特征和元件的任何组合来实现和实践本文中提供的教导。另外,当以“A和B中的至少一者(at least one of A and B)”的形式描述实施例的元件时,应理解为分别考虑实施例排他地包括元件A、排他地包括元件B以及包括元件A和元件B。此外,虽然一些实施例可以实现优于其他可能的解决方案或优于现有技术的优势,但是本公开并不限制是否由给定实施例实现特定优势。因此,本文中公开的方面、特征、实施例和优点仅是说明性的并且不被认为是所附权利要求的要素或限制,除非在权利要求中明确叙述。同样,对“本发明”的引用不应被解释为对本文中公开的任何发明主题的概括,并且不应被认为是所附权利要求的要素或限制,除非在权利要求中明确陈述。
如本领域技术人员应理解的,本文中公开的实施例可以具体化为系统、方法或计算机程序产品。因此,实施例可以采用完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或结合软件和硬件方面的实施例的形式,在本文中一般可以统称为“电路”、“模块”或“系统”。此外,本文所述的实施例可以采用包含在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质上面包含有计算机可读程序代码。
可以使用任何合适的介质来传输计算机可读介质上包含的程序代码,所述介质包括但不限于无线、有线、光纤电缆、RF等,或者前述的任何合适组合。
可以以一种或多种编程语言的任意组合编写用于执行本公开的实施例的操作的计算机程序代码,所述编程语言包括诸如Java、Smalltalk、C++等面向对象的编程语言和诸如“C”编程语言或类似的编程语言的传统过程编程语言。程序代码可以完全在用户计算机上、部分在用户计算机上、作为独立软件包、部分在用户计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户计算机,或者可以(例如,使用互联网服务供应商通过互联网)连接到外部计算机。
本文参照根据本公开提出的实施例的方法、装置(系统)和计算机程序产品的流程图或框图描述了本公开的各个方面。应当理解,流程图或框图的每个方框以及流程图或框图中的方框的组合可以由计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器来生产机器,使得通过计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图或框图的方框中指定的功能/行为的方法。
这些计算机程序指令还可以存储在计算机可读介质中,所述计算机可读介质可指导计算机、其他可编程数据处理装置或其他设备以特定方式运行,使得存储在计算机可读介质中的指令产生包括实现在流程图或框图的方框中指定的功能/行为的指令的制品。
还可以将计算机程序指令加载到计算机、其他可编程数据处理装置或其他设备上,以使在计算机、其他可编程装置或其他设备上执行的一系列操作步骤产生计算机实现过程,使得在计算机、其他可编程数据处理装置或其他设备上执行的指令提供用于实现在流程图或框图的方框中指定的功能/动作的过程。
图中的流程图和框图图示了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这一方面,流程图或框图中的每一个方框可以代表包括用于实现指定逻辑功能的一个或多个可执行指令的模块、片段或代码的一部分。还应注意,在一些替代实施例中,方框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,实际上可以基本上同时执行两个连续示出的方框,或者有时可以以相反的顺序或乱序执行这些方框。还应注意,框图或流程图的每个方框以及框图或流程图中的方框的组合可由执行指定功能或动作的基于专用硬件的系统来实现或由专用硬件和计算机指令的组合来实现。
虽然上文针对本公开的实施例,但是在不脱离本公开的基本范围的情况下可以构思本公开的其他和进一步的实施例,并且本公开的范围由所附权利要求确定。
Claims (21)
1.一种方法,包括:
通过设备以第一下载速度将第一部分数据下载到缓冲器中;
从所述缓冲器输出所述第一部分数据;
在确定所述设备正在以大于所述第一下载速度的第二下载速度下载数据时:
确定对一个或多个后续部分数据使用缓存;以及
将第二部分数据下载到所述缓存中;以及
在确定所述缓冲器为空时,从所述缓存输出所述第二部分数据。
2.根据权利要求1所述的方法,所述方法还包括:
在确定所述设备不再以所述第二下载速度下载数据时:
将第三部分数据下载到所述缓冲器中。
3.根据权利要求1所述的方法,其中,所述第一部分数据和所述第二部分数据来自与第一数据流相关联的多个部分数据,所述方法还包括:
在确定所述设备正在以所述第二下载速度下载数据时,将来自所述多个部分数据中的所有后续部分数据下载到所述缓存中。
4.根据权利要求3所述的方法,所述方法还包括:
在确定已将所有所述多个部分数据下载到所述缓存时:
至少部分地基于所述第一数据流识别第二数据流;以及
将与所述第二数据流相关联的至少一部分数据下载到所述缓存中。
5.根据权利要求1所述的方法,其中,所述设备使用第一网络下载所述第一部分数据,并且其中,确定所述设备正在以所述第二下载速度下载数据包括:确定所述设备已经开始使用第二网络下载数据。
6.根据权利要求1所述的方法,其中,确定所述设备正在以所述第二下载速度下载数据包括:确定与所述第一下载速度相比,所述第二下载速度超过预定义阈值。
7.根据权利要求6所述的方法,其中,确定所述第二下载速度超过预定义阈值包括:使用滑动窗口将所述第二下载速度与历史下载速度进行比较。
8.根据权利要求1所述的方法,其中,以所述第二下载速度将所述第二部分数据下载到所述缓存中,并且其中,所述第一部分数据和所述第二部分数据两者都与多个位率中的第一位率相关联。
9.一种非暂时性计算机可读介质,包含计算机程序代码,当由一个或多个计算机处理器的操作执行时,所述计算机程序代码执行包括以下项的操作:
通过设备以第一下载速度将第一部分数据下载到缓冲器中;
从所述缓冲器输出所述第一部分数据;
在确定所述设备正在以大于所述第一下载速度的第二下载速度下载数据时:
确定对一个或多个后续部分数据使用缓存;以及
将第二部分数据下载到所述缓存中;以及
在确定所述缓冲器为空时,从所述缓存输出所述第二部分数据。
10.根据权利要求9所述的计算机可读介质,所述操作还包括:
在确定所述设备不再以所述第二下载速度下载数据时:
将第三部分数据下载到所述缓冲器中。
11.根据权利要求9所述的计算机可读介质,其中,所述第一部分数据和所述第二部分数据来自与第一数据流相关联的多个部分数据,所述操作还包括:
在确定所述设备正在以所述第二下载速度下载数据时,将来自所述多个部分数据中的所有后续部分数据下载到所述缓存中。
12.根据权利要求11所述的计算机可读介质,所述操作还包括:
在确定已将所有所述多个部分数据下载到所述缓存时:
至少部分地基于所述第一数据流识别第二数据流;以及
将与所述第二数据流相关联的至少一部分数据下载到所述缓存中。
13.根据权利要求9所述的计算机可读介质,其中,所述设备使用第一网络下载所述第一部分数据,并且其中,确定所述设备正在以所述第二下载速度下载数据包括:确定所述设备已经开始使用第二网络下载数据。
14.根据权利要求9所述的计算机可读介质,其中,确定所述设备正在以所述第二下载速度下载数据包括:确定与所述第一下载速度相比,所述第二下载速度超过预定义阈值。
15.一种系统,包括:
一个或多个计算机处理器;以及
存储介质,包含程序,所述程序在由所述一个或多个计算机处理器执行时执行操作,所述操作包括:
通过所述系统以第一下载速度将第一部分数据下载到缓冲器中;
从所述缓冲器输出所述第一部分数据;
在确定所述系统正在以大于所述第一下载速度的第二下载速度下载数据时:
确定对一个或多个后续部分数据使用缓存;以及
将第二部分数据下载到所述缓存中;以及
在确定所述缓冲器为空时,从所述缓存输出所述第二部分数据。
16.根据权利要求15所述的系统,所述操作还包括:
在确定所述系统不再以所述第二下载速度下载数据时:
将第三部分数据下载到所述缓冲器中。
17.根据权利要求15所述的系统,其中,所述第一部分数据和所述第二部分数据来自与第一数据流相关联的多个部分数据,所述操作还包括:
在确定所述设备正在以所述第二下载速度下载数据时,将来自所述多个部分数据中的所有后续部分数据下载到所述缓存中。
18.根据权利要求17所述的系统,所述操作还包括:
在确定已将所有所述多个部分数据下载到所述缓存时:
至少部分地基于所述第一数据流识别第二数据流;以及
将与所述第二数据流相关联的至少一部分数据下载到所述缓存中。
19.根据权利要求15所述的系统,其中,所述系统使用第一网络下载所述第一部分数据,并且其中,确定所述系统正在以所述第二下载速度下载数据包括:确定所述系统已经开始使用第二网络下载数据。
20.根据权利要求15所述的系统,还包括存储器,其中,所述缓冲器是所述存储器的被分配部分,并且其中,所述缓存是所述存储介质的被分配部分。
21.一种方法,包括:
通过设备以第一下载速度将第一部分数据下载到缓冲器中;
从所述缓冲器输出所述第一部分数据;
在确定所述设备正在以大于所述第一下载速度的第二下载速度下载数据时:
扩展所述缓冲器的尺寸;以及
将第二部分数据下载到所述缓冲器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/089,317 US11178198B1 (en) | 2020-11-04 | 2020-11-04 | Buffering data on high bandwidth networks |
US17/089,317 | 2020-11-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114449335A true CN114449335A (zh) | 2022-05-06 |
Family
ID=78332667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111292789.9A Pending CN114449335A (zh) | 2020-11-04 | 2021-11-03 | 在高带宽网络上缓冲数据 |
Country Status (6)
Country | Link |
---|---|
US (4) | US11178198B1 (zh) |
EP (1) | EP3996356B1 (zh) |
JP (2) | JP2022075540A (zh) |
KR (1) | KR102543019B1 (zh) |
CN (1) | CN114449335A (zh) |
BR (1) | BR102021021089A2 (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307367A1 (en) * | 2008-06-06 | 2009-12-10 | Gigliotti Samuel S | Client side stream switching |
JP2012080417A (ja) * | 2010-10-04 | 2012-04-19 | Pioneer Electronic Corp | ストリーミング再生装置、ストリーミング再生方法、コンピュータプログラム及び記録媒体 |
CN104717153A (zh) * | 2013-12-12 | 2015-06-17 | 国际商业机器公司 | 资源过载 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020194609A1 (en) * | 2001-06-18 | 2002-12-19 | Tran Thanh T. | Video client with dynamically allocable video buffer for efficiently streaming video |
AU2003303142A1 (en) | 2002-06-21 | 2004-07-29 | Thomson Licensing S.A. | Multimedia content delivery through wlan coverage area |
US7895629B1 (en) * | 2007-11-07 | 2011-02-22 | At&T Mobility Ii Llc | Video service buffer management in a mobile rate control enabled network |
JP5659154B2 (ja) | 2008-06-06 | 2015-01-28 | アマゾン テクノロジーズ インコーポレイテッド | クライアント側ストリームスイッチング |
US20120054362A1 (en) * | 2010-08-31 | 2012-03-01 | Canon Kabushiki Kaisha | Mechanism for autotuning mass data transfer from a sender to a receiver over parallel connections |
DE102011017387A1 (de) | 2010-12-17 | 2012-06-21 | Epcos Ag | Thermoelektrisches Modul und Verwendung eines thermoelektrischen Moduls |
US8769144B2 (en) * | 2011-05-19 | 2014-07-01 | Mobitv, Inc. | Contextually aware client buffer thresholds |
JP5966265B2 (ja) * | 2011-07-15 | 2016-08-10 | 株式会社リコー | データ転送装置及び画像形成システム |
US8396983B1 (en) | 2012-03-13 | 2013-03-12 | Google Inc. | Predictive adaptive media streaming |
US9462021B2 (en) * | 2012-09-24 | 2016-10-04 | Google Technology Holdings LLC | Methods and devices for efficient adaptive bitrate streaming |
US9300734B2 (en) * | 2012-11-21 | 2016-03-29 | NETFLIX Inc. | Multi-CDN digital content streaming |
US20140369329A1 (en) * | 2013-06-18 | 2014-12-18 | Qualcomm Incorporated | Lte and external wifi bandwidth aggregation |
US10933209B2 (en) * | 2013-11-01 | 2021-03-02 | Georama, Inc. | System to process data related to user interactions with and user feedback of a product while user finds, perceives, or uses the product |
US9680957B2 (en) | 2014-08-11 | 2017-06-13 | Harman International Industries, Incorporated | Adaptive bandwidth consumption optimization for wireless data connections |
US9888053B2 (en) | 2014-08-26 | 2018-02-06 | Opanga Networks, Inc. | Systems and methods for conditional download using idle network capacity |
US10349462B2 (en) * | 2014-09-08 | 2019-07-09 | Liveu Ltd. | Methods and systems for managing bonded communications across multiple communication networks |
US20160198016A1 (en) | 2015-01-05 | 2016-07-07 | Onavo Mobile Ltd. | Techniques for network resource caching using partial updates |
US10277638B2 (en) * | 2015-04-14 | 2019-04-30 | Nokia Of America Corporation | Providing bonded services at a non-anchor node |
US9749293B2 (en) * | 2015-04-20 | 2017-08-29 | Shoelace Wireless, Inc. | Systems for improved mobile internet performance and security |
US10498795B2 (en) | 2017-02-17 | 2019-12-03 | Divx, Llc | Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming |
US20180239729A1 (en) * | 2017-02-20 | 2018-08-23 | Intel Corporation | Increasing media agnostic universal serial bus (ma usb) throughput using multiple parallel tcp connections |
US10448283B2 (en) * | 2017-08-07 | 2019-10-15 | T-Mobile Usa, Inc. | Dynamic predictive buffering |
US10587716B2 (en) | 2017-10-26 | 2020-03-10 | Rovi Guides, Inc. | Systems and methods for optimizing allocation of bandwidth for pre-caching media content |
TWI690202B (zh) * | 2018-12-28 | 2020-04-01 | 瑞昱半導體股份有限公司 | 用於控制媒體播放器中之串流緩衝器的方法與相關的緩衝裝置 |
US11102272B2 (en) * | 2019-12-19 | 2021-08-24 | Wangsu Science and Technology Co., Ltd. | Method and device for downloading resource file |
US11570660B2 (en) * | 2020-03-18 | 2023-01-31 | Connectify, Inc. | Management of data communication connections |
-
2020
- 2020-11-04 US US17/089,317 patent/US11178198B1/en active Active
-
2021
- 2021-09-15 US US17/476,043 patent/US11627174B2/en active Active
- 2021-10-19 JP JP2021170653A patent/JP2022075540A/ja active Pending
- 2021-10-20 EP EP21203753.5A patent/EP3996356B1/en active Active
- 2021-10-21 BR BR102021021089-3A patent/BR102021021089A2/pt unknown
- 2021-11-02 KR KR1020210148658A patent/KR102543019B1/ko active IP Right Grant
- 2021-11-03 CN CN202111292789.9A patent/CN114449335A/zh active Pending
-
2023
- 2023-04-05 US US18/295,885 patent/US11979446B2/en active Active
- 2023-08-16 JP JP2023132507A patent/JP2023156441A/ja active Pending
-
2024
- 2024-05-06 US US18/656,139 patent/US20240291879A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307367A1 (en) * | 2008-06-06 | 2009-12-10 | Gigliotti Samuel S | Client side stream switching |
JP2012080417A (ja) * | 2010-10-04 | 2012-04-19 | Pioneer Electronic Corp | ストリーミング再生装置、ストリーミング再生方法、コンピュータプログラム及び記録媒体 |
CN104717153A (zh) * | 2013-12-12 | 2015-06-17 | 国际商业机器公司 | 资源过载 |
Also Published As
Publication number | Publication date |
---|---|
KR20220060487A (ko) | 2022-05-11 |
BR102021021089A2 (pt) | 2022-05-17 |
EP3996356B1 (en) | 2024-05-08 |
US20240291879A1 (en) | 2024-08-29 |
US20220141274A1 (en) | 2022-05-05 |
KR102543019B1 (ko) | 2023-06-13 |
US20230239334A1 (en) | 2023-07-27 |
US11627174B2 (en) | 2023-04-11 |
JP2023156441A (ja) | 2023-10-24 |
US11979446B2 (en) | 2024-05-07 |
JP2022075540A (ja) | 2022-05-18 |
EP3996356A1 (en) | 2022-05-11 |
US11178198B1 (en) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11527264B2 (en) | Systems and methods for adaptive streaming of multimedia content | |
EP2605144B1 (en) | Method and apparatus for caching | |
EP2897367A1 (en) | Methods and systems of storage level video fragment management | |
US20120195362A1 (en) | System and Method for Managing Cache Storage in Adaptive Video Streaming System | |
US11366758B2 (en) | Method and devices for managing cache | |
US20120194534A1 (en) | System and Method for Managing Cache Storage in Adaptive Video Streaming System | |
US20110296109A1 (en) | Cache control for adaptive stream player | |
US11481145B2 (en) | Dynamically throttling host write data rate | |
US20180109462A1 (en) | Method for optimizing streaming media transmission and cache apparatus using the same | |
US20190020910A1 (en) | Dynamic video delivery for in-home applications | |
US10587676B2 (en) | Transmitting data including pieces of data | |
EP4005175B1 (en) | Dynamic behavior modification for content download and playback | |
KR102543019B1 (ko) | 높은 대역폭 네트워크들 상에서의 데이터의 버퍼링 | |
KR102589694B1 (ko) | 스토리지 장치, 스토리지 장치의 동작 방법, 스토리지 장치를 포함하는 스트리밍 시스템 | |
JP6885351B2 (ja) | 品質予測装置、品質予測方法及びプログラム | |
US20220210488A1 (en) | Method and system for detecting and managing similar content | |
US20200059528A1 (en) | Client-side quality-of-service (qos) for viewing of adaptive bitrate (abr) streams |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |