CN105052160A - 用于向客户端设备流传输媒体内容的方法和装置 - Google Patents

用于向客户端设备流传输媒体内容的方法和装置 Download PDF

Info

Publication number
CN105052160A
CN105052160A CN201380070327.XA CN201380070327A CN105052160A CN 105052160 A CN105052160 A CN 105052160A CN 201380070327 A CN201380070327 A CN 201380070327A CN 105052160 A CN105052160 A CN 105052160A
Authority
CN
China
Prior art keywords
client device
media segment
media
play list
list file
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.)
Granted
Application number
CN201380070327.XA
Other languages
English (en)
Other versions
CN105052160B (zh
Inventor
A·拉马穆尔西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google Technology Holdings LLC
Original Assignee
Google Technology Holdings LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google Technology Holdings LLC filed Critical Google Technology Holdings LLC
Priority to CN201810801505.6A priority Critical patent/CN108600784B/zh
Publication of CN105052160A publication Critical patent/CN105052160A/zh
Application granted granted Critical
Publication of CN105052160B publication Critical patent/CN105052160B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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/23439Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2407Monitoring of transmitted content, e.g. distribution time, number of downloads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4825End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

一种用于向客户端设备(130-134)提供流媒体内容的方法,包括:服务器(108)向客户端设备(130-134)提供(202)标识具有不同编码比特率的多个变体流的变体播放列表文件(120);追踪(208)由客户端设备(130-134)从对应于以第一比特率编码的第一变体流的第一播放列表文件(122-126)下载的第一媒体段集合的序列号;从该客户端设备(130-134)接收(210)对于标识来自以第二比特率编码的第二变体流第二媒体段集合的第二播放列表文件(122-126)的请求;确定(212)在该第二播放列表文件(122-126)中是否标识(214)该第二媒体段集合中具有与来自第一变体流的、由客户端设备下载的任何媒体流相同的序列号的第二媒体段集合中的至少一个媒体段;并且向该客户端设备(130-134)提供(216)该第二播放列表文件(122-126)。

Description

用于向客户端设备流传输媒体内容的方法和装置
技术领域
本公开内容总体上涉及向客户端设备流传输媒体内容,并且更特别地涉及减少客户端设备在变体流之间切换时的网络拥塞。
背景技术
自在因特网上张贴第一幅图像的1992年以来,已经开发了用于跨计算机网络递送媒体的方法,该方法在继续演进。今天,由于与各种可用的具有多媒体能力的设备耦合的较大网络带宽,视频是一种下载的媒体的主要形式。例如,YouTube报告截止到2012年1月,单在其站点上每天就有40亿的视频被观看—其数量在继续增长。
用来支持视频下载的流行标准是超文本传输协议(HTTP)直播流(HLS),其允许在视频完全被接收之前就在客户端设备上开始播放。如因特网工程任务组(IETF)的因特网草案HTTPLiveStreaming公开文本(Pantos&May;第10版;2012年10月15日–2013年4月18日以及所有后续版本(在本文统称为HLS、HLS草案规范或HLS标准))中所描述的,HLS是一种客户端驱动的协议,其将视频呈现划分为离散的块,该块能够分离地被下载并且以连续顺序进行播放。虽然该方法有效地平均利用了网络资源,但是当客户端设备在播放媒体呈现的同时在不同的变体流之间进行切换时,出现了带宽利用的尖峰。
当在HLS标准下从一种变体流变换为具有不用编码比特率的另一种变体流时,客户端设备从每个变体流下载多个(至少一个)对应于正在被播放的媒体呈现的相同部分的媒体段。这使得客户端设备能够在变体流之间同步视频和音频,以用于在回放期间无缝转换。这种方法的缺点在于同时从不同的变体流下载对应于媒体呈现的相同部分的多个媒体段导致网络带宽的使用有所提高。
另外,如果客户端设备转换至比它要从其转换的变体流具有更高编码比特率的变体流,则该客户端设备经常从新的变体流请求与它已经从之前的变体流所下载的媒体段具有相同的媒体内容的附加媒体段。这样做使得客户端设备会清除其较低比特率的媒体段的缓冲,这加快了其针对更高比特率的回放的转换。然而,在时间上相互接近地下载这些具有重复媒体内容的附加媒体段伴随着对于网络资源的需求有所增加的问题。
因此,需要一种用于向客户端设备流传输媒体内容的新颖方法和装置。
附图说明
其中同样的参考标记贯穿单独视图指代相同或功能相似的元件的附图连同以下详细描述一起并入说明书并且形成说明书的一部分,并且用来进一步图示包括所要求保护的发明的概念的实施例,并且对那些实施例的各种原则和优点进行解释。
图1是依据本发明的教导的一些实施例的被配置为流传输多媒体内容的网络设施的框图。
图2是图示依据本发明的教导的一些实施例的用于流传输多媒体内容的方法的逻辑流程图。
图3是依据本发明的教导的一些实施例的在变体媒体流之间进行切换的客户端设备的示意图。
图4a和图4b一起形成图示依据本发明的教导的一些实施例的用于流传输多媒体内容的方法的逻辑流程图。
图5是依据本发明的教导的一些实施例的在变体媒体流之间进行切换的客户端设备的示意图。
图6是依据本发明的教导的一些实施例的在变体媒体流之间进行切换的客户端设备的示意图。
图7是依据本发明的教导的一些实施例的媒体段文件的示意图。
本领域技术人员将意识到,图中的元件是为了简明和清楚而被呈现而并非必须依比例绘制。例如,图中一些元件的尺寸可以相对于其它元件进行放大以帮助促成对本发明实施例的理解。此外,该描述和附图并非必须要求所图示的顺序。将要进一步意识到的是,某些动作和/或步骤可以以特定的发生顺序进行描述或描绘,而本领域技术人员将理解的是,实际上并不要求关于顺序的这样指定。
装置和方法的组成部分已经在图中通过常规符号进行了适当表示,仅示出了与理解本发明的实施例相关的那些具体细节,从而不会由于对于从本文的描述获益的本领域技术人员而言已经显而易见的细节而使得本公开难以理解。
具体实施方式
总体来讲,按照各个实施例,本公开内容提供了一种用于在下载媒体呈现的同时减少客户端设备在变体流之间进行切换的网络拥塞的方法和装置。限制从不同变体流对应于媒体呈现的相同部分的媒体段的下载导致在网络流传输媒体呈现的同时施加于网络上的负载有所减少。通过将媒体段的边界与顺时解码器刷新(IDR)帧跨多个变体流对齐,智能服务器能够取代(override)对于同时媒体段的客户端设备的请求,同时仍然允许设备在不同的编码比特率之间进行无缝切换。
依据本文的教导,一种由服务器执行的用于向客户端设备提供来自多个变体流的媒体段的方法包括:向客户端设备提供标识多个变体流的变体播放列表文件,每个变体流对应于相同媒体呈现的不同编码;并且追踪由客户端设备下载的第一媒体段集合的序列号,其中该第一媒体段集合的媒体段以第一编码比特率进行编码并且在第一播放列表文件中针对在该变体播放列表文件中所标识的第一变体流而被标识。该方法还包括从该客户端设备接收对于第二播放列表文件的请求,该第二播放列表文件标识来自该变体播放列表中所标识的第二变体流的第二媒体段集合,其中该第二媒体段集合中的媒体段以第二编码比特率进行编码;并且基于该追踪确定是否在该第二播放列表文件中标识该第二媒体段集合中与来自第一变体流的、由客户端设备下载的任何媒体段具有相同序列号的至少一个媒体段。该方法进一步包括向该客户端设备提供第二播放列表文件,其标识来自第二变体流中的第二媒体段集合。
在特定实施例中,服务器在第二播放列表文件中标识与来自第一变体流的、已经由客户端设备已经下载的媒体流具有相同序列号的多个媒体段。第二播放列表文件中所标识的与来自第一变体流的、由客户端设备下载的媒体段具有相同序列号的媒体段的数量基于以下各项中的至少一项被确定:对客户端设备可用的网络带宽的数量;或者客户端设备的缓冲器中所存储的媒体内容的数量。
还依据本文的教导的是一种用于在流传输媒体呈现的编码比特率之间切换客户端设备的装置,该流媒体呈现包括:被配置为从客户端设备接收请求并且向客户端设备提供媒体段的接口,其中每个媒体段包括以瞬时解码器刷新帧开始的图片组;和被配置为向该客户端设备提供变体播放列表文件的处理单元,该变体播放列表文件标识每个均对应于相同媒体呈现的不同编码的多个变体流;并且追踪第一播放列表文件中从多个变体流中所标识的、由客户端设备下载的第一媒体段集合的序列号集合,该第一播放列表文件对应于来自多个变体流的、以第一比特率编码的第一变体流。该处理单元还被配置为从客户端设备接收针对第二播放列表文件的请求,该第二播放列表文件标识来自多个变体流的、以第二比特率进行编码的第二变体流的第二媒体段集合;并且从该客户端设备接收针对第二播放列表文件的请求,该第二播放列表文件标识来自多个变体流中的、以第二比特率进行编码的第二变体流的第二媒体段集合。该处理单元进一步被配置为向该客户端设备提供第二播放列表文件,其标识来自第二变体流的第二媒体段集合。
进一步依据本文的教导的是一种具有存储于其上的计算机可读代码的非瞬态计算机可读存储元件,该计算机可读代码用于对计算进行编程以执行一种用于在对应于不同编码比特率的媒体段之间切换客户端设备的方法。该方法包括:向客户端设备提供第一播放列表文件和第二播放列表文件,其中第一播放列表文件标识来自第一变体流的、对应于以第一编码比特率进行编码的媒体呈现的第一媒体段集合,以及第二播放列表文件标识来自第二变体流的、对应于以第二编码比特率进行编码的媒体呈现的第二媒体段集合,其中每个媒体段包括图片组并且能够在不参考其它媒体段的情况下独立解码,并且其中每个媒体段对应于该媒体呈现的一部分。该方法还包括追踪客户端设备已经针对其从第一媒体段集合下载对应的媒体段的媒体呈现的部分;并且从该客户端设备接收对于第二播放列表文件的请求。该方法进一步包括确定是否在该第二播放列表文件中所标识的第二媒体段集合中包括对应于该媒体呈现的追踪部分的一个或多个媒体段,客户端设备已经针对该追踪部分从该第一播放列表中所标识的第一媒体段集合下载对应的媒体段。
现在参考附图尤其是图1,总体上在100指示了包括实施依据本发明的教导的实施例的网络基础设施的系统。系统100所示出的是媒体源102、HLS服务器104(包括HLS处理单元106和web服务器108)、支持HTTP的网络128、链路或连接136-144,以及三个客户端设备,即膝上型计算机130、蜂窝电话132和平板计算机134。HLS处理单元106进而包括处理元件110和磁盘存储库118。此外,HLS处理单元106(本文也简单地称作“处理单元”)被示为包括媒体编码器112、流分段器114和打包器116,在实施例中,它们是由HLS处理单元106执行的功能的逻辑指示。在100为了便于图示仅示出了有限数量的系统元件102-118、128-134,但是该系统中可以包括附加的这种元件。此外,为了清楚描述所包含实施例,从图中省略了系统100的商业实施例所需的其它元件。
现在转向系统100内的元件的简要描述。总体上,被配置为依据HLS草案规范进行操作的HLS服务器104以及其多个构成元件利用依据如以下参考其余附图详细描述的本发明实施例的功能进行改编。客户端设备130-134、媒体源102以及网络128内的基础设施元件也被配置为执行它们相应的功能。如本文所使用的“改编”、“操作”或“配置”意味着所指示的元件使用操作地耦合的一个或多个存储器设备、接口和/或处理设备进行实施。存储器设备、接口和/或处理设备当被编程时,形成用于这些系统元件以实施它们所期望的功能的装置。
接口(未示出但是未用于建立并维持系统元件之间所图示的连接136-144)用于输送信令,该信令在本文也被称作消息(例如,消息、分组、数据报、帧、超级帧等),其包含系统100的元件之间的控制信息、语音或非语音媒体。接口在任意特定元件中的实施方式取决于该元件与其连接的网络的特定类型,即有线和/或无线。例如,客户端设备包含无线接口(用来建立无线连接)以接合至支持HTTP的网络128,并且HLS服务器104可以包含有线接口(用来建立有线连接)以连接到被包含在网络128中的基础设施设备。有线接口的示例包括以太网、T1、USB接口等。无线接口的示例包括无线协议和相关联的硬件,其支持包括但并不局限于长期演进(LTE)、CDMA、GSM、WiFi等的技术。
在系统100支持无线通信的情况下,该接口包括组件,该组件包括依据任意的一种或多种标准或者专有无线接口进行操作的处理、调制和收发器组件,其中处理、调制和收发器元件的一些功能可以借助于一个或多个处理设备并通过编程逻辑或者通过硬件来执行,上述编程逻辑诸如存储在系统元件的存储器设备上的软件应用或固件。在特定实施例中,由接口维持的连接136-144是因特网协议(IP)连接。
由系统100的元件采用的处理设备(例如,HLS处理单元106和处理元件110)可以部分以硬件实施,并且因此利用软件、固件逻辑或代码进行编程以用于执行例如参考图2-7所描述的它们的功能;和/或处理设备可以完全以硬件进行实施,例如被实施为状态机或ASIC(专用集成电路)。由这些系统元件实施的存储器(例如,磁盘存储118)可以包括相应元件的功能所需的各种信息的短期和/或长期存储。存储器可以进一步存储软件或固件以便利用执行其功能所需的逻辑或代码对处理设备进行编程。
再次返回系统100的元件的详细描述,在本文可互换地被称作“服务器”的HLS服务器104对贯穿这些教导所描述的方法以用于向客户端设备流传输媒体内容并且优化网络性能。为了完成这个,HLS服务器104包括在本文可互换地称作“计算机”的处理元件110,例如其可以经由具有存储于其上的计算机可读代码的非瞬态计算机可读存储元件进行编程。
媒体源102被对接到HLS服务器104,其在连接136上向HLS处理单元106内的媒体编码器流传输媒体内容。在可替换实施例中,媒体编码器112可以位于HLS服务器104之外。媒体源102流传输特定格式的媒体,其是经压缩(例如,有损)或未压缩(例如,无损)的。流传输的媒体是在由有流传输媒体源递送(即,流传输)的同时由客户端设备被连续接收并呈现的媒体。如果媒体内容被压缩,则媒体编码器112将该媒体从一种压缩格式转码为另一种压缩格式。在媒体内容未被压缩的情况下,媒体编码器112对媒体流进行编码。在特定实施例中,独立于从媒体源102接收到的媒体流的格式,从媒体编码器112输出的流使用MPEG-4媒体压缩(例如,MPEG-4的第10部分的具有先进音频编码(AAC)音频压缩的先进视频编码(AVC)/H.264视频压缩)进行编码并且使用MPEG-2传输流容器格式进行封装。然而,这样的实施例并不作为限制,并且可以使用其它形式的编码和/或封装来实施本文所描述的教导。
在一个实施例中,媒体编码器112将其所接收的来自媒体流的多个变体流进行转码或编码,其中每个变体流对应于不同的编码比特率和/或分辨率。如本文所使用的,编码比特率是指编码的媒体流或文件的信息密度,尤其是指回放时间的每单位的比特数目。通常,较高的编码比特率对应于有所提高的回放质量,并且还对应于需要更多带宽和/或时间进行下载的更大文件。用于媒体流的编码比特率例如可以通过每秒钟编码更少的帧、减小帧的大小、减少颜色数目、针对单声道而不是多通道音频进行编码或者使用更有效的压缩(这可能要求更大的客户端侧处理能力以用于解码)而有所降低。
如本文所使用的术语“编码”是指媒体文件或流内的数据如何被格式化。呈现相同内容的两个变体流在它们具有不同编码比特率的情况下具有不同编码。呈现相同内容的两个变体流还可以在它们的编码比特率相同的情况下对应于不同编码。例如,可能的情形是,分别地,其中一个变体流针对以较低速率呈现的较高分辨率的帧格式化而另一个则针对以较高速率呈现的较低分辨率的帧格式化。
针对各个实施例,HLS服务器、客户端设备130-134和媒体源102全部以不同程度控制由媒体编码器112产生的变体流的编码比特率。例如,在一个实施例中,当从媒体源102接收到标清媒体内容时,媒体编码器112将编码比特率限制为每秒钟2兆比特(Mbps)及更低。当接收高清媒体内容时,媒体编码器112能够产生具有4Mbps的编码比特率的变体流。在另一个实施例中,处理元件110将指导媒体编码器112产生具有允许HLS服务器104执行如本文所描述的其功能的编码比特率的变体流。在进一步的实施例中,HLS服务器104内的媒体编码器112响应于从客户端设备130-134所接收的请求或者响应于由管理员或程序员输入的参数产生具有特定编码比特率的变体流。
流分段器114接收由媒体编码器112输出的多个变体MPEG-2传输流,并且将每个变体MPEG-2传输流细分或划分为较短持续时间(通常处于1至10秒之间,虽然处于该范围以外的持续时间也是可能的)的媒体段文件的序列。在本领域中有时被称作“块”的媒体段文件在本文也被称作“媒体段”。如本文所使用的,术语“持续时间”被定义为由客户端设备以正常速度(即,流传输的呈现的预期回放速度)播放媒体段文件或流部分的回放时间。媒体段文件随后从流段器114被传送至打包器116,该打包器针对具体传递协议来准备它们。在特定实施例中,例如,该传递协议支持HTTP拉动模型下的HTTPGET请求。
系统100将来自打包器116的媒体段文件存储在磁盘存储库118内以便web服务器108进行访问并分布。磁盘存储库118是包括快闪存储器、固态设备或者具有其上以数字方式记录数据的表面层的一个或多个旋转盘片(例如,独立磁性硬盘的阵列)。如图1所示,磁盘存储118位于HLS服务器104的HLS处理单元106内。然而,可替换实施例允许媒体段文件存储在HLS处理单元106以外。可能的位置包括web服务器108内、HSL服务器104内部但是web服务器108外部、或者HLS服务器104外部。此外,替代设备可以用于媒体段文件的存储,诸如光学驱动器以及其它兼容技术。
web服务器108将存储在118中的媒体段文件递送(即,提供)到客户端设备130-134。web服务器108的功能可以被实施为硬件(即,物理服务器)、软件(即,计算机程序)或者二者的组合。另外,物理web服务器能够位于HLS服务器104内部(如所示出的)或外部。如在120所指示的,web服务器108通过使得变体播放列表文件(本文也被称作变体播放列表)对一个或多个客户端设备可访问来发布(即,供应)变体播放列表文件。在一个实施例中,HLS服务器104的处理单元106被配置为向客户端设备提供具有与HLS相兼容的格式的变体播放列表文件并且使用HTTP来向客户端设备提供媒体段。
变体播放列表文件120用作包含指向个体播放列表122-126(本文也称作播放列表文件)的条目的目录,上述个体播放列表进而包含指向来自变体流的个体媒体段文件的条目。如本文所使用的,“指针”是通过其web服务器指引被指向的资源的手段。指针的示例是统一资源定位符(URL)。web服务器108能够将URL的路径分量映射到用于静态请求的本地文件系统资源以便进行静态请求,或者映射到程序名以便进行动态请求。URL的第一部分包括由域名服务器映射至web服务器108的IP地址的域名。URL的其余部分(路径分量)包括相对于web服务器108的根目录的路径,其由用于客户端设备的用户代理转换为HTTPGET请求。
系统100将由web服务器108所发布的每个单个播放列表与具有特定编码比特率的变体流相关联。例如,播放列表A122可能包含指向来自以每秒60帧的、以高清电视(HDTV)格式(即,1280×720像素)编码的变体流的媒体段文件的URL,而播放列表B124中的URL则可能指向来自以每秒钟30帧的、以超级视频图形阵列(SVGA)格式(即800×600像素)编码的变体流的媒体段文件。播放列表和变体播放列表文件还可以包含信息标签,该信息标签在一些实施例中包括文件内的注释行,其传达关于所描述的变体流和媒体段文件的信息。在其它实施例中,例如,元数据使用数据容器而被嵌入媒体段文件内,上述数据容器诸如ID3(如信息标准文档所描述的:id3v2.4.0-structure.txtandid3v2.4.0-frames.txt(M.Nilsson;2000年11月1日以及所有后续版本))。元数据容器允许关于文件的信息被存储在文件本身之中。
除了直播流之外,本文所给出的教导还能够被应用于点播视频(VOD)。对于VOD而言,在客户端设备做出对于呈现的请求(即,需求)时存在媒体呈现(即,视频)的完整媒体段文件集合。该完整媒体段集合表示整个呈现的完整编码,其能够在用于向客户端设备中流传输个体段文件的播放列表中进行标识。作为比较,对于直播流而言,HLS服务器104接收对于媒体呈现的客户端设备的请求,同时其仍然处于接收呈现并且为其创建媒体段文件的过程之中。在直播流过程期间的任意给定时间,媒体段文件仅可用于已经被流传输至HLS服务器104的媒体呈现的部分。正在被流直播的呈现的播放列表文件仅包含指向可用媒体段的条目。在特定实施例中,与HLS草案规范相符,直播流的播放列表文件包含固定数量的媒体段(例如,3个媒体段)的条目。在HLS服务器104所创建的每个新的媒体段的条目被添加至播放列表时,较旧的媒体段的条目被移除。以这种方式,播放列表文件表示“滑动窗口”,其在播放列表追踪正被流传输的直播媒体呈现时实时地使得固定数量的“当前”媒体段文件进行“成帧”。
在128所示出的支持HTTP的网络将客户端设备130-134通信耦合至HLS服务器104。其表示使用HTTP协议栈来管理信息交换的计算机网络。在特定实施例中,支持HTTP的网络128针对其应用、传输和因特网层(例如,因特网)分别使用HTTP、传输控制协议(TCP)和IP协议。HLS服务器104使用中继网络分组(即,数据报)的连接138向客户端设备130-134发送并从客户端设备130-134接收数据和消息。在136所示的连接允许HLS服务器104从媒体源102接收流媒体并且向媒体源102中继控制信号。
膝上型计算机130、蜂窝电话132和平板计算机134全部是支持基于音频和/或视频的媒体文件的回放的客户端设备。客户端设备是能够与HLS服务器104进行交互以下载并缓冲媒体内容的、具有存储能力的电子设备。除了这些特定设备之外,本文的教导还应用到便携式媒体播放器(PMP)、游戏控制台以及能够下载并播放媒体文件的其它电子设备。在实施例中,每种类型的客户端设备具有定义其回放特性的不同能力集合,诸如但并不限于屏幕尺寸、缓冲器容量、处理(例如,解码)能力以及存储在其缓冲器中以开始回放的最小段数量。
现在转向依据本文的教导并且参考其余附图而对系统100的元件的功能所进行的详细描述。图2是图示系统100的个体元件如何一起进行操作以执行向在130-134所示的一个或多个客户端设备流传输媒体内容的方法。特别地,图2示出了HLS服务器104如何执行方法200,以用于客户端设备在下载流传输的媒体呈现的时在编码比特率之间进行切换时减少放在网络128上的负载。在202,HLS服务器104为客户端设备(例如,膝上型计算机130)提供标识多个变体流的变体播放列表(例如,变体播放列表120)文件。在特定实施例中,向客户端设备提供变体播放列表120的HLS服务器104包括发布该变体播放列表120的web服务器108。变体播放列表120能够专门针对特定客户端设备、客户端设备的集合进行发布,或者使得其对能够与HLS服务器104进行连接并且从其接收流传输内容的所有客户端设备可访问。
由变体播放列表120标识的多个变体流中的每个变体流对应于相同媒体呈现的不同编码。因此,每个变体流具有相同的内容和持续时间,即该呈现的内容和持续时间。呈现可以具有开放端点的(即,非确定的)持续时间,例如其中其表示与电视或无线电站点相关联的直播馈送,或者其可以是已知的有限持续时间,诸如在该呈现表示归档影片或视频片段(即,VOD)的情况下。
在实施例中,变体播放列表120标识诸如图1在122-126所示出的那些的单个播放列表。对于在变体播放列表120中所标识的每个变体流,列出将客户端设备指向相对应的播放列表的指针,该播放列表进而包括针对属于该变体流的媒体段的标识符。在一个实施例中,标识符是统一资源标识符(URI),其包括URL和统一资源名称(URN)。URL用作如以上所指示的指定媒体段的位置或者正由URN标识的其它文件类型的指针。
从变体播放列表120中所标识的变体流,作出客户端侧的选择以便下载优选编码。该选择可以基于指定偏好的用户输入,针对特定屏幕分辨率的期望,或者例如来自客户端设备内的编程的结果。出于该示例的目的,客户端设备选择对应于第一编码比特率的第一变体流。其随后使用支持HTTP的网络128将其选择作为HTTPGET请求传输至HLS服务器104。
在204,HLS服务器104从客户端设备接收作为针对第一播放列表文件的第一请求的请求。该第一播放列表文件提供了第一标识符集合,该第一标识符集合将第一客户端设备指向来自变体播放列表文件120中的多个变体流中的第一变体流的第一媒体段集合,其中该第一媒体段集合对应于第一编码比特率。术语“集合”在本文被定义为具有一个或多个元件。针对图1中所描绘的实施例,该请求由位于HLS服务器104内的web服务器108接收。随后,与该请求相关联的信息在内部被传输至处理元件110以及依据本文的教导处理请求所需的任意其它元件。
临时转向图7为了更详细地描述播放列表文件所标识的媒体段,在700总体上示出并指示了表示三种编码比特率的媒体段的示意图。在一个实施例中,包括容器、编码视频和音频内容并且可能包括加密协议的媒体段表示被单独下载并且随后以正确的连续顺序进行播放的流传输媒体呈现的部分。客户端设备通过将媒体段从远程存放的地方(即,远离客户端设备)复制或者传输至其由客户端设备所拥有的存储或存储器本地保存的地方而下载媒体段。媒体段内的视频信息被编码为一系列帧,其中每个帧表示时间快照。存在两种基本的帧类型:独立帧,其可以在不参考任何其它帧的情况下进行解码;以及从属帧,其通过参考之前和/或连续帧而被解码。包括一个独立帧以及从属于其的所有帧的帧序列被定义为图片组(GOP)。每个GOP是子包含的,即其包含用于对其进行完整解码的所有信息并且因此能够在不参考另一个GOP的情况下被独立解码(即,能够被解码)。
更具体地,图7分别在702、704和706示出了用于三个变体流—高比特率流、低比特率流和中等比特率流—的媒体呈现的相同部分。每个媒体段内所显示的实体动画的密度与其编码比特率成比例,其对于变体流702的媒体段而言是最高的而对于变体流704的媒体段而言是最低的。所示出的每个媒体段的持续时间与其长度成比例。在实施例中,每个变体流由单个MPEG-2传输流(.ts)文件所组成,该单个MPEG-2传输流(.ts)文件通过指示变体流的文件名所标识并且包括定义变体流内媒体段的相对顺序的序列号。例如,变体流702在时间索引t=t0以媒体段“高-1.ts”(未示出)作为开始,并且针对每个连续媒体段,该序列号加1递增。所示出的具有序列号12-15的四个媒体段跨度从时间索引t=t11至时间索引t=t15进行播放的媒体呈现的部分。一般在客户端设备处缓冲的媒体段的回放是背靠背的并且在没有中断的的情况下发生。图7中所示的段之间的间隔仅是被包括以图示出每个媒体段包括以IDR帧开始的图片组。
处于每个媒体段开头的IDR帧的位置由“IDR”标签指示。IDR帧是指定没有其之后的帧能够引用其之前的任何帧的特定类型的独立帧。IDR帧被标记,以使得当接收到一个IDR帧时,客户端设备能够将清空其与之前GOP相关联的任何帧的解码缓冲器。通过HLS服务器104依据如所示出的本文的教导来将IDR帧置于每个媒体段的开头并且将它们跨变体流进行对齐,在不必从每个变体流下载一个或多个对应于相同呈现部分的重复的媒体段的情况下,客户端设备能够在播放流传输的媒体呈现时在变体流之间进行切换。
可能由于网络拥塞,接收高比特率变体流702的客户端设备例如需要切换至低比特率的流704。在没有下载对应于已经由该客户端设备所缓冲的媒体呈现部分的任何低比特率媒体段的情况下,该客户端设备能够使得在时间索引t=t12、t=t13或t=t14处切换而。作为比较,在两个变体流之间的媒体段和IDR帧并未对齐而是有所重叠的情况下,就必须要下载具有媒体呈现的一部分的重复内容的至少一个媒体段以使得两个流的回放同步并且将客户端设备指向新流中的下一个IDR帧。例如,将之前示例中的低比特率媒体段在时间上提前其一半的持续时间将使得客户端设备在该媒体呈现中足够提前之前下载并播放媒体段“高-14.ts”,以解码媒体段“低-14.ts”并且开始播放低比特率的变体流704。
中等比特率的变体流706的媒体段被示出为具有来自702和706的其它两个变体流的媒体段的两倍持续时间。当存在与在客户端和HLS服务器104之间传送消息相关联的相对大的延迟时(与平均值相比),具有以更长持续时间对媒体段进行编码的有点。对于“更为远离”HLS服务器104的客户端设备而言,数据报需要更长时间段来到达其目的地,这是因为它们通过更多“路径点”进行中继。HLS服务器104通过测量其发出数据报与其接收到返回的确认之间的时间来确定客户端设备的传输延迟。
将媒体呈现的一部分划分为更短持续时间的媒体段导致了更多数量的文件。这要求第一客户端设备向HLS服务器104传送更多数量的请求以获得那些文件。由于与多个文件相关联的传输延迟是累加的,所以与向客户端设备提供短持续时间的媒体段相关联的更快比特率变换的任何好处都可能由于需要发送更多的请求而被抵消。为此,一些实施例包括更长持续时间的媒体段。在700所示的特定实施例中,706的中等比特率的变体流的媒体段和IDR帧在时间索引t=t13处仍然与变体流702和704的相对齐。这允许客户端设备在没有下载重叠的媒体段的情况下在该对准点和其它对准点向和从中等比特率的变体流706切换。
现在参考图2,响应于第一请求,HLS服务器104在206向客户端设备提供第一播放列表文件206。当客户端设备从第一播放列表文件中所标识的第一变体流下载媒体段以开始(或继续)回放媒体呈现时,HLS服务器104在208追踪所下载媒体段的序列号。如本文所使用的序列号是被分配给变体流中的、定义它们的相对播放顺序的媒体段的顺序编号。因为媒体段是表示媒体呈现的单个连续块,所以具有较低序列号的媒体段对应于该呈现中的较早部分并且在具有对应于该呈现的较晚部分的较高序列号的媒体段之前进行播放。如本文所使用的,追踪是HLS服务器104通过其而登记和记录已经由客户端设备所下载的媒体段的过程。对于一个实施例而言,HLS服务器104保留来自由客户端设备所下载的变体流的所有媒体段的记录。在另一个实施例中,HLS服务器104仅保留来自变体流的最近追踪的媒体段的子集。例如,HLS服务器104仅保留当前驻留在客户端设备的缓冲器中的追踪媒体段。
对于一些实施例,HLS服务器104是能够追踪媒体段的状态服务器。状态服务器是保留从与客户端设备的通信交互接收的客户端数据(即,状态数据)的服务器。在一个实施例中,HLS服务器104询问连接的客户端设备130-134的它们的硬件和/或软件配置。在另一个实施例中,HLS服务器104被动地接收客户端设备130-134嵌入在所发送的请求中的配置信息。该客户端数据以累加的方式逐个请求地被存储并且由HLS服务器104在对那些请求进行处理时加以利用。对于特定实施例,HLS服务器104确定由客户端设备保留的缓冲媒体的持续时间(即,其所存储的回放时间),这对应于由客户端设备接收的媒体段的总持续时间与已经在其上接收媒体段的过去的时间之间的差值。将所存储的回放时间除以所下载媒体段的持续时间(其中每个媒体段具有相同的持续时间)允许HLS服务器104确定客户端设备的缓冲器中当前的媒体段的数量n,其对应于由服务器104追踪的最后n个序列号。
在210,HLS服务器104从客户端设备接收针对第二播放列表文件的第二请求,该第二播放列表文件标识来自第二变体流的、以第二编码比特率编码的第二媒体段集合。在一个图示性的实施方式中,第二编码比特率第一编码比特率。针对低编码比特率的请求例如可以来自检测到可用网络带宽的下降的客户端设备,或者希望减少由客户端设备用于流传输特定媒体呈现的资源数量的用户。
在确定(212)客户端设备已经请求了较低编码比特率之后,HLS服务器104仅在第二播放列表文件中标识(214)对应于媒体呈现的一个或多个部分的、与追踪的部分不同的媒体段,客户端设备已经针对该追踪的部分从第一媒体段集合下载对应的媒体段。对于特定实施例,响应于对于第二播放列表文件的请求,第二播放列表文件针对客户端设备被动态创建。这保证了HLS服务器104并不会在第二播放列表文件中标识对应于已经由客户端设备下载的媒体呈现部分的媒体段。如本文所使用的术语“动态”表示响应于事件(例如,对于第二播放列表的请求)而发生的动作(例如,创建第二播放列表)。这允许该动作基于事件发生时存在的条件(例如,第二播放列表中并不包括对应于已经下载的媒体呈现部分的媒体段)。
针对实施例,当第二编码比特率低于第一编码比特率时,第二播放列表文件仅标识具有与来自第一变体流的、由客户端设备下载的媒体段的序列号不同的序列号的媒体段。在进一步的实施例中,第二播放列表文件仅标识具有超过来自第一变体流的、由客户端设备下载的媒体段的最高序列号的序列号的媒体段。例如,在媒体呈现为VOD呈现并且第一播放列表文件标识媒体呈现的所有媒体段的实施例中,第二播放列表文件仅标识媒体呈现的其余部分中具有高于来自第一变体流的、由客户端设备下载的最后媒体段的序列号的序列号的所有媒体段。
使用对应于第二媒体段集合的统一资源定位符集合或信息标签集合中的至少一个来标识第二媒体段集合。例如,在其中媒体呈现为VOD呈现的一个实施例中,第二播放列表文件包含指向播放列表文件内所标识的单个媒体段的URL。在媒体呈现为流直播的另一个实施例中,HLS服务器104仅在第二播放列表文件中放入还没有被创建的媒体段的信息标签,其并没有URL。
在216,HLS服务器104向客户端设备提供第二播放列表文件,这使得该客户端设备能够切换至第二变体流并且继续播放媒体呈现。在第一实施例中,当客户端设备正在从第一播放列表文件下载媒体段时,由HLS服务器104接收(210)对于第二播放列表文件的第二请求,服务器104在发布第二播放列表文件之前进行等待,直至客户端设备完成下载媒体段。在第二实施例中,HLS服务器104在第二播放列表文件中标识具有与正由客户端设备正下载的第一播放列表文件中的媒体段相同序列号的媒体段。这是出现在第二播放列表文件中的最低序列号。当客户端设备接收到第二播放列表文件时,其中止从第一播放列表文件下载媒体段并且开始从第二播放列表文件下载具有相同序列号的媒体段。
图3在300示出了图示依据本发明的教导的一些实施例的客户端设备在播放媒体呈现的同时在变体流之间进行切换的示意图。示意图300表示了当其从以“高”比特率进行编码的第一变体流切换至以“低”比特率进行编码的第二变体流时播放媒体呈现的一部分的客户端设备(未示出)。箭头指示分别在302、304、308、310、314和316回放的媒体段高-10.ts、高-11.ts、高-12.ts、高-13.ts、低-14.ts和低-15.ts的播放顺序。正在播放的段下面出现的媒体段表示客户端设备此时所缓冲的内容,其中出现在“+”符号下面的媒体段正在被积极地流传输至客户端设备(即,处于被添加至其缓冲器的过程之中)。虽然出于说明的目的而示出了两个媒体段要由客户端缓冲,但是针对图2还有图5和图6而言,所缓冲的媒体段的实际数量可以有所变化。对于特定实施例,所缓冲的媒体段的数量取决于参数数量,该参数可以包括媒体段的持续时间、客户端设备的缓冲器容量以及到客户端设备的网络连接的带宽。
在300示出了三个活动层级。最上级表示在从该相同流接收媒体段时播放来自第一变体流的高比特率媒体段的客户端设备。在中间层级,客户端设备从在播放来自其缓冲器的高比特率媒体段时从第二变体流接收低比特率媒体段。在最低级,客户端设备从第二变体流接收并播放低比特率媒体段。出现在306和316的“X”符号表示标识层级之间的转换点。
在302,客户端设备在下载高-10.ts时对其进行播放并且将高-12.ts添加至其缓冲器。在图3的该详细解释中,并且同样针对图5和6,在通过名称提到特定媒体段时舍弃词语“媒体段”。这样做是考虑到简明性。例如,媒体段高-10.ts在本文被简称为“高-10.ts”。在304,在完成媒体段高-10.ts的回放之后,客户端设备继续播放序列中的下一个媒体段高-11.ts,其在302已经被缓冲。在客户端设备在304播放高-11.ts时,高-13.ts被流传输至器缓冲器。在特定实施例中,使用HTTP来向客户端设备递送每个媒体段。
转换点306表示客户端设备响应于可用网络带宽的下降而开始转换到第二变体流的时刻。其对应于客户端设备在图2中的210请求第二播放列表文件的时间。在308和310,客户端设备继续播放高-12.ts和高-13.ts,它们是转换点306之前存储在其缓冲器之前的最后两个媒体段。在图2中的216,在播放剩余的高比特率媒体段时,客户端设备下载由HLS服务器104提供的第二播放列表文件中所标识的低比特率媒体段低-14.ts和低-15.ts并且将它们添加至其缓冲器。当第一变体流的第一编码比特率超过第二变体流的第二编码比特率时,HLS服务器104内的处理单元106被配置为仅在第二播放列表文件中标识来自第二变体流的、具有超过所追踪序列号集合中的最高序列号的序列号的媒体段。在这种情况下,第二播放列表文件中所标识的第一媒体段低-14.ts具有序列号14,其与客户端设备所下载的最后的高比特率媒体段的序列号相比超出了1。
在转换点312,客户端设备已经用完了其对应于第一变体流的所有高比特率媒体段的缓冲,并且其继续播放来自第二变体流的低比特率媒体段。在314和316,客户端设备播放分别在308和310所下载的低-14.ts和低-15.ts。在314和316,客户端设备还下载低-16.ts和低-17.ts并且将它们分别添加至其缓冲器以供后续回放。在一个实施例中,客户端设备针对其余的媒体呈现继续从第二变体流下载并播放媒体段。在另一个实施例中,客户端设备在播放该媒体呈现时再次转换至另一个变体流。针对特定实施例,在恢复充分的网络带宽之后,客户端设备从低比特率变体流转换回高比特率变体流。在另一个实施例中,在恢复充分的网络带宽之后,客户端设备从低比特率变体流变换至中等比特率变体流。
图4是图示系统100的单个元件如何一起进行操作以执行向130-134所示的一个或多个客户端设备流传输媒体内容的另一个逻辑流程图。特别地,图4示出了HLS服务器104如何执行用于将播放媒体呈现的客户端设备转变为具有更高编码比特率的变体流方法400。在402-408,HLS服务器104分别执行针对图2在202-208所描述的相同动作。也就是说,向客户端设备提供(402)标识具有不同编码比特率的变体流的变体播放列表,从客户端设备接收(404)针对标识来自第一变体流的、以第一比特率编码的第一媒体段集合的第一播放列表文件的第一请求,向客户端设备提供(406)第一播放列表,并且追踪(408)来自第一变体流、由客户端设备下载的媒体段的序列号。
在410,HLS服务器104从客户端设备接收对于第二播放列表文件的第二请求,该第二播放列表文件标识来自以高于第一编码比特率的第二编码比特率进行编码的第二变体流的第二媒体段集合。对于更高编码比特率的请求例如可能是由于客户端设备检测到网络条件的改善,或者是用户寻求提高特定媒体呈现的回放质量。
在确定(412)客户端设备已经请求更高编码比特率之后,HLS服务器104在414检查能够分配给客户端设备的可用网络带宽是否大于阈值带宽。该阈值带宽可以是静态数值或者由程序确定的动态数值,并且取决于由客户端设备在410所请求的第二播放列表文件中所标识的媒体段的特定比特率。在实施例中,系统管理员设置静态阈值带宽。在另一个实施例中,处理元件110基于同样可以由系统管理员设置的具体参数来设置作为第二请求比特率的函数的动态阈值带宽。例如,该阈值带宽可以利用被指定为参数的斜率和基线(例如,y截距)来对第二请求比特率具有线性依赖性。
如果在414所确定的可用网络带宽并不大于阈值带宽,则HLS服务器104(在416)在第二播放列表文件中仅标识对应于媒体呈现中的被追踪部分以外的一个或多个部分的媒体段,客户端设备已经针对其从第一媒体段集合下载对应的媒体段的。作为备选,如果可用网络带宽大于阈值带宽,则HLS服务器104(在418)在第二播放列表文件中标识对应于媒体呈现中的一个或多个被追踪部分的多个媒体段,客户端设备已经针对其从第一媒体段集合下载对应的媒体段。在一个实施例中,第二播放列表文件中所标识(418)的、对应于媒体呈现的一个或多个被追踪部分的媒体段的数目小于由客户端设备请求的、对应于媒体呈现的一个或多个被追踪部分的媒体段的数目。
针对一些实施例,HLS服务器104使用在408针对从第一变体流所下载的媒体段而追踪的序列号来确定来自第二变体流的、具有相同内容的媒体段。在特定实施例中,例如图7中分别针对704和702处的低和高比特率变体流所示的,来自第一和第二变体流的媒体段具有相同持续时间并且互相对齐。来自两个变体流的、具有相同序列号的媒体段对应于媒体呈现的相同部分并且因此具有相同的媒体内容。
对于一些实施例,当可用网络带宽小于阈值代带宽并且第二编码比特率高于第一编码比特率时,第二播放列表文件仅标识(416)具有与来自第一变体流的、由客户端设备所下载的媒体段的序列号不同的序列号的媒体段。如果可用网络带宽大于阈值带宽,则第二播放列表标识(418)与来自第一变体流的、由客户端设备所下载的媒体段具有相同序列号的媒体段的数量。在特定实施例中,第二播放列表文件中所标识(418)的与来自第一变体流的、由客户端设备下载的媒体段具有相同序列号的媒体段的数量小于与来自第一变体流的、客户端设备下载的媒体段具有相同序列号的请求的媒体段的数量。
一旦HLS104在第二播放列表文件中标识出媒体段,该播放列表就在420被发布。随后,客户端设备下载第二播放列表文件中所标识的媒体段以继续将媒体呈现的回放切换至更高编码比特率的过程。
图5和6分别是依据本发明的教导一些实施例的客户端设备从低比特率变体流切换至高比特率变体流的示意图。在图5中,特别地示出了在第二播放列表文件中所标识的第二媒体段集合并不对应于由客户端设备已经下载的媒体呈现的任何部分的实施例。这是当可用网络带宽在图4中的414低于阈值带宽时的情形。
在502,客户端设备正在播放来自以低比特率进行编码的第一变体流的媒体呈现。其在下载低-12.ts并将低-12.ts添加至其缓冲器时播放低-10.ts,该缓冲器已经包含低-11.ts。当客户端设备完成播放低-10.ts时,其在504开始播放低-11.ts,同时其下载低-13.ts并将低-13.ts添加至其缓冲器。在转换点506,客户端设备开始转换高比特率变体流。点506对应于图4的410中请求第二播放列表文件的客户端设备。在508,客户端设备已经变换为从高比特率变体流下载媒体段,同时仍然播放保留在其缓冲器中的低比特率媒体段。客户端设备分别在508和510播放低-12.ts和低-13.ts,同时下载高-14.ts和高-15.ts。
在512达到下一个转换点。在这里,客户端设备已经用尽了其从低比特率变体流所下载的媒体段的缓冲,并且开始播放从高比特率变体流所下载的媒体段。在514,客户端设备播放已经在508被下载并且被缓冲的高-14.ts,同时其下载并缓冲高-16.ts。在514和516,客户端设备已经完全变换至高比特率回放。
图6所示的示意图与其中第二变体流的第二编码比特率超过第一变体流的第一编码比特率时的实施例一致,处理单元106被配置为在第二播放列表文件中标识来自第二变体流的、与所追踪的序列号集合中的序列号具有相同序列号的媒体段的数目。该实施例用作向客户端设备的用户提供更为享受的回放体验同时还促进更为有效地利用网络资源(例如,带宽)之间的折中。
在602,客户端设备在下载低-14.ts并将低-14.ts添加至其缓冲器的同时播放低-10.ts。类似地,在604,客户端设备在下载低-15.ts并将低-15.ts添加至其缓冲器的同时播放低-11.ts。客户端设备在606请求第二播放文件并且开始转换到高比特率变体流。在608,在从其缓冲器播放低-12.ts的同时,客户端设备利用在第二播放列表文件中所标识的媒体段高-14.ts和高-1.ts来替换其缓冲器中所存储的媒体段低-14.ts和低-15.ts。在这里,来自第二变体流的、具有与所追踪序列号集合中的序列号相同的序列号的媒体段的数目(即,2)小于从第二变体流所请求的、具有与所追踪序列号集合中的序列号相同的序列号的媒体段的数目(例如,3)。
在608,在客户端设备的缓冲器中示出了四个媒体段:低-12.ts、低-13.ts、低-14.ts和低-15.ts。正在播放的是低-12.ts,而其它三个的播放还没有开始。HLS服务器104在了解客户端设备已经请求增加的编码比特率形式的有所改善的回放质量的情况下能够以多种方式继续进行。在第一实施例中,如果有充足的网络带宽可用,则HLS服务器104允许客户端设备利用高比特率媒体段来替换其缓冲器中的所有低比特率媒体段。HLS服务器104通过在第二播放列表文件中标识来自第二变体流的、具有与所追踪序列号集合中的序列号(即,客户端设备的缓冲器中的低比特率媒体段的序列号)相同的序列号的媒体段而实现该目的。通过允许客户端设备从其缓冲器清空并替换所有低比特率媒体段,HLS服务器104向其提供最高质量的回放体验。
在第二且对立的实施例中,可用网络带宽非常珍贵,并且HLS服务器104偏向于更为有效地利用网络资源。在这里,HLS服务器104通过标识其高比特率对等对象—第二播放列表文件中的媒体段高-15.ts—来允许客户端设备仅替换其缓冲器中的一个低比特率媒体段,也就是低-15.ts。与对应于图5的其中没有替换所缓冲的媒体段的实施例相比,这允许客户端设备稍微更快地转换到高质量(即,较高比特率)的回放。
第三实施例在之前两种情形之间提供了折中,其中缓冲器中并非所有但也多于一个的低比特率媒体段被包含相同媒体内容的高比特率媒体段所替换。这是图6所图示的实施例。在608,如朝下箭头所指示的,低-14.ts和低-15.ts从客户端设备的缓冲器被移除,并且通过从第二变体流向缓冲器增加高-14.ts和高-15.ts而被替代。
在第三实施例的特定变化形式中,处理单元106被配置为基于以下各项中的至少一项来确定来自第二变体流的、具有与所追踪序列号集合中的序列号相同的序列号的替换媒体段的数量:对客户端设备可用的网络带宽的数量;或者客户端设备的缓冲器中所存储的媒体内容的数量。在一种变化形式中,从客户端设备的缓冲器被换出的媒体段的数量是可用网络带宽的单调增加函数,该单调增加函数由HLS服务器104内的处理单元110估算。在另一种变化形式中,所换出的媒体段的数量由处理元件110确定为缓冲器容量的百分比。例如,如果缓冲器的容量为60秒并且每个缓冲媒体段的持续时间为10秒,则以缓冲器容量的百分之50换出三个媒体段。
在610,在612转换到高比特率媒体段的回放之前,客户端设备播放来自缓冲器的、未被替换的最后的低比特率媒体段低-13.ts。在614和616,该转换完成,并且客户端设备继续从第二变体流下载并播放高比特率媒体段,直至媒体呈现结束或者客户端设备再次切换变体流。
通过实施由这些教导公开的实施例,能够实现优于当前现有技术的媒体流网络的明显好处。通过减少或消除客户端设备从不同变体流所下载的、对应于媒体呈现的相同部分的媒体段的数目,对于网络资源的需求有所减少。这能够通过将媒体段内的IDR帧跨不同变体流对齐,以在不需要在转换点处下载重复段以同步回放的情况下,允许在那些流之间进行无缝转换。
在前述说明书中,已经描述了特定实施例。然而,本领域的普通技术人员领会,在不背离如在所附的权利要求中所阐述的本发明的范围的情况下,能够做出各种修改和改变。因此,说明书和附图将在说明性而不是约束性意义上被考虑,并且所有这样的修改均旨在被包括在本发明的教导的范围内。
可能引起任何有益效果、优点或解决方案以发生或者变得更显著的有益效果、优点、对问题的解决方案以及任何(多个)元素将不被解释为任何或所有权利要求的关键的、必须的、或必要的特征或元素。本发明单独由所附的权利要求来限定,包括在本申请的未决期间做出的任何修改和如所授权的那些权利要求的所有等同物。
此外,在本文中,诸如第一和第二、顶部和底部等等的关系术语可以被单独地用来区分一个实体或动作与另一实体或动作,而不一定需要或者暗示任何实际这样的关系或这样的实体或动作之间的顺序。术语“含”、“含有”、“有”、“具有”、“包括”、“包括有”、“包含”、“包含有”或其任何其它变化旨在涵盖非排他性包括,使得包括含、有、包括、包含元素的列表的过程、方法、物品或设备不仅包括那些元素而且可以包括未明确地列出或这样的过程、方法、物品或设备所固有的其它元素。由“含...一”、“有...一”、“包括...一”、“包含...一”开头的元素在没有更多约束情况下不排除附加的包括含、有、包括、包含的元素的的过程、方法、物品或设备中。除非另外在本文中明确地陈述,否则术语“一”和“一个”被定义为一个或多个。术语“基本上”、“本质上”、“近似”、“约”或其任何其它版本被定义为接近于如由本领域的普通技术人员所理解的,并且在一个非限制性实施例中术语被定义成在10%内,在另一实施例中在5%内,在另一实施例中在1%内以及在另一实施例中在0.5%内。如本文所用的术语“耦合的”被定义为连接,但是不一定直接地并且不一定机械地连接。以特定方式“配置”的设备或结构被以至少那种方式配置,但还可以以未被列举的方式进行配置。
将意识到的是,一些实施例可以由一个或多个通用或专用处理器(或“处理设备”)和唯一存储的程序指令(包括软件和固件两者)组成,所述处理器诸如微处理器、数字信号处理器、定制处理器以及现场可编程门阵列(FPGA),所述唯一存储的程序指令控制一个或多个处理器与特定非处理器电路相结合地实现本文中所描述的方法和/或装置中的一些、大部分或全部功能。备选地,一些或全部功能能够由没有存储的程序指令的状态机来实现或者实现在一个或多个专用集成电路(ASIC)中,其中某些功能中的每个功能或一些组合被实现为定制逻辑。当然,能够使用两种方法的组合。
此外,实施例能够被实现为具有存储在其上用于将计算机(例如,包括处理器)编程为执行如本文中所描述和要求保护的方法的计算机可读代码的计算机可读存储介质。这样的计算机可读存储介质的示例包括但不限于硬盘、CD-ROM、光学存储设备、磁存储设备、ROM(只读存储器)、PROM(可编程只读存储器)、EPROM(可擦可编程只读存储器)、EEPROM(电可擦可编程只读存储器)以及闪速存储器。另外,不管由例如可用时间、当前技术以及经济考虑事项所激励的可能显著的努力和许多设计选择,期望普通技术人员当由本文中所公开的构思和原理引导时,将容易地能够以最小试验生成这样的软件指令和程序以及IC。
本公开的说明书摘要被提供来允许读者迅速地确定技术公开的本质。应理解的是,它将不被用来解释或者限制权利要求的范围或意义。此外,在前述的详细描述中能够看到,出于使本公开简化的目的,各种特征中被一起分组在各种实施例中。公开的这个方法将不被解释为反映所要求保护的实施例需要比被明确地记载在每个权利要求中的更多特征。相反地,如所附的权利要求反映的那样,发明主题在于少于单个公开的实施例的所有特征。因此所附权利要求由此比如详细描述,其中每个权利要求本身作为分别要求保护的主题。

Claims (9)

1.一种由服务器(108)执行的、用于向客户端设备(130-134)提供来自多个变体流的媒体段的方法,所述方法包括:
向所述客户端设备(130-134)提供(202)标识多个变体流的变体播放列表文件(120),每个变体流对应于相同媒体呈现的不同编码;
追踪(208)由所述客户端设备(130-134)下载的第一媒体段集合的序列号,其中所述第一媒体段集合中的媒体段以第一编码比特率进行编码并且在用于所述变体播放列表文件(120)中所标识的第一变体流的第一播放列表文件中(122-126)被标识;
从所述客户端设备(130-134)接收(210)对于第二播放列表文件(122-126)的请求,所述第二播放列表文件(122-126)标识来自所述变体播放列表文件(120)中所标识的第二变体流的第二媒体段集合,其中所述第二媒体段集合的媒体段以第二编码比特率进行编码;
基于所述追踪(208)确定(212)在所述第二播放列表文件(122-126)中是否标识(214)所述第二媒体段集合中与来自所述第一变体流的、由所述客户端设备(130-134)下载的媒体段中的任何媒体段具有相同序列号的至少一个媒体段;并且
向所述客户端设备(130-134)提供(216)标识来自所述第二变体流的所述第二媒体段集合的所述第二播放列表文件(122-126)。
2.根据权利要求1所述的方法,其中当所述第二编码比特率低于所述第一编码比特率时,所述第二播放列表文件仅标识具有与来自所述第一变体流的、由所述客户端设备下载的所述媒体段的所述序列号不同的序列号的媒体段。
3.根据权利要求2所述的方法,其中所述第二播放列表文件仅标识具有超过来自所述第一变体流的、由所述客户端设备下载的所述媒体段的最高序列号的序列号的媒体段。
4.根据权利要求2所述的方法,其中响应于对于所述第二播放列表文件的所述请求,针对所述客户端设备所述第二播放列表文件被动态创建。
5.根据权利要求4所述的方法,其中所述媒体呈现是点播视频呈现,其中所述第一播放列表文件标识针对所述媒体呈现的所有媒体段,并且其中所述第二播放列表文件仅标识针对所述媒体呈现的剩余部分的、具有比来自所述第一变体流的、由所述客户端设备下载的最后的媒体段的序列号更高的序列号的媒体段。
6.根据权利要求1所述的方法,其中所述第二媒体段集合使用以下各项中的至少一项而被标识:统一资源定位符的集合或者对应于所述第二媒体段集合的信息标签的集合。
7.根据权利要求1所述的方法,其中当所述第二编码比特率高于所述第一编码比特率时,所述第二播放列表文件仅标识具有与来自所述第一变体流的、由客户端设备下载的所述媒体段的所述序列号不同的序列号的媒体段。
8.根据权利要求1所述的方法,其中当所述第二编码比特率高于所述第一编码比特率时,所述第二播放列表文件标识具有与来自所述第一变体流所的、由所述客户端设备下载的媒体段的序列号相同的序列号的媒体段的数目。
9.一种用于在针对流媒体呈现的编码比特率之间切换客户端设备(130-134)的装置(108),所述装置(108)包括:
接口,所述接口被配置为从所述客户端设备(130-134)接收请求并且向所述客户端设备(130-134)提供媒体段,其中每个媒体段包括以瞬时解码器刷新帧开始的图片组;以及
处理单元,所述处理单元被配置为:
向所述客户端设备(130-134)提供(202)标识多个变体流的变体播放列表文件(120),每个变体流对应于相同媒体呈现的不同编码;
追踪(208)由所述客户端设备(130-134)下载的、第一播放列表文件(122-126)中所标识的第一媒体段集合的序列号集合,所述第一播放列表文件(122-126)对应于来自所述多个变体流的、以第一比特率编码的第一变体流;
从所述客户端设备(130-134)接收(210)对于第二播放列表文件(122-126)的请求,所述第二播放列表文件(122-126)标识来自所述多个变体流中的、以第二比特率编码的第二变体流的第二媒体段集合;并且
向所述客户端设备(130-134)提供(216)标识来自第二所述第二变体流的所述第二媒体段集合的所述第二播放列表文件(122-126)。
CN201380070327.XA 2012-11-20 2013-10-28 用于向客户端设备流传输媒体内容的方法和装置 Active CN105052160B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810801505.6A CN108600784B (zh) 2012-11-20 2013-10-28 向客户端设备流传输媒体内容的方法、装置及存储介质

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/681,797 2012-11-20
US13/681,797 US9537917B2 (en) 2012-11-20 2012-11-20 Method and apparatus for streaming media content to client devices
PCT/US2013/067002 WO2014081530A1 (en) 2012-11-20 2013-10-28 Method and apparatus for streaming media content to client devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201810801505.6A Division CN108600784B (zh) 2012-11-20 2013-10-28 向客户端设备流传输媒体内容的方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN105052160A true CN105052160A (zh) 2015-11-11
CN105052160B CN105052160B (zh) 2018-08-17

Family

ID=49584779

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380070327.XA Active CN105052160B (zh) 2012-11-20 2013-10-28 用于向客户端设备流传输媒体内容的方法和装置
CN201810801505.6A Active CN108600784B (zh) 2012-11-20 2013-10-28 向客户端设备流传输媒体内容的方法、装置及存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201810801505.6A Active CN108600784B (zh) 2012-11-20 2013-10-28 向客户端设备流传输媒体内容的方法、装置及存储介质

Country Status (5)

Country Link
US (4) US9537917B2 (zh)
EP (2) EP3579567B1 (zh)
JP (3) JP6282664B2 (zh)
CN (2) CN105052160B (zh)
WO (1) WO2014081530A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105635775A (zh) * 2015-12-30 2016-06-01 惠州Tcl移动通信有限公司 一种移动终端视频播放的节电方法、系统及移动终端
CN106131610A (zh) * 2016-06-28 2016-11-16 乐视控股(北京)有限公司 在线播放视频的方法、设备及装置
CN108574880A (zh) * 2017-03-07 2018-09-25 合网络技术(北京)有限公司 多媒体资源播放方法及装置
CN109791501A (zh) * 2016-11-15 2019-05-21 谷歌有限责任公司 用于减少下载要求的系统和方法
CN111837405A (zh) * 2018-09-17 2020-10-27 谷歌有限责任公司 用于传递无清单流媒体内容的方法、系统和介质
CN112788339A (zh) * 2020-12-30 2021-05-11 北京大数据研究院 视频编码优化方法、装置、系统、介质及终端
CN112822549A (zh) * 2020-12-30 2021-05-18 北京大学 基于分片重组的视频流解码方法、系统、终端及介质
CN113384872A (zh) * 2021-05-12 2021-09-14 网易(杭州)网络有限公司 在微端中处理信息资源的方法、装置、电子设备及存储介质
US11503285B2 (en) * 2019-10-31 2022-11-15 Western Digital Technologies, Inc. Encoding digital videos using controllers of data storage devices

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6589227B2 (en) 2000-01-28 2003-07-08 William Cook Europe Aps Endovascular medical device with plurality of wires
KR101750048B1 (ko) 2009-11-13 2017-07-03 삼성전자주식회사 변속 재생 서비스 제공 방법 및 장치
KR20110105710A (ko) * 2010-03-19 2011-09-27 삼성전자주식회사 복수의 챕터를 포함하는 콘텐트를 적응적으로 스트리밍하는 방법 및 장치
US20130067346A1 (en) * 2011-09-09 2013-03-14 Microsoft Corporation Content User Experience
TWI533678B (zh) * 2014-01-07 2016-05-11 緯創資通股份有限公司 即時轉播同步方法以及使用該方法的系統
US9583015B2 (en) * 2014-05-01 2017-02-28 Pearson Education, Inc. Contemporaneous capture and tagging of media evidence for education evaluation
EP2942971B8 (en) * 2014-05-08 2019-07-17 Icomera AB Method and system for bandwidth constrained media streaming to a moving vehicle
US10686709B2 (en) * 2014-07-14 2020-06-16 Qualcomm Incorporated Methods and apparatus for channel usage indication
US10324733B2 (en) 2014-07-30 2019-06-18 Microsoft Technology Licensing, Llc Shutdown notifications
US10678412B2 (en) 2014-07-31 2020-06-09 Microsoft Technology Licensing, Llc Dynamic joint dividers for application windows
US9787576B2 (en) 2014-07-31 2017-10-10 Microsoft Technology Licensing, Llc Propagating routing awareness for autonomous networks
US10592080B2 (en) 2014-07-31 2020-03-17 Microsoft Technology Licensing, Llc Assisted presentation of application windows
US9836464B2 (en) 2014-07-31 2017-12-05 Microsoft Technology Licensing, Llc Curating media from social connections
US10254942B2 (en) 2014-07-31 2019-04-09 Microsoft Technology Licensing, Llc Adaptive sizing and positioning of application windows
US11086216B2 (en) 2015-02-09 2021-08-10 Microsoft Technology Licensing, Llc Generating electronic components
US9827209B2 (en) 2015-02-09 2017-11-28 Microsoft Technology Licensing, Llc Display system
US10018844B2 (en) 2015-02-09 2018-07-10 Microsoft Technology Licensing, Llc Wearable image display system
US10804958B2 (en) * 2015-02-24 2020-10-13 Comcast Cable Communications, Llc Multi-bitrate video with dynamic blocks
US9979765B2 (en) * 2015-05-11 2018-05-22 Apple Inc. Adaptive connection switching
KR101916022B1 (ko) * 2015-10-06 2018-11-07 한국전자통신연구원 세그먼트 기반의 방송 콘텐츠 반복 전송 방법 및 장치
US10271079B1 (en) 2015-10-20 2019-04-23 Halogen Networks, LLC Live video streaming system and method
US10433023B1 (en) * 2015-10-27 2019-10-01 Amazon Technologies, Inc. Heuristics for streaming live content
CN105915994A (zh) * 2015-11-16 2016-08-31 乐视致新电子科技(天津)有限公司 一种视频播放方法和装置
EP3384617B1 (en) * 2015-12-02 2021-07-14 Telefonaktiebolaget LM Ericsson (publ) Data rate adaptation for multicast delivery of streamed content
EP3384674A1 (en) * 2015-12-04 2018-10-10 Telefonaktiebolaget LM Ericsson (publ) Technique for adaptive streaming of temporally scaling media segment levels
EP3391654B1 (en) 2016-01-28 2019-11-13 ARRIS Enterprises LLC Variable buffer handling for adaptive bitrate streaming
GB2548789B (en) * 2016-02-15 2021-10-13 V Nova Int Ltd Dynamically adaptive bitrate streaming
US10999614B2 (en) 2016-03-31 2021-05-04 Rovi Guides, Inc. Methods and systems for efficiently downloading media assets
WO2017218522A1 (en) * 2016-06-13 2017-12-21 Arris Enterprises Llc Reduction of startup time in remote hls clients
US10200434B1 (en) * 2016-09-12 2019-02-05 Amazon Technologies, Inc. Encoding markers in transport streams
US20180183845A1 (en) * 2016-12-22 2018-06-28 Facebook, Inc. Systems and methods for providing content
EP3393129A1 (en) 2017-04-21 2018-10-24 Alcatel-Lucent España, S.A. Multimedia content delivery with reduced delay
EP3410728A1 (en) 2017-05-30 2018-12-05 Vestel Elektronik Sanayi ve Ticaret A.S. Methods and apparatus for streaming data
US10785092B2 (en) 2017-07-28 2020-09-22 Skitter, Inc. System and method for providing fault tolerant streaming of segmented content and cache coherency on multi-hosted origin systems
JP6633244B2 (ja) * 2017-08-15 2020-01-22 グーグル エルエルシー マルチキャストを使用するストリーミング帯域幅の最適化された利用
US10616666B1 (en) 2018-02-27 2020-04-07 Halogen Networks, LLC Interactive sentiment-detecting video streaming system and method
CN115567742A (zh) * 2018-04-24 2023-01-03 谷歌有限责任公司 同步媒体回放期间调整质量级别的方法、系统和介质
US10812562B1 (en) * 2018-06-21 2020-10-20 Architecture Technology Corporation Bandwidth dependent media stream compression
US10862938B1 (en) 2018-06-21 2020-12-08 Architecture Technology Corporation Bandwidth-dependent media stream compression
US11089346B2 (en) 2018-07-24 2021-08-10 At&T Intellectual Property I, L.P. Adaptive bitrate streaming techniques
US10728305B2 (en) 2018-07-24 2020-07-28 At&T Intellectual Property I, L.P. Adaptive bitrate streaming techniques
US10728588B2 (en) 2018-07-24 2020-07-28 At&T Intellectual Property I, L.P. Adaptive bitrate streaming techniques
US10728630B2 (en) 2018-07-24 2020-07-28 At&T Intellectual Property I, L.P. Adaptive bitrate streaming techniques
US10582232B1 (en) * 2018-10-31 2020-03-03 Amazon Technologies, Inc. Transcoding frame-synchronous metadata for segmented video delivery
CN111131764B (zh) * 2018-11-01 2021-06-15 腾讯科技(深圳)有限公司 资源兑换视频数据处理方法、计算机设备和存储介质
US10880354B2 (en) 2018-11-28 2020-12-29 Netflix, Inc. Techniques for encoding a media title while constraining quality variations
US10841356B2 (en) 2018-11-28 2020-11-17 Netflix, Inc. Techniques for encoding a media title while constraining bitrate variations
US10893309B2 (en) * 2018-12-26 2021-01-12 Arris Enterprises Llc Method and apparatus for automatic HLS bitrate adaptation
EP3687176A1 (en) 2019-01-22 2020-07-29 InterDigital CE Patent Holdings A client and a method for managing, at the client, a streaming session of a multimedia content
US11240280B2 (en) 2019-02-19 2022-02-01 Apple Inc. Low latency streaming media
US11695817B2 (en) * 2019-03-20 2023-07-04 Qualcomm Incorporated Methods and apparatus to facilitate using a streaming manifest including a profile indication
US11128688B2 (en) * 2019-10-16 2021-09-21 Disney Enterprises, Inc. Transcoder conditioning for segment fluidity
DE112020004978T5 (de) * 2019-10-18 2022-07-21 Novi Digital Entertainment Private Limited System und Verfahren zum Ausliefern in Echtzeit eines zielgerichteten Inhalts in einem Streaming-Inhalt
US11076188B1 (en) * 2019-12-09 2021-07-27 Twitch Interactive, Inc. Size comparison-based segment cancellation
US11438545B2 (en) 2019-12-23 2022-09-06 Carrier Corporation Video image-based media stream bandwidth reduction
US11463651B2 (en) 2019-12-23 2022-10-04 Carrier Corporation Video frame-based media stream bandwidth reduction
WO2021156194A1 (en) * 2020-02-04 2021-08-12 Dolby International Ab Method and device for adaptive playout of media content
CN111356028A (zh) * 2020-03-16 2020-06-30 南京巨鲨显示科技有限公司 流媒体服务实现文件序列点播的方法和装置
JP7438835B2 (ja) * 2020-04-21 2024-02-27 株式会社東芝 サーバ装置、通信システム、プログラムおよび情報処理方法
CN111417031B (zh) * 2020-04-28 2022-05-31 北京金山云网络技术有限公司 文件传输方法、装置以及电子设备
US11153581B1 (en) 2020-05-19 2021-10-19 Twitch Interactive, Inc. Intra-segment video upswitching with dual decoding
WO2022133039A1 (en) * 2020-12-16 2022-06-23 Dolby Laboratories Licensing Corporation Multisource media delivery systems and methods
EP4300916A1 (en) * 2022-06-27 2024-01-03 Streamroot A controller for controlling a player in a peer-to-peer network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100299552A1 (en) * 2009-05-19 2010-11-25 John Schlack Methods, apparatus and computer readable medium for managed adaptive bit rate for bandwidth reclamation
CN102238179A (zh) * 2010-04-07 2011-11-09 苹果公司 实时或准实时流传输
US20120005368A1 (en) * 2010-06-30 2012-01-05 Cable Television Laboratories, Inc. Adaptive bit rate method and system using retransmission and replacement
US20120263434A1 (en) * 2011-04-14 2012-10-18 Cisco Technology, Inc. Per-Subscriber Adaptive Bit Rate Stream Management Method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962637B2 (en) 2006-11-03 2011-06-14 Apple Computer, Inc. Dynamic adjustments of video streams
US8473628B2 (en) * 2008-08-29 2013-06-25 Adobe Systems Incorporated Dynamically altering playlists
WO2010060106A1 (en) 2008-11-24 2010-05-27 Ankeena Networks, Inc., Adaptive network content delivery system
US20100169303A1 (en) * 2008-12-31 2010-07-01 David Biderman Playlists for real-time or near real-time streaming
BRPI0923917B1 (pt) * 2008-12-31 2021-05-25 Apple Inc Método implementado por máquina, meio de armazenamento não transitório legível por máquina, aparelho, e sistema de processamento de dados para transmissão contínua em tempo real ou próximo ao tempo real
GB201105502D0 (en) * 2010-04-01 2011-05-18 Apple Inc Real time or near real time streaming
US20120110628A1 (en) 2010-10-27 2012-05-03 Candelore Brant L Storage of Adaptive Streamed Content
CN102790779B (zh) * 2011-05-16 2016-04-13 腾讯科技(深圳)有限公司 一种直播视频资源下载方法和装置
US9674266B2 (en) * 2011-10-17 2017-06-06 Telefonaktiebolaget Lm Ericsson (Publ) Method for adaptive streaming, local storing and post-storing quality increase of a content file

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100299552A1 (en) * 2009-05-19 2010-11-25 John Schlack Methods, apparatus and computer readable medium for managed adaptive bit rate for bandwidth reclamation
CN102238179A (zh) * 2010-04-07 2011-11-09 苹果公司 实时或准实时流传输
US20120005368A1 (en) * 2010-06-30 2012-01-05 Cable Television Laboratories, Inc. Adaptive bit rate method and system using retransmission and replacement
US20120263434A1 (en) * 2011-04-14 2012-10-18 Cisco Technology, Inc. Per-Subscriber Adaptive Bit Rate Stream Management Method

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105635775A (zh) * 2015-12-30 2016-06-01 惠州Tcl移动通信有限公司 一种移动终端视频播放的节电方法、系统及移动终端
CN106131610A (zh) * 2016-06-28 2016-11-16 乐视控股(北京)有限公司 在线播放视频的方法、设备及装置
CN109791501A (zh) * 2016-11-15 2019-05-21 谷歌有限责任公司 用于减少下载要求的系统和方法
US11856264B2 (en) 2016-11-15 2023-12-26 Google Llc Systems and methods for reducing download requirements
CN109791501B (zh) * 2016-11-15 2023-08-22 谷歌有限责任公司 用于减少下载要求的系统和方法
CN108574880A (zh) * 2017-03-07 2018-09-25 合网络技术(北京)有限公司 多媒体资源播放方法及装置
CN111837405A (zh) * 2018-09-17 2020-10-27 谷歌有限责任公司 用于传递无清单流媒体内容的方法、系统和介质
US11882168B2 (en) 2018-09-17 2024-01-23 Google Llc Methods, systems, and media for delivering manifestless streaming media content
US11558443B2 (en) 2018-09-17 2023-01-17 Google Llc Methods, systems, and media for delivering manifestless streaming media content
US11503285B2 (en) * 2019-10-31 2022-11-15 Western Digital Technologies, Inc. Encoding digital videos using controllers of data storage devices
CN112788339B (zh) * 2020-12-30 2023-01-10 北京大数据研究院 视频编码优化方法、装置、系统、介质及终端
CN112822549B (zh) * 2020-12-30 2022-08-05 北京大学 基于分片重组的视频流解码方法、系统、终端及介质
CN112822549A (zh) * 2020-12-30 2021-05-18 北京大学 基于分片重组的视频流解码方法、系统、终端及介质
CN112788339A (zh) * 2020-12-30 2021-05-11 北京大数据研究院 视频编码优化方法、装置、系统、介质及终端
CN113384872A (zh) * 2021-05-12 2021-09-14 网易(杭州)网络有限公司 在微端中处理信息资源的方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
JP6404505B2 (ja) 2018-10-10
EP2923493A1 (en) 2015-09-30
JP2019036967A (ja) 2019-03-07
US20170163708A1 (en) 2017-06-08
US10129317B2 (en) 2018-11-13
US20140143439A1 (en) 2014-05-22
CN108600784A (zh) 2018-09-28
CN108600784B (zh) 2020-11-10
JP6282664B2 (ja) 2018-02-21
WO2014081530A1 (en) 2014-05-30
EP2923493B1 (en) 2019-09-04
CN105052160B (zh) 2018-08-17
US20180124147A1 (en) 2018-05-03
US9854021B2 (en) 2017-12-26
JP6648223B2 (ja) 2020-02-14
EP3579567B1 (en) 2024-04-10
US9537917B2 (en) 2017-01-03
JP2016502804A (ja) 2016-01-28
USRE49290E1 (en) 2022-11-08
JP2018085764A (ja) 2018-05-31
EP3579567A1 (en) 2019-12-11

Similar Documents

Publication Publication Date Title
CN105052160A (zh) 用于向客户端设备流传输媒体内容的方法和装置
JP6657313B2 (ja) ソースビデオストリームからビデオの一組の代替ストリームをエンコードする方法
US9544344B2 (en) Method and apparatus for streaming media content to client devices
US9191725B2 (en) Method and apparatus for streaming video
JP6016778B2 (ja) チャンクの形態でストリーミングされたコンテンツを回復する方法
TW201644269A (zh) 內容重製系統、內容重製裝置、程式、內容重製方法、及提供內容伺服器
CN104796796A (zh) 提高Android平台的HLS流播放器容错的方法
US11758200B2 (en) System and method for converting adaptive stream to downloadable media
TW201937938A (zh) 解碼裝置、解碼方法、及程式

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant