CN104025548B - 用于被递送媒体的灵活缓存的方法和设备 - Google Patents
用于被递送媒体的灵活缓存的方法和设备 Download PDFInfo
- Publication number
- CN104025548B CN104025548B CN201280065154.8A CN201280065154A CN104025548B CN 104025548 B CN104025548 B CN 104025548B CN 201280065154 A CN201280065154 A CN 201280065154A CN 104025548 B CN104025548 B CN 104025548B
- Authority
- CN
- China
- Prior art keywords
- representation
- uri
- equipment
- caching
- fragment
- 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.)
- Active
Links
Classifications
-
- 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
- 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/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/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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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
-
- 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/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
- H04N21/2225—Local VOD servers
-
- 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, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 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/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/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/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
-
- 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/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Abstract
描述了选择用于DASH中的灵活缓存的访问方法的各种方法。一种示例方法可以包括:使对片段的主要表示和该片段的一个或多个替代表示中的至少一个的请求被发送给代理缓存。该示例实施例的方法还可以包括:使缓存代理基于缓存代理处的缓存状态用主要表示或替代表示中的至少一个来作出响应。在一些示例实施例中,缓存代理被配置成确定请求是否使替代表示能够被包括在响应中。另外,该示例实施例的方法可以包括:从缓存代理接收片段的主要表示或替代表示中的至少一个。还提供了类似和相关的示例方法、示例设备和示例计算机程序产品。
Description
技术领域
本发明的实施例一般涉及通信技术,并且更特别地涉及通过基于超文本传输协议(HTTP)的动态自适应流媒体(DASH)接受多个表示的方法和设备。
背景技术
现代通信时代已经带来了有线和无线网络的巨大扩张。在消费者的需求的驱动下,计算机网络、电视网络和电话网络正在经历着前所未有的技术扩展。无线和移动联网技术已经解决了相关的消费者需求,同时为信息传递提供更多的灵活性和即时性。
当前和未来的联网技术不断地促成信息传递的轻松和对用户的便利。为了提供更简易或更快速的信息传递和便利,电信业服务提供商正在发展对现有网络的改进。在这方面,例如,正在对通用移动电信系统(UMTS)陆地无线接入网(UTRAN)作出改进。此外,例如,当前正在开发演进型UTRAN(E-UTRAN)。E-UTRAN,也被称为长期演进(LTE),目的在于通过提高效率、降低成本、改善服务、利用新的频谱机会、以及提供与其他开放标准的更好的集成,来对现有技术进行升级。
由于联网技术得到改善,通过因特网进行的可视和可听媒体内容分发的容量持续增大。用户希望通过各种访问方式高效且最优地访问该数量不断增长的媒体内容。一种用于向装置分发媒体内容的新兴标准被称作DASH。DASH标准基于媒体展现结构提供用于分发的媒体内容。然而,DASH的媒体展现结构聚焦于媒体内容而不是客户端可用于访问内容的方法。
发明内容
方法、设备和计算机程序产品在本文中被提供用于添加DASH片段请求的语法,以指示来自其他表示的片段在响应中是被允许的。另外,并且在一些示例实施例中,如本文所述,流客户端设备操作可以按照如下方式修改:流客户端设备授予许可,从而使来自一些其他表示的各个片段作为对片段请求的响应。此外,一些示例实施例可以修改代理操作,使得代理缓存设备可以配置成确定替代片段是否能够被用在响应中,并且在请求片段或任何替代片段可在代理缓存设备中容易地获取的情况下,选择这些片段之一来响应片段请求。
在一些示例实施例中,提供了一种方法,其包括:使得对片段的主要表示或片段的替代表示中的至少一个的请求被发送给缓存代理。该实施例的方法还可包括:使得缓存代理基于缓存代理处的缓存状态用主要表示或替代表示中的至少一个来响应。在一些示例实施例中,缓存代理被配置成确定请求是否使替代表示能够被包括在响应中。该实施例的方法还可包括:从缓存代理接收片段的主要表示或替代表示中的至少一个。
在另一个实施例中,提供了一种设备,其包括至少一个处理器和至少一个包括计算机程序代码的存储器,其中至少一个存储器和计算机程序代码被配置成利用至少一个处理器使设备至少使得对片段的主要表示或片段的替代表示中的至少一个的请求被发送给缓存代理。至少一个存储器和计算机程序代码还可以被配置成利用至少一个处理器使设备使得缓存代理基于缓存代理处的缓存状态用主要表示或替代表示中的至少一个来响应。在一些示例实施例中,缓存代理被配置成确定请求是否使替代表示能够被包括在响应中。至少一个存储器和计算机程序代码还可以被配置成利用至少一个处理器使设备从缓存代理接收片段的主要表示或替代表示中的至少一个。
在另一个实施例中,可以提供一种计算机程序产品,其包括至少一个其中存储有计算机可读程序指令的非暂时性计算机可读存储介质,其中计算机可读程序指令包括配置成执行以下操作的程序指令:使得对片段的主要表示或片段的替代表示中的至少一个的请求被发送给缓存代理。计算机可读程序指令还可以包括配置成执行以下操作的程序指令:使得缓存代理基于缓存代理处的缓存状态用主要表示或替代表示中的至少一个来响应。在一些示例实施例中,缓存代理被配置成确定请求是否使替代表示能够被包括在响应中。计算机可读程序指令还可以包括配置成执行以下操作的程序指令:从缓存代理接收片段的主要表示或替代表示中的至少一个。
而又一个实施例中,提供了一种设备,其包括:用于使得对片段的主要表示或片段的替代表示中的至少一个的请求被发送给缓存代理的装置。该实施例的设备还可包括:用于使得缓存代理基于缓存代理处的缓存状态用主要表示或替代表示中的至少一个来响应的装置。在一些示例实施例中,缓存代理被配置成确定请求是否使替代表示能够被包括在响应中。该实施例的设备还可包括:用于从缓存代理接收片段的主要表示或替代表示中的至少一个的装置。
在一些示例实施例中,提供了一种方法,其包括:使得请求缓存代理提供可选择的缓存替代表示的统一资源指示符(URI)的请求被发送。该实施例的方法还可以包括:接收用于代理驱动的内容协商的可选择的缓存替代表示的URI的列表和范围。该实施例的方法还可以包括:使得对用于代理驱动的内容协商的可选择的缓存替代表示的资源的请求被发送。在一些示例实施例中,资源是基于预定的选择标准请求的。
在另一个实施例中,提供了一种设备,其包括至少一个处理器和至少一个包括计算机程序代码的存储器,其中至少一个存储器和计算机程序代码被配置成利用至少一个处理器使设备至少使得请求缓存代理提供可选择的缓存替代表示URI的请求被发送。至少一个存储器和计算机程序代码还可以被配置成利用至少一个处理器使设备接收用于代理驱动的内容协商的可选择的缓存替代表示的URI的列表和范围。至少一个存储器和计算机程序代码还可以被配置成利用至少一个处理器使设备使得对用于代理驱动的内容协商的可选择的缓存替代表示的资源的请求被发送。在一些示例实施例中,资源是基于预定的选择标准请求的。
在另一个实施例中,可以提供一种计算机程序产品,其包括至少一个其中存储有计算机可读程序指令的非暂时性计算机可读存储介质,其中计算机可读程序指令包括配置成执行以下操作的程序指令:使得请求缓存代理提供可选择的缓存替代表示URI的请求被发送。计算机可读程序指令还可以包括配置成执行以下操作的程序指令:接收用于代理驱动的内容协商的可选择的缓存替代表示的URI的列表和范围。计算机可读程序指令还可以包括配置成执行以下操作的程序指令:使得对用于代理驱动的内容协商的可选择的缓存替代表示的资源的请求被发送。在一些示例实施例中,资源是基于预定的选择标准请求的。
在又一个实施例中,提供了一种设备,其包括用于使得请求缓存代理提供可选择的缓存替代表示URI的请求被发送的装置。该实施例的设备还可以包括接收用于代理驱动的内容协商的可选择的缓存替代表示的URI的列表和范围的装置。该实施例的设备还可以包括使得对用于代理驱动的内容协商的可选择的缓存替代表示的资源的请求被发送的装置。在一些示例实施例中,资源是基于预定的选择标准请求的。
在一些示例实施例中,提供了一种方法,其包括:接收对片段的主要表示或替代表示中的至少一个的请求。该实施例的方法还可以包括:确定请求是否包括客户端将接受片段的替代表示的指示。该实施例的方法还可以包括:确定与主要表示相关联的主要URI中的至少一个是否被缓存。该实施例的方法还可以包括:在主要URI被缓存的情况下,使得片段的主要表示被发送。该实施例的方法还可以包括:确定与替代表示相关联的替代URI中的至少一个是否被缓存。该实施例的方法还可以包括:在替代URI中的至少一个被缓存并且主要URI未被缓存的情况下,使片段的替代表示被发送。
在另一个实施例中,提供了一种设备,其包括至少一个处理器和至少一个包括计算机程序代码的存储器,其中至少一个存储器和计算机程序代码被配置成利用至少一个处理器使设备至少接收对片段的主要表示或替代表示中的至少一个的请求。至少一个存储器和计算机程序代码还可以被配置成利用至少一个处理器使设备确定请求是否包括客户端将接受片段的替代表示的指示。至少一个存储器和计算机程序代码还可以被配置成利用至少一个处理器使设备确定与主要表示相关联的主要URI中的至少一个是否被缓存。至少一个存储器和计算机程序代码还可以被配置成利用至少一个处理器在主要URI被缓存的情况下,使得片段的主要表示被发送。至少一个存储器和计算机程序代码还可以被配置成利用至少一个处理器使设备确定与替代表示相关联的替代URI中的至少一个是否被缓存。至少一个存储器和计算机程序代码还可以被配置成利用至少一个处理器使设备在替代URI中的至少一个被缓存并且主要URI未被缓存的情况下,使片段的替代表示被发送。
在另一个实施例中,可以提供一种计算机程序产品,其包括至少一个其中存储有计算机可读程序指令的非暂时性计算机可读存储介质,其中计算机可读程序指令包括配置成执行以下操作的程序指令:接收对片段的主要表示或替代表示中的至少一个的请求。计算机可读程序指令还可以包括被配置成执行以下操作的程序指令:确定请求是否包括客户端将接受片段的替代表示的指示。计算机可读程序指令还可以包括配置成执行以下操作的程序指令:确定与主要表示相关联的主要URI中的至少一个是否被缓存。计算机可读程序指令还可以包括配置成执行以下操作的程序指令:在主要URI被缓存的情况下,使得片段的主要表示被发送。计算机可读程序指令还可以包括配置成执行以下操作的程序指令:确定与替代表示相关联的替代URI中的至少一个是否被缓存。计算机可读程序指令还可以包括配置成执行以下操作的程序指令:在替代URI中的至少一个被缓存并且主要URI未被缓存的情况下,使片段的替代表示被发送。
在又一个实施例中,提供了一种设备,其包括用于接收对片段的主要表示或替代表示中的至少一个的请求的装置。该实施例的设备还可以包括用于确定请求是否包括客户端将接受片段的替代表示的指示的装置。该实施例的设备还可以包括用于确定与主要表示相关联的主要URI中的至少一个是否被缓存的装置。该实施例的设备还可以包括用于在主要URI被缓存的情况下,使得片段的主要表示被发送的装置。该实施例的设备还可以包括用于确定与替代表示相关联的替代URI中的至少一个是否被缓存的装置。该实施例的设备还可以包括用于在替代URI中的至少一个被缓存并且主要URI未被缓存的情况下,使片段的替代表示被发送的装置。
在一些示例实施例中,提供了一种方法,其包括:接收对片段的主要表示或替代表示中的至少一个的请求。该实施例的方法还可以包括:确定该请求是否包括客户端将接受片段的替代表示的指示。该实施例的方法还可以包括:使得用于代理驱动的内容协商的可选择的缓存替代表示的URI的列表和范围被发送。该实施例的方法还可以包括:接收对用于代理驱动的内容协商的可选择的缓存替代表示的资源的请求。
在另一个实施例中,提供了一种设备,其包括至少一个处理器和至少一个包括计算机程序代码的存储器,其中至少一个存储器和计算机程序代码被配置成利用至少一个处理器使设备至少接收对片段的主要表示或替代表示中的至少一个的请求。至少一个存储器和计算机程序代码还可以被配置成利用至少一个处理器使设备确定该请求是否包括客户端将接受片段的替代表示的指示。至少一个存储器和计算机程序代码还可以被配置成利用至少一个处理器使设备使得用于代理驱动的内容协商的可选择的缓存替代表示的URI的列表和范围被发送。至少一个存储器和计算机程序代码还可以被配置成利用至少一个处理器使设备接收对用于代理驱动的内容协商的可选择的缓存替代表示的资源的请求。
在另一个实施例中,可以提供一种计算机程序产品,其包括至少一个其中存储有计算机可读程序指令的非暂时性计算机可读存储介质,其中计算机可读程序指令包括配置成执行以下操作的程序指令:接收对片段的主要表示或替代表示中的至少一个的请求。计算机可读程序指令还可以包括被配置成执行以下操作的程序指令:确定该请求是否包括客户端将接受片段的替代表示的指示。计算机可读程序指令还可以包括配置成执行以下操作的程序指令:使得用于代理驱动的内容协商的可选择的缓存替代表示的URI的列表和范围被发送。计算机可读程序指令还可以包括配置成执行以下操作的程序指令:接收对用于代理驱动的内容协商的可选择的缓存替代表示的资源的请求。
在又一个实施例中,提供了一种设备,其包括用于接收对片段的主要表示或替代表示中的至少一个的请求的装置。该实施例的设备还可以包括用于确定该请求是否包括客户端将接受片段的替代表示的指示的装置。该实施例的设备还可以包括:使得用于代理驱动的内容协商的可选择的缓存替代表示的URI的列表和范围被发送的装置。该实施例的设备还可以包括:接收对用于代理驱动的内容协商的可选择的缓存替代表示的资源的请求的装置。
提供上述概要仅是用于总结本发明的一些示例实施例,从而提供对本发明的一些方面的基本理解。因此,应当理解的是,上述示例实施例仅仅是示例,并且不应该被解释为以任何方式缩小本发明的范围或精神。应当理解的是,除了那些在这里总结的实施例之外,本发明的范围还涵盖许多潜在的实施例,其中的一些将在下文进一步描述。
附图说明
已经用一般术语这样描述了本发明的一些示例实施例,现在将参考附图,其不一定按比例绘制,并且其中:
图1示出根据本发明的一些示例实施例的用于接受DASH的多个表示的系统的框图;
图2示出代表根据本发明的一些示例实施例的流客户端设备的一个实施例的移动终端的框图;
图3示出根据本发明的一些示例实施例的设备的框图;
图4a和4b示出客户端的示例表示波动;
图5示出根据本发明的一些示例实施例的用于服务器驱动的内容协商的流客户端设备的操作的示例方法的流程图;
图6a和6b示出根据本发明的一些示例实施例的用于代理驱动的内容协商的流客户端设备的操作的示例方法的流程图;
图7示出根据本发明的一些示例实施例的用于服务器驱动的内容协商的代理缓存设备的操作的示例方法的流程图;
图8示出根据本发明的一些示例实施例的用于代理驱动的内容协商的代理缓存设备的操作的示例方法的流程图;
图9示出根据本发明的一些示例实施例的用于服务器驱动的内容协商的流客户端设备的操作的示例方法的流程图;
图10示出根据本发明的一些示例实施例的用于代理驱动的内容协商的流客户端设备的操作的示例方法的流程图;
图11示出根据本发明的一些示例实施例的用于服务器驱动的内容协商的代理缓存设备的操作的示例方法的流程图;并且
图12示出根据本发明的一些示例实施例的用于代理驱动的内容协商的代理缓存设备的操作的示例方法的流程图。
具体实施方式
现在将在下文中参照附图对本发明的示例实施例进行更充分地描述,所述附图示出一些但不是所有的本发明的实施例。实际上,本发明可以以许多不同的形式来实施,并且不应该被解释为限制于本文提到的实施例;相反地,提供这些实施例使得本公开将满足适用的法律规定。在说明书中相同的附图标记始终指的是相同的元素。
根据本发明的一些示例实施例,术语“数据”、“内容”、“信息”及类似术语可以可互换地使用,以指代能够被发送、接收、操作、显示、和/或存储的数据。因此,任何此类术语的使用都不应该被认为是限制本公开的精神和范围。另外,对于本文描述的一个计算设备从另一个计算设备接收数据的情况,应理解的是,数据可以从另一个计算设备直接接收,或者可以通过一个或多个中间计算设备(例如,一个或多个服务器、中继器、路由器、网络接入点、基站、和/或类似物)间接地接收。
如本文使用的术语“计算机可读介质”指的是被配置成参与提供信息(包括用于执行的指令)至处理器的任何介质。该介质可以采取许多形式,包括但不限于非暂时性计算机可读存储介质(例如,非易失性介质、易失性介质)、和传输介质。传输介质包括:例如,同轴电缆、铜线、光纤电缆、以及无需导线或电缆便可穿越空间的载波,例如声波和电磁波,包括无线电波、光波和红外波。信号包括通过传输介质传输的振幅、频率、相位、偏振或其他物理特性的人为瞬态变化。非暂时性计算机可读介质的实例包括软盘、柔性盘、硬盘、磁带、任何其他非暂时性的磁介质、紧凑盘只读存储器(CD-ROM)、可擦写紧凑盘(CD-RW)、数字多功能盘(DVD)、蓝光、任何其他非暂时性的光学介质、穿孔卡、纸带、光标记图(optical marksheet)、具有孔或其它光可识别标记的图案的任何其他物理介质、随机存取存储器(RAM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、闪存EPROM、任何其他存储芯片或盒、载波、或计算机可读取的任何其他非暂时性介质。当在本文中使用时,术语计算机可读存储介质指的是除了传输介质之外的任何计算机可读介质。然而,应理解的是,对于实施例被描述成使用计算机可读存储介质的情况,可以使用其他类型的计算机可读介质作为替代,或者除了替代实施例中的计算机可读存储介质之外还使用其他类型的计算机可读介质。
如本文使用的术语“电路”指的是下述的全部:(a)纯硬件电路实现(例如仅在模拟和/或数字电路中实现);(b)电路和计算机程序产品的组合,其中计算机程序产品包括软件(和/或存储在一个或多个计算机可读存储器中的固件指令),例如(如果适用的话):(i)处理器的组合、或(ii)处理器/软件(包括数字信号处理器)、软件和存储器的一部分,它们一起工作以使设备(例如移动电话或服务器)执行本文所描述的各种功能;以及(c)电路,例如,微处理器或微处理器的一部分,其需要软件或固件进行操作,即使软件或固件在物理上不存在。
“电路”的该定义适用于本申请中的该术语的全部使用,包括在任何权利要求中对该术语的使用。再举一个实例,如在本申请中使用的术语“电路”还涵盖仅一个处理器(或多个处理器)、或者处理器及其随附软件和/或固件的一部分的实现方式。例如并且如果适用于特定的权利要求元素的话,术语“电路”还涵盖:用于移动电话的基带集成电路或应用处理器集成电路,或者用在服务器、蜂窝网络设备、其他网络设备、和/或其它计算设备中的类似集成电路。
各种DASH标准(例如,3GPP DASH、MPEG DASH等等)定义媒体展现的格式。媒体展现可以包括一系列一个或多个连续时段。每个时段可以包括媒体内容的一个或多个表示,其通常由于编码选择(例如,比特率、分辨率、语言、编解码器等等)而不同。表示可以包括一个或多个媒体成分,使得每个媒体成分定义特定媒体类型(例如,音频、视频、定时文本等等)的编码版本。每个表示可以包括一个或多个媒体片段,每个媒体片段可以包含与媒体展现的媒体内容相关的媒体数据和/或元数据。每个媒体片段可以通过唯一的HTTP统一资源定位符(URL)来引用,在一些情况下,HTTP URL可以由字节范围来限制。媒体展现的各种表示可以被分配给一个或多个自适应集,使得同一个自适应集中的表示是彼此的替代并且可以基于与下载和回放相关联的多个因素(例如,可用带宽、访问时间等等)在媒体展现的下载和回放期间被自动切换。
通常,媒体展现是通过媒体展现描述(MPD)来表示和描述的,MPD还可以称作播放列表文件、清单文件、或流清单文件。例如,媒体展现可以通过MPD表示,所述MPD被定义为根据特定可扩展标记语言(XML)模式被良好格式化的XML文档。基于DASH标准,MPD以及相关的媒体展现可以基于各种类型的分发方法进行访问。例如,由MPD定义的媒体展现可以通过单播(例如,通过分组交换流媒体(PSS)服务)、多播(例如,多媒体广播多播服务(MBMS))、和广播(例如,通过数字视频广播-手持(DVB-H)、MBMS等等)连接来访问。
在一些示例实施例中并且在仅提供一个表示用于通过DASH递送的特定媒体剪辑的情况下,则在客户端播放出整个视频剪辑之后,缓存代理(其是分发网络的一部分)通常已经缓存了其所有的片段。缓存代理服务器是充当用于来自客户端的寻求资源的请求的中介,并且还通过检索从相同客户端或者甚至其他客户端做出的前一个请求所保存的内容来加速服务请求的服务器。然而,由于DASH支持速率自适应,客户端可以配置成动态请求不同表示的不同片段。因此,来自多个表示的片段可以被缓存代理缓存,并且每个缓存的表示的缓存片段不太可能形成完整的表示。
多个不完整表示的缓存可以导致客户端对于不同片段的片段提取时间的变化。片段提取时间表示客户端从请求片段到接收到该片段的最后一个字节的时间段。例如,相比于取回未缓存在代理中的片段,客户端取回缓存在代理中的片段所消耗的时间要少得多。变化的片段提取时间可以进一步导致缓冲媒体时间的变化。速率自适应算法可以利用片段提取时间或缓冲媒体时间或这两者来确定切换升高或切换降低表示水平(其中该表示水平代表自适应集内的媒体比特率的水平,例如,其可以通过量化和/或空间分辨率和/或时间分辨率来进行控制)。因此,即便分发网络中的吞吐量不改变并且因此没有理由改变表示水平,由于变化的片段提取时间取决于是哪个代理服务器或始发服务器响应于片段请求,因而客户端可以改变表示水平。
术语主要表示和次要表示在本文中可以被用于分别表示最高的优选表示和替代表示,其中最高的优选表示和替代表示中的每一个可以与偏好(preference)相关联。在一些实施例中,主要表示可以被认为是与DASH中常规使用的表示相同。如本文所述,次要表示和替代表示可以可互换地使用。类似于与表示相关的术语,主要片段和次要片段被用于指示分别属于主要表示和次要表示的片段。另外,次要片段可以具有与各个主要片段相同的开始时间和片段持续时间,并且次要片段和各个主要片段应当属于同一自适应集中的不同表示。
术语“用户代理”被用来指发起请求的程序,例如配置成在流客户端设备上操作的WWW浏览器、编辑器、或爬行器(穿越网络的机器人),并且术语“起源服务器”可以被用来指能够发起对请求的权威响应的程序。
图4a和4b示出实例以展示客户端的表示波动的问题。在本例中,假设内容提供者提供四个表示,并且每个表示由十个具有相同片段持续时间的片段组成。如图4a所示,四个表示由代理缓存,并且每个表示被不完全地缓存。对于表示1(212),片段#1(201)、#2(202)、#3(203)、#4(204)、#5(205)和#6(206)被缓存,并且未在212中示出的表示1的其他片段未被缓存。通常,内容提供者可以提供更多数量的表示,以实现细粒度的速率自适应。由于客户端可以在所提供的表示之间自适应地切换,因此缓存完整的表示、缓存完整的自适应集、缓存完整的组、缓存完整的时段、以及完整的媒体剪辑可能会消耗一定的时间。
以举例的形式并且参照图4a和4b所示,代理从客户端接收GET(获得)表示1的片段#1的请求(221),并且将表示1的缓存片段#1(201)发送给客户端(222)。片段#1提取时间在223中示出。对于第二片段,代理接收GET表示2的片段#2(224),代理将表示2的缓存片段#2(207)发送给客户端(225)。片段提取时间#2在226中示出。代理从流客户端接收GET表示2的片段#3的请求(227),并且在228和229中从远程位置(在本例中,例如流服务器)提取表示2的片段#3。然后代理将表示2的片段#3发送给客户端(230)。片段#3提取时间在231中示出。片段#3提取时间(231)比片段提取时间#2(226)长得多,这可以导致客户端使用速率自适应算法切换降低表示水平,例如使用以下文献中的速率自适应方法:Chenghao Liu,ImedBouazizi and Moncef Gabbouj,“Rate adaptation for adaptive HTTP streaming”,Proceedings of ACM MMSys2011,通过引用将其结合在本文中。代理从客户端接收GET表示1的片段#4(232),代理将表示1的缓存片段#4(204)发送给客户端(233)。由于片段#4是使用相对较短的持续时间提取的,如234中所示,客户端可以在接收到片段#4之后再次切换提高表示水平。因此,表示水平可能在不同的表示水平之间波动,而不是收敛到一个表示水平,如图4b所示,因为客户端依次从代理和远程流服务器提取片段。另外,由于起源服务器和代理缓存之间的受限制的带宽和相对长的往返时间(RTT)(特别是当起源服务器相对于DASH客户端位于海外时),不正确地切换提高表示水平可能会导致DASH客户端处的频繁回放中断。基于速率自适应方法的缓冲的媒体时间可以被用于使片段提取时间的变化变平滑。然而,由于代理中丢失若干个连续的片段并且缓存若干个连续的片段,可能会导致缓冲的媒体时间的高变化,并且可能会导致缓冲器耗尽。另外,基于速率自适应方法的缓冲媒体时间可能会降低速率自适应速度,这可能会进一步导致缓冲器耗尽。对于用于通过代理缓存实现的DASH的基于片段提取时间和基于缓冲媒体时间的速率自适应方法,由于起源服务器和代理缓存之间的受限制的带宽和相对长的往返时间(RTT)、以及不正确的速率自适应,DASH客户端可能会频繁地遭受回放中断。
在本文中提供方法、设备和计算机程序产品用于附加DASH片段请求的语法,以指示来自其他表示的片段在响应中是被允许的。如本文所述,一些其他的示例实施例可以配置成以这样的方式修改流客户端设备的操作,使得其授予许可从而使来自一些其他表示的各个片段作为对片段请求的响应。另外的一些示例实施例可以修改代理操作,使得代理缓存设备可以配置成确定替代片段是否可以被用在响应中,并且在请求片段或任何替代片段可在代理缓存设备中容易地获取的情况下,选择这些片段之一来响应片段请求。
以前,由特定URL识别的特定单一片段(或者更一般地说,单一资源)可以利用一个HTTP GET请求进行请求。也就是说,并不指示其他片段(来自其他表示)这样的替代物或选项。因此,代理无法以替代资源来响应请求。使用本文描述的系统和方法,代理可以配置成以主要表示或替代表示响应请求,因此,例如,总的网络流量以及对起源服务器的访问数量可以减少。另外,例如,客户端经历的平均响应时间可以减小,因为更可能的是代理能够响应请求。因此,DASH客户端(例如流客户端设备)可能会作出更少的由于延迟到达的片段而导致的不正确速率自适应决定,并且还可能面对更少的由于同一原因导致的回放中断。
现在参照图1,图1示出根据示例实施例的用于接受DASH的多个表示的系统100的框图。应理解的是,系统100以及其他图中的展示各自被提供作为一些实施例的实例,并且不应被解释为以任何方式缩小本公开的范围或精神。在这方面,除了那些本文示出的和描述的实施例,本公开的范围涵盖许多潜在的实施例。因此,尽管图1示出用于接受DASH的多个表示的系统的配置的一个实例,但是许多其他配置也可以用于实现本发明的实施例。
系统100可以包括一个或多个流客户端设备102(也被称为作DASH客户端、用户代理等等),一个或多个代理缓存设备104(也被称为代理),和/或一个或多个服务网络设备108。系统100还可以包括网络106。网络106可以包括一个或多个有线网络,一个或多个无线网络,或者它们的组合。例如,网络106可以包括用于一个或多个流客户端设备102和/或多个代理缓存设备104的服务网络(例如,服务蜂窝网络)。在一些实施例中,网络106可以包括一个或多个流客户端设备102,一个或多个代理缓存设备104,和/或一个或多个服务网络设备108自身。根据示例实施例,网络106可以包括因特网。在一些实施例中,网络106可以包括内容递送网络(CDN),其也可以称作内容分发网络。在各个实施例中,网络106可以包括有线接入链路,例如,其利用数字用户线(DSL)技术将一个或多个流客户端设备102或者一个或多个代理缓存设备104连接到网络106的剩余部分。在一些实施例中,网络106可以包括公共陆地移动网络(例如,蜂窝网络),例如可以由网络运营商(例如,蜂窝接入提供商)实现。网络106可以根据以下标准操作:通用陆地无线接入网(UTRAN)标准,演进型UTRAN(E-UTRAN)标准,第三代合作伙伴计划(3GPP)LTE(也被称为LTE-A)标准的当前和未来实现方式,国际电信联盟(ITU)国际移动电信-高级(IMT-A)系统标准的当前和未来实现方式,和/或类似物。然而,应理解的是,尽管本文对网络标准和/或特定于网络标准的术语做出引用,但是该引用仅以举例的方式给出,而不是限制的方式。
根据各个实施例,一个或多个流客户端设备102可以配置成直接与一个或多个服务网络设备108连接,例如通过空中接口而不通过网络106的一个或多个元件对通信进行路由。可替换地或者附加地,一个或多个流客户端设备102可以配置成通过网络106与一个或多个服务网络设备108通信。在这方面,服务网络设备108可以包括网络106的一个或多个节点。例如,在一些示例实施例中,服务网络设备108可以至少部分体现在一个或多个包括网络106的无线接入网(RAN)部分的元件的计算装置上。在这方面,例如,服务网络设备108可以至少部分体现在网络106的接入点上(例如,宏蜂窝、微蜂窝、微微蜂窝、毫微微蜂窝、封闭用户群组(CSG)蜂窝、基站、基站收发台(BTS)、节点B、演进型节点B、接入点(AP)、群组所有者、网格站(STA)、网格点、和/或类似物),例如,其可以配置成把对网络106的接入(例如,经由无线电上行链路)提供给一个或多个流客户端设备102。在一些实施例中,服务网络设备108可以包括接入网发现和选择功能(ANDSF),和/或类似物。因此,每个服务网络设备108可以包括一个网络节点或多个网络节点,所述多个网络节点被共同配置成执行关于本文公开的各示例实施例描述的一个或多个归因于服务网络设备108的操作。
可替换地或者附加地,根据一些示例实施例,一个或多个流客户端设备102可以配置成与一个或多个代理缓存设备104连接。在此类实施例中,一个或多个代理缓存设备104可以按照与关于上述一个或多个流客户端设备102所描述的方式相同或类似的方式,与一个或多个服务网络设备108通信。
根据各个实施例,系统100可以根据用于提供媒体内容的分配的架构进行配置。在这方面,系统100可以被配置为HTTP流系统。例如,系统100可以配置成分配一个或多个由DASH标准定义的媒体展现,所述DASH标准例如是3GPP DASH(3GPP技术规范26.246)或运动图像专家组(MPEG)DASH(ISO/IEC国际标准23009-1),通过引用将这两者结合在本文中。
根据各个实施例,系统100可以配置成实现服务器驱动的替代表示方法,例如流客户端设备102可以使代理缓存设备104取决于代理缓存设备104的缓存状态而以主要表示或替代表示来响应HTTP请求。根据各个实施例,系统100还可以配置成实现代理驱动的替代表示方法,例如流客户端设备102可以使代理缓存设备104提供缓存的替代资源的统一资源指示符(URI)以供选择。在从代理缓存设备104接收到信令时,流客户端设备102可以请求用于代理驱动的内容协商的最佳资源。
在一些示例实施例中,如本文所述的替代表示可以代表由代理缓存设备104缓存的表示,其被流客户端设备102接受作为所请求的主要表示的替代物。另外,用于替代表示的信令在流客户端设备102和代理缓存设备104之间发生。
在下面的各个实施例中,以片段请求语法提供替代URL、表示、资源、或类似物的列表。该列表可以是无序的,即流客户端设备102可以在其希望在响应中接收到列表成员中的哪一个(一些)方面,不具有指示的偏好。可替换地,列表可以是有序的,即可以偏向于接收到列表中的特定项目,而不是列表中该特定项目之后的任何项目。可替换地,列表可以是有序项目和无序项目的组合,其中指示出特定的列表项目是否以相对于其他有序项目的优先级顺序被列出,或者特定列表项目在列表中的放置是否指示出相对于其他列表项目不具有偏好。可替换地,列表项目之间的偏好可以被明确地指示,例如通过给出或推导出每个列表项目的优先级值。如果客户端不具有各个列表项目之间的偏好,则可以使用相同的优先级值。
可替换地或者附加地,一些实施例的系统100可以包括服务器驱动的内容协商,其中流客户端设备102在HTTP GET请求中指示其偏好,并且代理缓存设备104选择适合流客户端的需求和偏好的资源。在代理驱动的内容协商中,代理缓存设备104可以用许多替代URI来响应,其中客户端可以从这些替代URI中选出适合其需求的最佳URI。
流客户端设备102可以具体化为任何计算装置,例如,台式电脑、笔记本电脑、移动终端、移动计算机、移动电话、移动通信装置、平板电脑装置、游戏装置、数码相机/摄录机、音频/视频播放器、电视装置、无线电接收机、数字视频录像机、定位装置、手表、便携式数字助理(PDA)、固定的收发机装置(例如,附接到交通信号灯、能量表、灯泡、和/或类似物)、芯片组、包括芯片组的设备、它们的任何组合、和/或类似物。
在一些示例实施例中,流客户端设备102可以具体化为移动终端,例如图2中示出的移动终端。在这方面,图2示出代表流客户端设备102的一个实施例的移动终端10的框图。然而,应理解的是,在图中示出并且在下文描述的移动终端10仅举例说明一种类型的可以实现和/或受益于各个实施例的计算装置(即流客户端设备102),因此不应该被理解为限制本公开的范围。尽管电子装置的若干个实施例已经被示出并且将在下文中出于举例的目的进行描述,但是其他类型的电子装置(例如移动电话、移动计算机、便携式数字助理(PDA)、寻呼机、膝上型计算机、台式计算机、游戏装置、电视)以及其他类型的电子系统可以采用本发明的各种实施例。
如图所示,移动终端10可以包括与发射机14和接收机16通信的天线12(或多个天线12)。移动终端10还可以包括处理器20,该处理器20被配置成提供信号到发射机以及从接收机接收信号。例如,处理器20可以具体化为各种包括电路的装置、一个或多个具有随附数字信号处理器的微处理器、一个或多个不具有随附数字信号处理器的处理器、一个或多个协处理器、一个或多个多核处理器、一个或多个控制器、处理电路、一个或多个计算机、包括集成电路(例如ASIC(专用集成电路)或FPGA(现场可编程门阵列))的各种其他处理元件、或它们的一些组合。因此,尽管在图2中被示出为单个处理器,但是在一些示例实施例中,处理器20可以包括多个处理器。由处理器20发送和接收的这些信号可以包括依照可适用的蜂窝系统的空中接口标准的信令信息、和/或任何数量的不同有线或无线联网技术,包括但不限于Wi-Fi,无线本地接入网络(WLAN)技术例如蓝牙TM(BT),超宽带(UWB),电气和电子工程师协会(IEEE)802.11、802.16,和/或类似物。另外,这些信号可以包括语音数据、用户生成的数据、用户请求的数据、和/或类似物。在这方面,移动终端可以能够以一种或多种空中接口标标准、通信协议、调制类型、接入类型、和/或类似物进行操作。更特别地,移动终端可以能够依照各种第一代(1G)、第二代(2G)、2.5G、第三代(3G)通信协议、第四代(4G)通信协议、因特网协议多媒体子系统(IMS)通信协议(例如,会话发起协议(SIP))、和/或类似物进行操作。例如,移动终端可以能够依照2G无线通信协议IS-136(时分多址(TDMA))、全球移动通信系统(GSM)、IS-95(码分多址(CDMA))、和/或类似物进行操作。此外,例如,移动终端可以能够依照2.5G无线通信协议通用分组无线业务(GPRS)、增强型数据GSM环境(EDGE)、和/或类似物进行操作。另外,例如,移动终端可以能够依照3G无线通信协议例如通用移动电信系统(UMTS)、码分多址2000(CDMA2000)、宽带码分多址(WCDMA)、时分同步码分多址(TD-SCDMA)、和/或类似物进行操作。移动终端可以附加地能够依照3.9G无线通信协议例如长期演进型(LTE)或演进型通用陆地无线接入网(E-UTRAN)和/或类似物进行操作。另外,例如,移动终端可以能够依照第四代(4G)无线通信协议例如高级LTE和/或类似物以及将来可以开发出的类似无线通信协议进行操作。
一些窄带高级移动电话系统(NAMPS)、以及全接入通信系统(TACS)移动终端也可以受益于本发明的实施例,如双模式或更高模式的电话(例如,数字/模拟或TDMA/CDMA/模拟电话)受益于本发明的实施例那样。此外,移动终端10可以能够根据Wi-Fi或全球微波接入互操作性(WiMAX)协议来操作。
应理解的是,处理器20可以包括用于实现移动终端10的音频/视频和逻辑功能的电路。例如,处理器20可以包括数字信号处理器装置、微处理器装置、模拟-数字转换器、数字-模拟转换器、和/或类似物。根据这些装置各自的功能,移动终端的控制和信号处理功能可以在这些装置之间进行分配。处理器可以额外包括内部语音编码器(VC)20a、内部数据调制解调器(DM)20b、和/或类似物。此外,处理器可以包括操作一个或多个软件程序的功能,其中软件程序可以存储在存储器中。例如,处理器20可以能够操作连接程序,例如网页浏览器。连接程序可以允许移动终端10根据诸如无线应用协议(WAP)、超文本传输协议(HTTP)、和/或类似物的协议发送和接收网络内容,例如基于位置的内容。移动终端10可以能够使用传输控制协议/因特网协议(TCP/IP)来跨越因特网或其他网络发送和接收网络内容。
移动终端10还可以包括用户接口,其包括例如耳机或扬声器24、振铃器22、麦克风26、显示器28、用户输入接口、等等,它们可以可操作地耦合到处理器20。在这方面,处理器20可以包括用户接口电路,其被配置成控制用户接口的一个或多个元件的至少一些功能,例如控制扬声器24、振铃器22、麦克风26、显示器28、等等的至少一些功能。处理器20和/或包括处理器20的用户接口电路可以配置成通过存储在可由处理器20访问的存储器(例如,易失性存储器40、非易失性存储器42、和/或类似物)上的计算机程序指令(例如,软件和/或固件),来控制用户接口的一个或多个元件的一个或多个功能。尽管未示出,移动终端可以包括用于向与移动终端相关的各种电路(例如,提供机械振动作为可检测输出的电路)供电的电池。用户输入接口可以包括允许移动终端接收数据的装置,例如键盘30、触摸显示器(未示出)、操纵杆(未示出)、和/或其它输入装置。在包括键盘的实施例中,键盘可以包括数值(0-9)和相关键(#,*),和/或用于操作移动终端的其他键。
如图2所示,移动终端10还可以包括一个或多个用于共享和/或获取数据的装置。例如,移动终端可以包括短距离射频(RF)收发机和/或询问器64,使得可以根据RF技术与电子设备共享数据和/或从电子设备获取数据。移动终端可以包括其他短距离收发机,例如红外(IR)收发机66、使用由蓝牙TM特别兴趣组开发的蓝牙TM品牌无线技术进行操作的蓝牙TM(BT)收发机68、无线通用串行总线(USB)收发机70和/或类似物。蓝牙TM收发机68可以能够根据低功耗/能耗或超低功耗/能耗蓝牙TM技术(例如,WibreeTM)无线电标准来操作。在这方面,移动终端10并且特别是短距离收发机可以能够发送数据至移动终端的近距离之内(例如在10米之内)的电子装置和/或从该电子装置接收数据。尽管未示出,移动终端可以能够根据各种无线联网技术(包括6LoWpan,Wi-Fi,Wi-Fi低功耗,WLAN技术例如IEEE802.11技术、IEEE802.15技术、IEEE802.16技术、和/或类似物)从电子装置发送和/或接收数据。
移动终端10可以包括存储器,例如可移除或不可移除的用户身份模块(SIM)38、软SIM38、固定SIM38、可移除或不可移除的通用用户身份模块(USIM)38、软USIM38、固定USIM38、可移除用户身份模块(R-UIM)、和/或类似物,它们可以存储与移动用户相关的信息元素。除了SIM之外,移动终端还可以包括其他可移除和/或固定的存储器。移动终端10可以包括易失性存储器40和/或非易失性存储器42。例如,易失性存储器40可以包括随机存取存储器(RAM),其包括动态和/或静态RAM、片上或片外高速缓冲存储器、和/或类似物。可以嵌入和/或移除的非易失性存储器42可以包括例如只读存储器、闪速存储器、磁存储装置(例如,硬盘、软盘驱动器、磁带等等)、光盘驱动器和/或介质、非易失性随机存取存储器(NVRAM)、和/或类似物。类似的易失性存储器40和非易失性存储器42可以包括用于数据的临时存储的高速缓存区。存储器可以存储一个或多个软件程序、指令、信息、数据、和/或类似物,它们可以被移动终端用来执行移动终端的功能。例如,存储器可以包括能够唯一地标识移动终端10的标识符,例如国际移动设备标识(IMEI)码。
现在参照图3,图3示出根据示例实施例的设备300的框图。在示例实施例中,流客户端设备102、代理缓存设备104、和/或服务网络设备108可以实现在设备300中或者以其他方式通过设备300体现。这些装置可以包括一个或多个处理器110、存储器112、通信接口114、用户接口116、或灵活缓存模块118。如本文描述的设备300的装置可以被具体化为:例如,电路;硬件元件(例如,适当编程的处理器、组合逻辑电路、和/或类似物);计算机程序产品,其包括存储在计算机可读介质(例如存储器112)上的可由适当配置的处理设备(例如,处理器110)执行的计算机可读程序指令(例如,软件或固件);或者它们的某种组合。
在一些示例实施例中,图3示出的一个或多个装置可以被具体化为芯片或芯片组。换言之,设备300可以包括一个或多个物理封装(例如,芯片),其包括结构组件(例如,基板)上的材料、部件和/或导线。结构组件可以为其上包括的部件电路提供物理强度、尺寸保持、和/或电相互作用的限制。在这方面,处理器110、存储器112、通信接口114、用户接口116、和/或灵活缓存模块118可以被具体化为芯片或芯片组。在一些示例实施例中,设备300因此可以配置成在单个芯片上实现本发明的实施例或者作为单个“片上系统”。再举一个实例,在一些示例实施例中,设备300可以包括部件,其被配置成在单个芯片上实现本发明的实施例或者作为单个“片上系统”。因此,在一些情况下,芯片或芯片组可以构成用于执行一个或多个提供本文描述的功能的操作和/或用于实现关于本文描述的这些功能和/或服务的用户界面导航的装置。
例如,处理器110可以被具体化为各种装置,包括一个或多个具有随附数字信号处理器的微处理器、一个或多个不具有随附数字信号处理器的处理器、一个或多个协处理器、一个或多个多核处理器、一个或多个控制器、处理电路、一个或多个计算机、包括集成电路(例如,ASIC(专用集成电路)或FPGA(现场可编程门阵列))的各种其他处理元件、一个或多个其他硬件处理器、或它们的一些组合。因此,尽管在图3中被示出为单个处理器,但是在一些实施例中,处理器110可以包括多个处理器。多个处理器相互间可操作地通信,并且可以被共同配置成执行如本文所述的设备300的一个或多个功能。多个处理器可以在单个计算装置上体现,或者被分布在多个被共同配置成充当设备300的计算装置上。在设备300被具体化为移动终端10的实施例中,处理器110可以被具体化为或者包括处理器20。在一些示例实施例中,处理器110被配置成执行存储在存储器112中或者可通过其他方式由处理器110访问的指令。当这些指令被处理器110执行时,可以使设备300执行如本文所述的设备300的一个或多个功能。因此,无论处理器110通过硬件或软件方法还是它们的组合进行配置,处理器110可以包括在被相应地配置时能够执行根据本发明的实施例的操作的实体。因此,例如,当处理器110被具体化为ASIC、FPGA或类似物时,处理器110可以包括用于进行本文所述的一个或多个操作的专门配置的硬件。可替换地,再举一个实例,当处理器110被具体化为指令(例如可以存储在存储器112中)的执行者时,指令可以具体地将处理器110配置成执行本文所述的一个或多个算法和操作。
存储器112可以包括例如易失性存储器、非易失性存储器、或它们的某种组合。在这方面,存储器112可以包括一个或多个有形的和/或非暂时性计算机可读存储介质,其可以包括易失性和/或非易失性存储器。尽管在图3中被示为单个存储器,但是存储器112可以包括多个存储器。多个存储器可以被体现在单个计算装置上,或者被分布在多个被共同配置成充当设备300的计算装置上。在各示例实施例中,存储器112可以包括硬盘、随机存取存储器、高速缓存存储器、闪速存储器、紧凑盘只读存储器(CD-ROM)、数字多功能盘只读存储器(DVD-ROM)、光盘、配置成存储信息的电路、或它们的一些组合。在设备300被具体化为移动终端10的实施例中,存储器112可以包括易失性存储器40和/或非易失性存储器42。存储器112可以配置成存储信息、数据、应用、指令、或类似物,以便使设备300能够执行根据各示例实施例的各个功能。例如,在一些示例实施例中,存储器112被配置成缓冲用于由处理器110处理的输入数据。附加地或者可替换地,存储器112可以配置成存储用于由处理器110执行的程序指令。存储器112可以存储静态和/或动态信息形式的信息。该存储的信息可以被灵活缓存模块118在执行其功能的过程中存储和/或使用。
通信接口114可以被具体化为用以下方式实施的任何设备或装置:电路;硬件;计算机程序产品,其包括存储在计算机可读介质(例如,存储器112)上并且由处理装置(例如,处理器110)执行的计算机可读程序指令;或者被配置成从另一个计算装置接收数据和/或发送数据到另一个计算装置的上述的组合。在示例实施例中,通信接口114可以至少部分地被具体化为处理器110或者被处理器110以其他方式控制。在这方面,通信接口114可以与处理器110通信,例如通过总线通信。通信接口114可以包括:例如,天线、发射机、接收机、收发机和/或用于实现与一个或多个远程计算装置的通信的支持硬件或软件。通信接口114可以配置成使用可以用于计算装置之间的通信的任何协议来接收和/或发送数据。在这方面,通信接口114可以配置成使用可以用于通过无线网络、有线网络、它们的组合、或类似物(通过该类似物,流客户端设备102与一个或多个计算装置或计算资源可以通信)进行数据传输的任何协议来接收和/或发送数据。举个实例,通信接口114可以配置成实现设备300和另一个装置(例如,另一个设备300)之间的通信。再举个实例,通信接口114可以配置成通过网络106实现通信。通信接口114可以额外地与存储器112、用户接口116、和/或灵活缓存模块118通信,例如通过总线通信。
用户接口116可以与处理器110通信,以接收用户输入的指示和/或提供可听输入、可视输入、机械输入、或其他输入给用户。因此,用户接口116可以包括例如键盘、鼠标、操纵杆、显示器、触摸屏显示器、麦克风、扬声器、和/或其他输入/输出机构。在用户接口116包括触摸屏显示器的实施例中,用户接口116可以额外地配置成检测和/或接收触摸手势的指示或对触摸屏显示器的其他输入。用户接口116可以与存储器112、通信接口114、和/或灵活缓存模块118通信,例如通过总线通信。
灵活缓存模块118可以被具体化为各种装置,例如:电路;硬件;计算机程序产品,其包括存储在计算机可读介质(例如,存储器112)上并且由处理装置(例如,处理器110)执行的计算机可读程序指令;或者上述的组合。并且在一些实施例中,灵活缓存模块118被具体化为处理器110或者被处理器110以其他方式控制。在灵活缓存模块118被具体化为与处理器110分离的实施例中,灵活缓存模块118可以与处理器110通信。灵活缓存模块118还可以与一个或多个存储器112、通信接口114、或用户接口116通信,例如通过总线通信。
在一些示例实施例中,灵活缓存模块118被配置成将MPD中的@segmentAlignment(片段对齐)设置为非假值。该设置可以指示:任何特定媒体类型的媒体成分的展现开始和结束时间在跨越自适应集(其中包括@segmentAlignment)中的所有表示的所有片段中在时间上被对齐。
在一些示例实施例中,例如通过使用处理器110、灵活缓存模块118等,可以将流客户端设备102配置成使用“Accept-Alternative-URI(接受替代URI)”头字段来指定作为对其中包含有“Accept-Alternative-URI”头字段的GET请求的响应而可接受的URI。在一些示例实施例中,“Accept-Alternative-URI”头字段可以被用在服务器驱动的内容协商中。“Accept-Alternative-URI”头字段的语法可以使用扩展巴克斯范式(ABNF)的形式被指定如下:
Accept-Alternative-URI=#(Alternative-URI[OWS";"OWS"q="
qvalue])
Alternative-URI="http:""//"alternative authority path-
Abempty["?"query]
在一些示例实施例中,在所请求的资源或在“Accept-Alternative-URI”头中列出的任何资源以及满足请求的其他要求的任何资源被请求中的用于实现服务器驱动的内容协商或缓存控制指令的例如一个或多个头字段指示的情况下,图1的代理缓存设备104可以配置成例如通过使用处理器110、通信接口114、灵活缓存模块118等来响应GET请求。
在一些示例实施例中,“Accept-Alternative-URI”可以与“Connection(连接)”头字段一起使用,并且可以指定“Accept-Alternative-URI”。“Connection”头字段可以使流客户端设备102能够指定:“Accept-Alternative-URI”选项被期望用于流客户端设备102和代理缓存设备104之间的连接。用于“Accept-Alternative-URI”的“Connection”ABNF语法被定义为以下:
Connection=1#connectin-token
Connection-token=Accept-Alternative-URI
在一些实施例中,例如通过处理器110、灵活缓存模块118等,代理缓存设备104可以在消息被转发之前解析所接收的连接头字段,并且对于该字段中的每个连接标记,从消息中移除具有与该连接标记(具体地是Accept-Alternative-URI)相同的名称的任何头字段,并且之后移除连接头字段自身或者将其替换为发送者自身关于所转发消息的连接选项。在一些情况下,在代理不具有所请求的资源或在“Accept-Alternative-URI”中列出的任何资源的情况下,HTTP GET请求可以被转发。
在一些示例实施例中,示例HTTP GET请求可以包括第一URI(用于第一表示的特定片段),其包括许多被接受的q值和来自另一表示的片段(其可以是适当的响应)的指示。来自其他表示的片段可以最初已经具有与所请求的URI不同的URI。因此,相同的资源可能在不同的URI下出现在后续的代理或缓存中。因此,缓存指令可以被用于阻止在任何后续代理/缓存中缓存该响应。
HTTP GET片段#1可以包括“Accept-Alternative-URI”用法的实例:
示例HTTP GET片段#2请求:
参照上面的对片段#1的HTTP GET请求的实例,example.com/contents/rep-5/seg-1.3gp可以被识别为主要URI,并且http://example.com/contents/rep-4/seg-1.3gp和example.com/contents/rep-3/seg-1.3gp可以被确定为替代URI。
在代理缓存设备104确定主要URI的资源的情况下,其可以配置成以主要URI响应流客户端设备102。
在代理缓存设备104处未缓存主要资源的情况下,然后代理缓存设备104可以例如通过处理器110、通信接口114、灵活缓存模块118等以资源(例如,次要资源)来响应。参照上面的对片段#1的HTTP GET请求的实例,代理缓存设备104可以用资源example.com/contents/rep-4/seg-1.3gp来响应。否则,代理缓存设备104可以用与GET http://example.com/contents/rep-3/seg-1.3gp相对应的资源来响应。如果代理缓存设备104中有多于一个的识别出的次要资源可用,那么代理缓存设备可以根据q值选择被用在响应中的资源。代理缓存设备104可以处理“Connection”头字段的指令从而移动连接标记,在本例中具体是Accept-Alternative-URI头字段。“Connection”头字段可以配置成允许发送者(例如流客户端设备102)指定期望用于特定连接的选项。
在一些示例实施例中,头字段例如“Accept-Alternative-Representation”头可以通过灵活缓存模块118添加到请求中。示例头字段可以用于向代理缓存设备104指示:除主要表示之外的替代表示是可接受的。示例头字段还可以包括所接受的替代Representation@id值的列表,其中在一些实施例中,所接受的替代Representation@id值可以已经由流客户端设备102确定。示例“Accept-Alternative-Representation”头字段的语法包括但不限于:
在一些示例实施例中,灵活缓存模块118可以使用URI-Template(URI-模板)和representationid-rangespec(表示id-范围规范)来构造替代URI。URI-Template可以与主要URI相同或类似,除了其可以具有不同的representationID(表示ID)以外。在主要URI中,representationID通常是特定整数值,但是可以可替换地是与representation-list(表示-列表)一起使用的任何字符串。换言之,在上述ABNF语法中由representationid语法元素表示的Representation@id值可以是特定一组值(例如非负整数值)构成的任何字母数字字符串。URI-Template可以包含representationID的占位符,并且占位符可以作为“$representationID$”出现在URI-Template中。灵活缓存模块118可以通过使用表示ID的范围或列表来指示替代表示ID是被接受的。当范围被使用时,第一给定representationid和第二给定representationid可以指示连续范围的替代表示ID的起点和终点。对于representationid-range语法的使用,可以指定Representation@id值的次序或排序,例如按升序排列整数值、或者按字母顺序排列字母数字字符串。representationid-range语法可以指定按照Representation@id的指定次序或排序从第一给定representationid到第二给定representationid的所有值(包括端点在内),以识别替代表示。起点替代表示ID可以比终点替代表示ID更大或更小。起点替代表示ID和终点替代表示ID可以被分别分配相关联的起点质量值和终点质量值,它们表示对应边界表示ID的偏好。除了起点替代表示ID和终点替代表示ID之外的其他替代表示ID的质量值可以被推导出,例如由灵活缓存模块118通过均匀地分配起点质量值和终点质量值之间的质量值。当使用列表时,接受的表示ID的列表可以被列出。每个表示ID可以被分配相关联的质量值,其代表具有该表示ID的表示的偏好。默认值是q=1,其指示最高的偏好。另一方面,q=0指示最低的偏好。
具有范围的Accept-Alternative-Representation(接受-替代-表示)的实例被如下给出:
Accept-Alternative-Representation:
http://example.com/contents/rep-$representationID$/seg-1.3gp;
representationID=4-2;q=0.8-0.2
具有范围的Accept-Alternative-Representation的实例可以被解释为例如对于seg-1.3gp没有缓存主要表示的情况,流客户端设备102于是可以配置成接受seg.1.3gp的三个替代表示,其包括分别具有与4、3或2相等的ID以及0.8、0.5和0.2的偏好的表示。
在一些实施例中,基于列表的Accept-Representation(接受-表示)可以包括:
Accept-Alternative-Representation:
http://example.com/contents/rep-$representationID$/seg-1.3gp;
representationID=5;q=l,representationID=4;q=0.8,
representationID=3;q=0.5
Accept-Alternative-Representation的实例可以被解释为对于片段#1没有缓存主要表示的情况,流客户端设备102可以配置成,例如通过流客户端设备102接受该片段的次要表示ID#5、#4、和#3之一。在一些示例实施例中,例如通过处理器110、灵活缓存模块118等,流客户端设备102偏好表示ID#5的片段,但是如果代理缓存设备104未缓存表示ID#5的片段,则代理缓存设备104可以发送表示ID#4的片段,并且如果其不存在,则代理缓存设备104可以发送片段#1的表示ID#3。使用所提出的“Accept-Alternative-Representation”头字段的流客户端设备102处的HTTP GET片段请求的实例被如下给出。
HTTP GET片段#l请求:
GET http://example.com/contents/rep-5/seg-1.3gp
Accept-Alternative-Representation:
http://example.com/contents/rep-$representationID$/seg-1.3gp;
representationID=4-3;q=0.8-0.2
HTTP GET片段#2请求:
GET http://example.com/contents/rep-6/seg-2.3gp
Accept-Alternative-Representation:
http://example.com/contents/rep-$representationID$/seg-2.3gp;
representationID=5;q=0.8
该实例可以被解释为,流客户端设备102顺次地请求(例如通过处理器110、灵活缓存模块118等)片段#1的表示ID#5和片段#2的表示ID#6。对于片段#1,流客户端设备102指示:在丢失表示ID#5的情况下,其也接受替代表示ID#4和#3。对于片段#2,在丢失表示ID#6的情况下,流客户端设备102可替换地接受表示ID#5。
在一些示例实施例中,URI-template还可以包含其他占位符,例如那些在MPEGDASH中指定的占位符,即$Number$对应于片段标识符,$Bandwidth$对应于表示的带宽(例如,流客户端设备102可以例如通过处理器110推导出期望的表示的Representation@bandwidth属性的值),以及$Time$对应于片段时间(流客户端设备102可以例如通过处理器110推导出片段时间轴,特别是SegmentTimeline@t属性)。在一些示例实施例中,当从URI-template解析URI时被插入从而取代占位符的值,在Accept-Alternative-Representation头内被传递,类似于所接受的表示ID。
在其他示例实施例中,请求中的头字段例如“Accept-Cached-Alternative-Representation”可以由灵活缓存模块118指定。“Accept-Cached-Alternative-Representation”可以用于命令代理缓存设备104以所缓存的替代资源的URI的列表和范围来回应,以用于代理驱动的内容协商。“Accept-Cached-Alternative-Representation”还可以包括次要URI的模板,以用于搜索所缓存的替代资源。
“Accept-Cached-Alternative-Representation”头字段的语法包括但不限于:
以举例的方式,HTTP GET请求中的主要URI还可以包括含有URI模板的指示,以便请求缓存代理以所缓存的替代资源的URI的列表和范围来回应,以用于代理驱动的内容协商。当将URI模板中的$RepresentationID$替换为主要请求的表示的Representation@id值时,主要请求的资源的URI应该得以产生。在使用所提出的“Accept-Cached-Alternative-Representation”头字段的流客户端设备102处的HTTP GET片段请求的实例包括但不限于:
GET http://example.com/contents/rep-5/seg-l.3gp
Accept-Cached-Alternative-Representation:
http://example.com/contents/rep-$representationID$/seg-1.3gp;
“Accept-Cached-Alternative-Representation”头字段例如可以被解释为对于seg-1.3gp没有缓存主要表示#5。流客户端设备102可以请求(例如通过处理器110、通信接口114、灵活缓存模块118等)代理缓存设备104响应所有缓存的次要URI,其匹配在“Accept-Cached-Alternative-Representation”中为替代资源指定的模板。
在一些示例实施例中并且如本文所述,Accept(接受)头中的每个媒体范围之后可以跟随一个或多个accept-parameter(接受参数),其以用于指示相对质量因子的“q”参数开始。第一“q”参数(如果有的话)将media-range(媒体范围)参数与accept-parameter分隔开。在一些示例实施例中,质量因子允许流客户端设备102使用从0到1的q值范围来指示(例如通过处理器110、灵活缓存模块118等)该媒体范围的相对偏好程度。在一些实施例中,q值可以用于确定替代表示的选择标准。
在一些示例实施例中,为服务器驱动的内容协商指定媒体类型DASH和子类型representation-x,它们包括但不限于:
新内容类型=类型/子类型
类型=dash
子类型=representation-x
其中x可以是整数值或者可替换地是任何字符串。
在一些示例实施例中,自适应集的表示可以与内容类型相关联。特定的内容类型可以与“q”参数相关联,以指示该内容类型的偏好。自适应集使用“Accept(接受)”头字段接受次要表示的实例包括但不限于:
“Accept”头字段可以包括
Accept:(dash/representation-x,q=qvalue)
示例accept头字段可以列出一个或多个次要子类型,其被配置成向代理缓存设备104指示:流客户端设备102接受特定的内容类型。HTTP GET片段请求的实施例可以包括
使用定义的媒体类型/子类型的“Accept”的实例包括但不限于HTTPGET片段#1请求:
GET http://example.com/contents/seg-1.3gp?content-
type=dash/representation-5
Connection:Accept
Accept:dash/representation-4;q=0.8,dash/representation-3;q=0.6
该实例可以被解释为主要内容类型,即流客户端设备102是seg-1.3gp的dash/representation-5。如果主要内容类型未被代理缓存设备104缓存,则流客户端设备102还可以接受内容类型dash/representation-4。否则,如果内容类型dash/representation-5和dash/representation-4未被缓存,则流客户端设备102还可以接受内容类型dash/representation-3。否则,(如果主要内容类型和次要内容类型未被缓存代理缓存),则代理缓存设备104应当处理“连接”头字段的指令以移动连接标记,在本例中具体地是“接受”头字段。
为了使用基于内容类型的接受多个表示的方法,代理缓存设备104可以配置成知道新的内容类型dash/representation-x。
在一些实施例中,子类型可以被额外定义成标识自适应集,例如,subtype=adaptation-set-X-representation-Y,其可以通过将X和Y替换为自适应集ID和表示ID的整数值而得到使用。
在实施例中,用于HTTP GET响应的“Response-URI”头字段可以被指定。“Response-URI”可以用于向流客户端设备102指示:由于在缓存代理处丢失主要URI,提供替代URI以用于服务器驱动的内容协商。头字段可以包括选定的URI。“Response-URI”头字段的语法和语义被指定如下。在HTTP响应中,状态码例如“208Alternative Content”可以被用在HTTP响应中,以便向流客户端设备102指示:响应中的资源不包括主要URI的资源。在服务器驱动的内容协商情况下,“Accept-Alternative-URI”或“Accept-Alternative-Representation”应当被包括在“Vary(改变)”头字段中,以便表达缓存代理服务器用以选择经受服务器驱动的协商的表示的参数。
Response-URI=1#URI
URI指示响应的资源的URI。响应头字段“Response-URI”可以用于以头字段“Accept-Alternative-URI”来响应HTTP GET请求。
在一些示例实施例中,“Accept-Alternative-URI”和“Response-URI”可以被协同地用于从流客户端设备102向代理缓存设备104告知在流客户端设备102处接受的替代URI,以及从流客户端设备102向代理缓存设备104告知被递送给流客户端设备102的资源的URI。
“Accept-Alternative-URI”被知道“Accept-Alternative-URI”的代理缓存设备(例如代理缓存设备104)使用,其可以配置成在代理缓存设备104不能确定和/或定位主要URI的资源的情况下,识别次要资源以服务于流客户端设备102的请求。具体地,知道“Accept-Alternative-URI”头的缓存代理检查(例如顺次地检查)在“Accept-Alternative-URI”头字段中指定的次要资源是否被代理缓存设备104缓存。在次要资源被递送给流客户端设备102的情况下,状态码例如“208Alternative Content”(如上所述)可以被用在HTTP响应中,以向流客户端设备102指示:响应中的资源不是主要URI的资源。在这种情况下,新定义的“Response-URI”头字段被用于指示关于响应的资源的选定URI。
在流客户端设备102和代理缓存设备104之间告知“Accept-Alternative-URI”和“Response-URI”的实例被给出如下。
示例流客户端设备102HTTP GET片段#1请求可以包括但不限于:
GET http://example.com/contents/rep-5/seg-1.3gp
Accept-Alternative-URI:http://example.com/contents/rep-4/seg-
1.3gp;q=0.8,
http://example.com/contents/rep-3/seg-1.3gp;q=0.6
示例代理缓存设备104HTTP响应包括但不限于:
HTTP/1.1 208 Alternative Content
DATE:Fri Oct 17 13:00:01 EST 2011
Server:Apache/2.0
Vary:Accept-Alternative-URI
Response-URI:http://example.com/contents/rep-3/seg-1.3gp
在一些实例中,代理缓存设备104可以检查(例如通过处理器110、灵活缓存模块118等)主要URI“http://example.com/contents/rep-5/seg-l.3gp”的资源。在未找到主要URI的情况下,代理缓存设备104可以顺次地检查(例如通过处理器110、灵活缓存模块118等)在“Accept-Alternative-URI”头字段中指定的次要URI的资源。在本例中,代理缓存设备104未找到“http://example.com/contents/rep-4/seg-1.3gp”的资源,并且找到“http://example.com/contents/rep-3/seg-l.3gp”的资源。状态码“208AlternativeContent”和头字段Response-URI:http://example.com/contents/rep-3/seg-l.3gp可以在HTTP响应中被发送,以便向流客户端设备102通知次要资源被递送以及次要资源的选定URI。另外,“Vary”头字段可以包括“Accept-Alternative-URI”头字段,以便表达代理缓存设备104用以选择经受服务器驱动的内容协商的表示的参数。
在另一个实施例中,“Accept-Alternative-Representation”和“Response-URI”可以用于向代理缓存设备104告知所接受的替代表示ID,以及向流客户端设备102告知被用于构造递送给流客户端设备102的次要资源的URI的表示ID。
在代理缓存设备104不能定位主要URI的资源的情况下,“Accept-Alternative-Representation”可以被代理缓存设备104用于构造次要URI。具体地,通过将$representationID$替换为在representationID的范围或列表中指定的对应representationID,可以构造一个或多个次要URI。代理缓存设备104可以配置成顺次地检查(在所构造的次要URI中指定的)次要资源是否被代理缓存设备104缓存。
在次要资源被递送给流客户端设备102的情况下,状态码例如“208AlternativeContent”可以被用在HTTP响应中,以向流客户端设备102指示:响应中的资源不是主要URI的资源。在一些示例实施例中,“Response-URI”可以被包括在HTTP头字段中,以指示响应的资源的选定URI。在另一实施例中,“Response-Representation”可以被包括在HTTP头字段中,以指示响应的资源的选定表示。
流客户端设备102HTTP GET片段#1请求的实例包括但不限于:
GET http://example.com/contents/rep-5/seg-1.3gp
Accept-Alternative-Representation:
http://example.com/contents/rep-$representationID$/seg-1.3gp;
representationID=4-3;q=0.8-0.2
示例代理缓存设备104HTTP响应可以包括但不限于:
HTTP/1.1 208 Alternative Content
DATE:Fri Oct 17 13:00:01 EST 2011
Server:Apache/2.0
Vary:Accept-Alternative-Representation
Response-URI:http://example.com/contents/rep-3/seg-1.3gp
在本例中,代理缓存设备104可以配置成检查主要URI“http://example.com/contents/rep-5/seg-l.3gp”的资源。在主要URI未被找到的情况下,则代理缓存设备104可以配置成使用在Accept-Alternative-Representation头字段中指定的URI模板和representationID来构造示例次要URI http://example.com/contents/rep-4/seg-1.3gp和http://example.com/contents/rep-5/seg-l.3gp。然后代理缓存设备104可以配置成顺次地检查次要URI的资源。在本例中,代理缓存设备104未找到“http://example.com/contents/rep-4/seg-l.3gp”的资源,但是找到了“http://example.com/contents/rep-3/seg-l.3gp”的资源。所以状态码“208Alternative Content”和头字段Response-URI:http://example.com/contents/rep-3/seg-l.3gp可以在HTTP响应中发送给流客户端设备102,以向流客户端设备102通知次要资源被递送以及次要资源的选定URI。另外,“Vary”头字段可以包括“Accept-Alternative-Representation”头字段,以表达被代理缓存设备104用于选择经受服务器驱动的协商的表示的参数。
在一些实施例中,请求中的头字段例如“Response-Representation”可以被指定,例如通过灵活缓存模块118指定。“Response-Representation”可以配置成向流客户端设备102指示:替代表示正被代理缓存设备104提供。例如,由于主要表示在代理缓存设备104处无法获得,因此头字段可以包括选定的Representation@id。
在一些示例实施例中,“Response-Representation”头字段的语法和语义可以包括:HTTP响应;状态码,例如“208Alternative Content”,其可以用于向流客户端设备102指示:响应中的资源不是主要URI的资源。“Accept-Alternative-Representation”应该被包括在“Vary”头字段中,以表达被缓存代理服务器用于选择经受服务器驱动的协商的表示的参数。
Response-Representation=l#representationID
在一些示例实施例中,RepresentationID可以指示次要表示ID的表示ID。响应头字段“Response-Representation”可以与请求头字段“Accept-Alternative-Representation”一起使用。
“Accept-Alternative-Representation”和“Response-Representation”可以被协同地用于向代理缓存设备104告知所接受的替代表示ID,以及向流客户端设备102告知被用于构造次要资源的URI的表示ID。
在一些示例实施例中,在代理缓存设备104不能(例如通过处理器110、灵活缓存模块118等)定位主要URI的资源的情况下,“Accept-Alternative-Representation”可以由知道“Accept-Alternative-Representation”的缓存代理(例如代理缓存设备104)用来构造次要URI。具体地,通过将$representationID$替换为在representationID的范围或列表中指定的对应representationID,可以构造一个或多个次要URI。然后代理缓存设备104可以配置成顺次地确定在所构造的次要URI中指定的次要资源是否被代理缓存设备104缓存。
在次要资源被递送给流客户端设备102的情况下,状态码例如“208AlternativeContent”可以被用在HTTP响应中,以指示响应中的资源不是主要URI的资源。在一些示例实施例中,“Response-URI”可以被包括在HTTP头字段中,以指示响应资源的选定URI。在另一实施例中,“Response-Representation”可以被包括在HTTP头字段中,以指示响应资源的选定表示。
在流客户端设备102和代理缓存设备104之间告知“Accept-Alternative-Representation”和“Response-Representation”的实例被给出如下。
示例流客户端设备102HTTP GET片段#1包括但不限于:
GET http://example.com/contents/rep-5/seg-1.3gp
Accept-Alternative-Representation:
http://example.com/contents/rep-$representationID$/seg-1.3gp;
representationID=4-3;q=0.8-0.2
示例代理缓存设备104HTTP响应包括但不限于:
HTTP/1.1 208 Alternative Content
DATE:Fri Oct 17 13:00:01 EST 2011
Server:Apache/2.0
Vary:Accept-Alternative-Representation
Response-Representation:3
在本例中,“Response-Representation”头字段替代“Response-URI”被包括在响应头字段中,并且被配置成向流客户端设备102通知次要资源被递送以及次要资源的选定表示ID。另外,“Vary”头字段包括“Accept-Alternative-Representation”头字段,以表达被代理缓存设备104用于选择经受服务器驱动的协商的表示的参数。
在另一实施例中,请求中的头字段例如“Cached-Alternative-Representation”可以被指定,例如由灵活缓存模块118指定,其被用于向流客户端设备102告知用于代理驱动的内容协商的所缓存的替代资源的URI的列表和/或范围。
“Cached-Alternative-Representation”头字段的示例语法可以包括但不限于:
在一些示例实施例中,符号的语义可以等于“Accept-Alternative-Representation”指定的符号的语义。头字段“Cached-Alternative-Representation”和“Accept-Alternative-Representation”之间的差异在于,前一信号是从代理缓存设备104到流客户端设备102,而后一信号是从流客户端设备102到代理缓存设备104。另外,流客户端设备102上对表示的偏好可以被包括在“Accept-Alternative-Representation”中,而在缓存处对表示的偏好不被包括在“Cached-Alternative-Representation”中。
图5示出关于服务器驱动的内容协商,根据流客户端设备102的操作的示例方法的流程图。在这方面,图5示出可以在流客户端设备102执行的操作。在图5中示出并且关于图5描述的操作可以例如由处理器110、存储器112、通信接口114、或灵活缓存模块118中的一个或多个执行、在其辅助下执行、和/或在其控制下执行。在一些示例实施例中,流客户端设备102可以配置成指定替代资源的片段(也被称为资源)的主要表示和次要表示以及对应的偏好。流客户端设备102还可以配置成按照代理缓存设备104被配置成推导出主要资源和替代资源的主要URI和次要URI以及对应的偏好的方式,向代理缓存设备104告知片段的主要表示和次要表示。
如操作302所示,流客户端设备102被配置成使得片段的主要表示的主要URI被添加到HTTP请求中,并且在操作303中,使得指示该流客户端设备102被配置成接受表示ID的模板被添加到“Accept-Alternative-Representation”头字段中,以指定片段的次要表示。处理器110、存储器112、和/或灵活缓存模块118可以例如提供用于执行操作302和303的装置。
在一些示例实施例中并且如操作304所示,流客户端设备102可以配置成将“Accept-Alternative-Representation”添加到“Connection”头字段中,以指示代理缓存设备104和流客户端设备102之间的连接。处理器110、存储器112、和/或灵活缓存模块118可以例如提供用于执行操作304的装置。在操作305中,流客户端设备102可以配置成使得HTTP请求被发送给代理缓存设备104或服务网络设备108。处理器110、存储器112、通信接口114、用户接口116、和/或灵活缓存模块118可以例如提供用于执行操作305的装置。
图6a和6b示出关于代理驱动的内容协商,根据流客户端设备102的操作的示例方法的流程图。在这方面,图6a和6b示出可以在流客户端设备102执行的操作。在图6a和6b中示出并且关于图6a和6b描述的操作可以例如由处理器110、存储器112、通信接口114、或灵活缓存模块118中的一个或多个执行,在其辅助下执行,和/或在其控制下执行。在一些示例实施例中,流客户端设备102可以配置成使得代理缓存设备104以所缓存的替代资源的URI的列表和范围来回应,以用于代理驱动的内容协商。流客户端设备102还可以配置成使得模板在Accept-Cached-Alternative-Representation”头字段中被发送给代理缓存设备104,并且使得代理缓存设备104发送流客户端设备102可以接受的可能表示。
在一些示例实施例中,“Accept-Cached-Alternative-Representation”头字段可以在从流客户端设备102发送信号至代理缓存设备104方面被使用,并且该信号发送可以以下述步骤执行但并不限于下述步骤:(a)发送“Accept-Cached-Alternative-Representation”头,和(b)接收“Cached-Alternative-Representation”头。
如操作402所示,流客户端设备102可以配置成将片段的主要表示的主要URI添加到HTTP请求中,并且在操作403中,将模板添加到“Accept-Cached-Alternative-Representation”头字段中以便告知代理缓存设备104,从而确定片段的一个或多个次要表示。处理器110、存储器112、和/或灵活缓存模块118可以例如提供用于执行操作402和403的装置。然后在操作404中,流客户端设备102可以使HTTP请求被发送给代理缓存设备104或服务网络设备108。处理器110、存储器112、通信接口114、用户接口116、和/或灵活缓存模块118可以例如提供用于执行操作404的装置。
如操作412所示,流客户端设备102可以配置成从代理缓存设备104接收“Cached-Alternative-Representation”。处理器110、存储器112、通信接口114、和/或灵活缓存模块118可以例如提供用于执行操作412的装置。如操作413所示,流客户端设备102可以配置成解析“Cached-Alternative-Representation”,从而推导出代理缓存设备104处的片段的缓存表示,并且在操作414,流客户端设备102可以决定片段的最佳或有利表示,并且进一步可以使GET片段请求针对片段被发送。处理器110、存储器112、通信接口114、用户接口116、和/或灵活缓存模块118可以例如提供用于执行操作413和414的装置。
图7示出关于服务器驱动的内容协商,根据代理缓存设备104的操作的示例方法的流程图。在这方面,图7示出可以在代理缓存设备104执行的操作。在图7中示出并且关于图7描述的操作可以例如由处理器110、存储器112、通信接口114、或灵活缓存模块118中的一个或多个指向,在其辅助下执行,和/或在其控制下执行。代理缓存设备104可以配置成通过使用所提出的信令例如“Accept-Alternative-URI”头字段和“Accept-Alternative-Representation”头字段,来确定替代资源的主要和/或次要URI以及流客户端设备102的对应偏好。应理解的是,其他类似的头或指令也可以用于指定替代资源的次要URI。
在一些示例实施例中,代理缓存设备104可以配置成确定是否缓存主要URI和/或次要URI的资源,并且还可以配置成选择被代理缓存设备104缓存的高优先级的资源。在主要URI和次要URI的次要资源未被定位的情况下,代理缓存设备104使请求(例如HTTP请求)被发送给服务网络设备108或可能缓存主要资源或次要资源的另一代理缓存。
如操作502所示并且在代理缓存设备104从用户代理接收到HTTPGET片段请求的情况下以及在所请求的主要资源被代理缓存设备104缓存(如操作503所示)的情况下,代理缓存设备104可以配置成使得主要资源被发送给流客户端设备102。在一些示例实施例中并且如操作505所示,在引起操作504中的发送之后,代理缓存设备104可以配置成在所接收的片段尚未被缓存的情况下,缓存所接收的片段。处理器110、存储器112、通信接口114、和/或灵活缓存模块118可以例如提供用于执行操作502-505的装置。
在代理缓存设备104从流客户端设备102接收到HTTP GET片段请求的情况下以及在缓存代理未缓存由主要URI标识的所请求的主要资源的情况下,则代理缓存设备104可以配置成确定“Accept-Alternative-Representation”是否被包括在头字段中,参见操作506。如果“Accept-Alternative-Representation”被包括在头字段中,则如操作507所示,代理缓存设备104可以配置成构造替代资源的次要URI,并且如操作508所示,从“Accept-Alternative-Representation”所指示的高偏好到低偏好顺次地检查次要URI的资源是否被代理缓存设备104缓存。在操作509,在与次要URI相关联的资源被缓存代理缓存的情况下,则代理缓存设备104可以配置成使得替代片段立即或者在预定一段时间之后在响应中被发送给流客户端设备102。参见操作510。处理器110、存储器112、通信接口114、和/或灵活缓存模块118可以例如提供用于执行操作510以及506-509的装置。
在一些示例实施例中并且如操作511所示,代理缓存设备104可以配置成将选定的表示ID添加到“Response-Representation”响应头字段中,或者将选定的次要URI添加到“response-URI”响应头字段中,其被递送给流客户端设备102。可替换地或者附加地,代理缓存设备104可以在“Vary”头字段中包括“Accept-Alternative-Representation”头字段名称,以表达用于选择经受服务器驱动的协商的表示的参数。处理器110、存储器112、通信接口114、和/或灵活缓存模块118可以例如提供用于执行操作511的装置。
如操作512所示,如果当前没有使得从远程位置取回和/或提取所请求的片段,则代理缓存设备104可以从远程位置请求由主要URI标识的所请求的片段并缓存该所请求的片段,以便在用替代资源响应流客户端设备102的请求之后服务于未来的请求。可替换地或者附加地,在超出预定持续时间的特定时间间隔中接收到许多HTTP GET请求、并且当前没有从远程位置提取所请求的片段的情况下,代理缓存设备104可以使所请求的片段从远程位置被请求。处理器110、存储器112、通信接口114、和/或灵活缓存模块118可以例如提供用于执行操作512的装置。
在操作506中在“Accept-Alternative-Representation”头字段未被找到或者代理缓存设备104不知道新定义的HTTP头字段的情况下,或者在操作509中代理缓存设备104未缓存任何次要URI的资源的情况下,则在操作513,代理缓存设备104可以配置成移除在连接头字段中指示的“Accept-Alternative-Representation”。然后,在操作514,代理缓存设备104可以确定当前是否正在从远程位置提取所请求的片段。如果当前没有正在提取所请求的片段,则在操作515,代理缓存设备104使得从一个或多个远程位置取回所请求的片段,并且之后可以使得所请求的片段被发送给流客户端设备102。否则,如操作514所示,如果所请求的片段未被代理缓存设备104完全缓存、而是当前正在从远程位置取回所请求的片段,则代理缓存设备104可以使所请求的片段被发送给流客户端设备102,如操作504所示。如果所请求的片段未被代理缓存设备104缓存,则代理缓存设备104可以配置成在操作505缓存该片段,并且在操作516结束DASH中用于服务器驱动的内容协商的缓存代理操作。处理器110、存储器112、通信接口114、和/或灵活缓存模块118可以例如提供用于执行操作506、509和513-516的装置。
图8示出关于代理驱动的内容协商,根据代理缓存设备104的操作的示例方法的流程图。在这方面,图8示出可以在代理缓存设备104执行的操作。在图8中示出并且关于图8描述的操作可以例如由处理器110、存储器112、通信接口114、或灵活缓存模块118中的一个或多个执行,在其辅助下执行,和/或在其控制下执行。在一些示例实施例中,代理缓存设备104可以配置成使用信令例如“Accept-Alternative-URI”头字段和“accept”定义的媒体类型,来分析由代理缓存设备104缓存的可能候选URI。其他类似的头或指令可以用于推导出替代资源的次要URI的URI模板。
如操作602所示并且在从流客户端设备104接收到HTTP GET片段请求以及所请求的主要资源被代理缓存设备104缓存的情况下,如操作603所示,代理缓存设备104可以配置成使得主要资源被发送给流客户端设备102。在一些示例实施例中,在所接收的片段尚未被缓存的情况下,代理缓存设备104缓存所接收的片段。参见操作605。处理器110、存储器112、通信接口114、和/或灵活缓存模块118可以例如提供用于执行操作602-605的装置。
在代理缓存设备104从流客户端设备102接收到HTTP GET片段请求并且由主要URI标识的所请求的主要资源未被缓存(如操作603中所示)的情况下,如操作606所示,代理缓存设备104可以配置成确定“Accept-Cached-Alternative-Representation”是否被包括在头字段中。如果Accept-Cached-Alternative-Representation被包括在头字段中,则如操作607所示,代理缓存设备104可以配置成从“Accept-Cached-Alternative-Representation”中解析替代资源的URI模板,并且如操作608所示,代理缓存设备104可以定位所缓存的与次要资源的URI模板相匹配的替代资源。参见操作609。处理器110、存储器112、通信接口114、和/或灵活缓存模块118可以例如提供用于执行操作606-609的装置。
如操作610所示,在代理缓存设备104确定一个或多个此类替代资源的URI的情况下,则代理缓存设备104可以配置成将所有匹配的URI添加到“Cached-Alternative-Representation”响应头字段中,并且进一步可以使其被发送给流客户端设备102。在“Accept-Cached-Alternative-Representation”头字段未被找到的情况下,代理缓存设备104不知道新定义的HTTP头字段,或者所缓存的替代资源的URI未被找到,则在操作611,代理缓存设备104可以配置成移除在连接头字段中指示的“Accept-Cached-Alternative-Representation”。然后,如操作612所示,代理缓存设备104可以配置成确定所请求的片段是否已经正在从远程位置被提取。如果所请求的片段并未正在被提取,则在操作613,代理缓存设备104可以配置成从一个或多个远程位置提取所请求的片段,并且进一步可以使所请求的片段被发送给流客户端设备102。如操作614所示,如果所请求的片段未被代理缓存设备104缓存,则代理缓存设备104可以缓存该片段。处理器110、存储器112、通信接口114、和/或灵活缓存模块118可以例如提供用于执行操作610-614的装置。
图9示出关于服务器驱动的内容协商,根据流客户端102的操作的示例方法的流程图。也参见例如图5。如操作902所示,例如由流客户端设备102体现的设备300可以包括用于使对片段的主要表示或片段的替代表示中的至少一个的请求被发送给代理缓存设备的装置,例如处理器110、通信接口114、灵活缓存模块118等,其中代理缓存设备被配置成推导出主要表示的主要URI和替代表示的至少一个次要URI以及对应的偏好。如操作904所示,由例如流客户端设备102体现的设备300可以包括用于确定将被发送给代理缓存设备的关于片段的主要表示的主要URI的装置,例如处理器110、灵活缓存模块118等。如操作906所示,由例如流客户端设备102体现的设备300可以包括用于使指定片段的替代表示URI的模板被创建的装置,例如处理器110、灵活缓存模块118等,其中模板包括接受片段的替代表示的指示。在一些示例实施例中,连接头字段被配置成提供作为来自代理缓存设备的响应而被允许的一个或多个URI的指示。在另外的示例实施例中,替代表示是由代理缓存设备缓存、并且被配置成作为主要表示的替代物的表示。
如操作908所示,由例如流客户端设备102体现的设备300可以包括用于使代理缓存设备104基于代理缓存设备处的缓存状态用主要表示或替代表示中的至少一个来作出响应的装置,例如处理器110、通信接口114、灵活缓存模块118等,其中代理缓存设备104被配置成确定请求是否使替代表示能够被包括在响应中。如操作908所示,由例如流客户端设备102体现的设备300可以包括用于从代理缓存设备接收片段的主要表示或替代表示中的至少一个的装置,例如处理器110、通信接口114、灵活缓存模块118等。
图10示出关于代理驱动的内容协商,根据流客户端设备102的操作的示例方法的流程图。还参见例如图6。如操作1002所示,由例如流客户端设备102体现的设备300可以包括用于使请求代理缓存设备提供可选择的所缓存的替代表示URI的请求被发送的装置,例如处理器110、通信接口114、灵活缓存模块118等。如操作1004所示,由例如流客户端设备102体现的设备300可以包括用于使片段的主要表示的主要URI在请求中被发送的装置,例如处理器110、通信接口114、灵活缓存模块118等。
如操作1006所示,由例如流客户端设备102体现的设备300可以包括用于使指定片段的次要表示URI的模板被创建的装置,例如处理器110、灵活缓存模块118等,其中模板包括接受片段的次要表示的指示。如操作1008所示,由例如流客户端设备102体现的设备300可以包括接收用于代理驱动的内容协商的可选择的所缓存的替代表示的URI的列表和范围的装置,例如处理器110、通信接口114、灵活缓存模块118等。如操作1010所示,由例如流客户端设备102体现的设备300可以包括使得用于代理驱动的内容协商的可选择的所缓存的替代表示的资源的请求被发送的装置,例如处理器110、通信接口114、灵活缓存模块118等,其中基于预定的选择标准来请求资源。在一些示例实施例中,请求被发送给代理缓存设备104或服务网络设备中的至少一个。
在一些示例实施例中,由例如流客户端设备102体现的设备300可以包括用于执行以下操作的装置(例如处理器110、通信接口114、灵活缓存模块118等):从代理缓存设备接收消息;基于所接收的消息确定可从代理缓存设备获得一个或多个可选择的所缓存的替代表示,并使得一个或多个所缓存的替代表示中的至少一个被请求,其中资源是基于预定的选择标准来请求的。
图11示出关于服务器驱动的内容协商,根据代理缓存设备104的操作的示例方法的流程图。还参见例如图7。如操作1102所示,由例如代理缓存设备104体现的设备300可以包括用于接收对片段的主要表示或替代表示中的至少一个的请求的装置,例如处理器110、通信接口114、灵活缓存模块118等。如操作1104所示,由例如代理缓存设备104体现的设备300可以包括用于确定请求是否包括客户端将接受片段的替代表示的指示的装置,例如处理器110、灵活缓存模块118等。如操作1106所示,由例如代理缓存设备104体现的设备300可以包括用于确定与主要表示相关联的主要URI中的至少一个是否被缓存的装置,例如处理器110、灵活缓存模块118等。
如操作1108所示,由例如代理缓存设备104体现的设备300可以包括用于在请求包括流客户端设备将接受片段的替代表示的指示、并且主要URI未被缓存的情况下,确定替代表示的次要URI的装置,例如处理器110、灵活缓存模块118等。如操作1110所示,由例如代理缓存设备104体现的设备300可以包括用于确定与次要URI相关联的替代表示是否被缓存的装置,例如处理器110、灵活缓存模块118等。
如操作1112所示,由例如代理缓存设备104体现的设备300可以包括用于在次要URI未被缓存的情况下使得片段的主要表示被请求的装置,例如处理器110、通信接口114、灵活缓存模块118等。如操作1114所示,由例如代理缓存设备104体现的设备300可以包括用于在次要URI被缓存的情况下使得片段的替代表示被发送的装置,例如处理器110、通信接口114、灵活缓存模块118等。如操作1116所示,由例如代理缓存设备104体现的设备300可以包括用于在主要URI被缓存的情况下使得片段的主要表示被发送的装置,例如处理器110、通信接口114、灵活缓存模块118等。
在一些示例实施例中,由例如代理缓存设备104体现的设备300可以包括用于确定将被发送的缓存的替代表示、以及使得与主要URI相关联的主要表示在未被缓存的情况下被请求的装置,例如处理器110、通信接口114、灵活缓存模块118等,其中所述确定是基于预定的选择标准作出的。
图12示出关于代理驱动的内容协商,根据代理缓存设备104的操作的示例方法的流程图。还参见例如图8。如操作1202所示,由例如代理缓存设备104体现的设备300可以包括用于接收对片段的主要表示或替代表示中的至少一个的请求的装置,例如处理器110、通信接口114、灵活缓存模块118等。如操作1204所示,由例如代理缓存设备104体现的设备300可以包括用于确定请求是否包括客户端将接受片段的替代表示的指示的装置,例如处理器110、灵活缓存模块118等。如操作1206所示,由例如代理缓存设备104体现的设备300可以包括使得用于代理驱动的内容协商的可选择的所缓存的替代表示的URI的列表和范围被发送的装置,例如处理器110、通信接口114、灵活缓存模块118等。
如操作1208所示,由例如代理缓存设备104体现的设备300可以包括用于确定与主要表示相关联的主要URI中的至少一个是否被缓存的装置,例如处理器110、灵活缓存模块118等。如操作1210所示,由例如代理缓存设备104体现的设备300可以包括用于在主要URI被缓存的情况下使得片段的主要表示被发送的装置,例如处理器110、通信接口114、灵活缓存模块118等。
如操作1212所示,由例如代理缓存设备104体现的设备300可以包括用于接收指定将被创建的关于片段的次要表示URI的模板、并且在一些实施例中解析模板的装置,例如处理器110、通信接口114、灵活缓存模块118等,其中模板包括接受片段的次要表示的指示。如操作1214所示,由例如代理缓存设备104体现的设备300可以包括用于确定与所接收的模板中的次要表示URI相关联的至少一个替代表示的装置,例如处理器110、灵活缓存模块118等。如操作1216所示,由例如代理缓存设备104体现的设备300可以包括接收用于代理驱动的内容协商的可选择的所缓存的替代表示的资源的请求的装置,例如处理器110、通信接口114、灵活缓存模块118等。
在一些示例实施例中,由例如代理缓存设备104体现的设备300可以包括用于使得一个或多个可选择的所缓存的替代表示被发送、以及接收对一个或多个缓存的替代表示中的至少一个的请求的装置,例如处理器110、通信接口114、灵活缓存模块118等。
图5-12示出根据本发明的示例实施例的系统、方法、和计算机程序产品的流程图。应理解的是,流程图的每个方框、和流程图中的方框的组合可以由各种装置实现,例如硬件和/或包括一个或多个计算机可读介质的计算机程序产品(与描述传播信号的计算机可读传输介质相对),其中计算机可读介质中存储有一个或多个计算机程序代码指令、程序指令、或可执行计算机可读程序代码指令。例如,本文描述的一个或多个过程可以由计算机程序产品的计算机程序指令体现。在这方面,体现本文描述的过程的计算机程序产品可以由移动终端、服务器、或其他计算装置(例如,流客户端设备102)的一个或多个存储装置(例如,存储器112、易失性存储器40、或非易失性存储器42)存储、并且由计算装置中的处理器(例如,处理器110或处理器20)执行。在一些实施例中,包括体现本文描述的过程的计算机程序产品的计算机程序指令可以由多个计算装置的存储装置存储。应理解的是,任何此类计算机程序产品可以加载到计算机或其他可编程设备上以便产生机器,使得包括在计算机或其他可编程设备上执行的指令的计算机程序产品生成用于实现在流程图方框中指定的功能的装置。
另外,计算机程序产品可以包括一个或多个计算机可读存储器,计算机程序指令可以存储在该计算机可读存储器上,使得一个或多个计算机可读存储器可以命令计算机或其他可编程设备以特定的方式运行,使得计算机程序产品可以包括实现流程图方框中指定的功能的制造品。一个或多个计算机程序产品的计算机程序指令还可以被加载到计算机或其他可编程设备上,从而使得一系列操作在计算机或其他可编程设备上执行,以产生计算机实现的过程,使得在计算机或其他可编程设备上执行的指令提供用于实现流程图方框中指定的功能的操作。程序代码指令的取回、加载、和执行可以被顺次地执行,使得一次取回、加载和执行一个指令。在一些示例实施例中,取回、加载和/或执行并以并行地执行,使得多个指令被一起取回、加载和/或执行。
因此,处理器对与流程图的操作相关联的指令的执行、或者计算机可读存储介质中对与流程图的方框或操作相关联的指令的存储,支持用于执行指定功能的操作的组合。还应理解的是,流程图的一个或多个操作、以及流程图中的方框或操作的组合可以由基于专用硬件的计算机系统和/或执行指定功能的处理器、或专用硬件和程序代码指令的组合实现。
在本文描述的各个实施例中,对于表示ID可以主要使用URI模板方案。应当注意,任何其他的URI模板方案可以类似地用于各个实施例。除$RepresentationID$之外的占位符可以额外地或可替换地存在于URI模板方案中。在上面的各个实施例中,位于与流客户端设备102相同的装置中的本地HTTP缓存也可以被使用。本地HTTP缓存可以类似于在各个实施例中描述的代理缓存设备104进行操作。然而,在本地HTTP缓存不能供应HTTP GET请求中所请求的主要资源或次要资源的情况下,本地HTTP缓存可以保持连接头未被解析,并且因此不移除在各个实施例中指定的与替代资源相关的头。
本发明的各个实施例已被描述为包括请求和/或响应中的URI或URI模板,其中URI或URI模板指示在MPD中宣布的表示中的片段。在这些实施例中,URI或URI模板可以可替换地或附加地指定子片段,即片段的一部分,通常是片段内的单字节范围。子片段可以包含片段的这样一部分:其可以在流客户端设备102接收到同一片段的后续子片段之前被流客户端设备102处理。例如,子片段可以在准备内容的过程中被确定,并且通过片段内包括的一个或多个片段索引盒(index box)来指示。流客户端设备可以接收并解析片段的一个或多个片段索引盒,并且因此确定子片段和它们的URI或URI模板。子片段的URI或URI模板可以包含片段的URI或URI模板以及指定子片段的字节范围部分的URI或URI模板。
本发明的各个实施例提供了优于现有技术的许多优势。在一些示例实施例中,更多的片段从代理缓存被提取,而不是从远程位置被提取。因此,节约了(代理缓存和起源服务器之间的网络中的)带宽。在其他实施例中,有利地,DASH客户端有可能做出更少的不正确的速率自适应决定,并且更一致地请求相同的表示水平,因此为最终用户提供更稳定的质量。本文描述的其他实施例被配置成减少在客户端提取片段的延迟,因此导致更少的中断/重新缓冲。
上述功能可以以许多方式执行。例如,用于执行每个上述功能的任何合适的装置可以用于执行本发明的实施例。在示例实施例中,适合地配置的处理器(例如,处理器110)可以提供本发明的所有或部分要素。在其他实施例中,本发明的所有或部分要素可以由计算机程序产品配置并且在计算机程序产品的控制下操作。用于执行本发明的实施例的方法的计算机程序产品可以包括:计算机可读存储介质,例如非易失性存储介质(例如,存储器112);和计算机可读程序代码部分,例如体现在计算机可读存储介质中的一系列计算机指令。
得益于在前面的说明和相关联的附图中呈现的教导,本发明涉及的领域中的技术人员将会想到在本文阐述的这些发明的许多修改和其它实施例。因此将理解的是,本发明的实施例将不限于所公开的具体实施例并且修改和其它实施例应被包含于所附权利要求的范围内。另外,尽管前面的说明和相关联的附图在单元和/或功能的某些示例性组合的背景中描述了示例性实施例,但是应当理解的是,替代实施例可以提供单元和/或功能的不同组合而不脱离所附权利要求的范围。就这一点而言,例如,与上文明确描述的单元和/或功能的组合不同的单元和/或功能的组合也可以如所附权利要求中的一些阐述的那样被预期到。尽管本文使用了特定术语,但是这些特定术语仅仅是在广义和描述意义上使用的,而不是用于限制的目的。
Claims (13)
1.一种用于被递送媒体的灵活缓存的方法,包括:
使得一消息被发送给客户端设备,所述消息包括头字段,其中所述消息与对内容的多于一个替代表示进行描述的流描述相关联;
使得下述中的至少一个被包括在所述头字段中:
所述多于一个替代表示的一个或多个缓存替代表示的标识,
所述多于一个替代表示的缓存资源的列表,以及
所述多于一个替代表示的缓存资源的范围。
2.根据权利要求1所述的方法,其中所述头字段包括缓存替代表示头字段。
3.根据权利要求1或2所述的方法,还包括:
接收包括第二头字段的请求,所述第二头字段指示替代表示被所述客户端设备接受,
其中使得所述消息被发送包括:响应于接收到所述请求,使得所述消息被发送。
4.根据权利要求1或2所述的方法,其中使用超文本传输协议HTTP发送所述消息。
5.一种用于被递送媒体的灵活缓存的方法,包括:
在客户端设备中接收一消息,所述消息至少包括头字段,其中所述消息与对内容的多于一个替代表示进行描述的流描述相关联;以及
从所述头字段中解析下述中的至少一个:
所述多于一个替代表示的一个或多个缓存替代表示的标识,
所述多于一个替代表示的缓存资源的统一资源标识符的列表,以及
所述多于一个替代表示的缓存资源的统一资源标识符的范围。
6.根据权利要求5所述的方法,其中使用超文本传输协议HTTP接收所述消息。
7.根据权利要求5或6所述的方法,其中所述头字段包括缓存替代表示头字段。
8.根据权利要求5或6所述的方法,还包括:
选择内容的所述多于一个替代表示中的缓存替代表示;以及
使得对所选择的缓存替代表示的请求被发送。
9.根据权利要求8所述的方法,其中所述请求包括HTTP GET请求。
10.一种用于被递送媒体的灵活缓存的设备,包括:
用于使得一消息被发送给客户端设备的装置,所述消息包括头字段,其中所述消息与对内容的多于一个替代表示进行描述的流描述相关联;
用于使得下述中的至少一个被包括在所述头字段中的装置:
所述多于一个替代表示的一个或多个缓存替代表示的标识,
所述多于一个替代表示的缓存资源的列表,以及
所述多于一个替代表示的缓存资源的范围。
11.根据权利要求10所述的设备,还包括:
用于接收包括第二头字段的请求的装置,所述第二头字段指示替代表示被所述客户端设备接受,
其中用于使得所述消息被发送的装置被配置成响应于接收到所述请求,使得所述消息被发送。
12.一种用于被递送媒体的灵活缓存的设备,包括:
用于接收一消息的装置,所述消息至少包括头字段,其中所述消息与对内容的多于一个替代表示进行描述的流描述相关联;以及
用于从所述头字段中解析下述中的至少一个的装置:
所述多于一个替代表示的一个或多个缓存替代表示的标识,
所述多于一个替代表示的缓存资源的统一资源标识符的列表,以及
所述多于一个替代表示的缓存资源的统一资源标识符的范围。
13.根据权利要求12所述的设备,还包括:
用于选择内容的所述多于一个替代表示中的缓存替代表示的装置;以及
用于使得对所选择的缓存替代表示的请求被发送的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/340,123 | 2011-12-29 | ||
US13/340,123 US8977704B2 (en) | 2011-12-29 | 2011-12-29 | Method and apparatus for flexible caching of delivered media |
PCT/FI2012/051189 WO2013098468A1 (en) | 2011-12-29 | 2012-11-30 | Method and apparatus for flexible caching of delivered media |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104025548A CN104025548A (zh) | 2014-09-03 |
CN104025548B true CN104025548B (zh) | 2017-09-08 |
Family
ID=48695853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280065154.8A Active CN104025548B (zh) | 2011-12-29 | 2012-11-30 | 用于被递送媒体的灵活缓存的方法和设备 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8977704B2 (zh) |
EP (1) | EP2798818B1 (zh) |
CN (1) | CN104025548B (zh) |
ES (1) | ES2731948T3 (zh) |
PL (1) | PL2798818T3 (zh) |
TW (1) | TWI602415B (zh) |
WO (1) | WO2013098468A1 (zh) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11210674B2 (en) | 2010-11-29 | 2021-12-28 | Biocatch Ltd. | Method, device, and system of detecting mule accounts and accounts used for money laundering |
US10897482B2 (en) * | 2010-11-29 | 2021-01-19 | Biocatch Ltd. | Method, device, and system of back-coloring, forward-coloring, and fraud detection |
US10834590B2 (en) | 2010-11-29 | 2020-11-10 | Biocatch Ltd. | Method, device, and system of differentiating between a cyber-attacker and a legitimate user |
US10917431B2 (en) | 2010-11-29 | 2021-02-09 | Biocatch Ltd. | System, method, and device of authenticating a user based on selfie image or selfie video |
US10069837B2 (en) * | 2015-07-09 | 2018-09-04 | Biocatch Ltd. | Detection of proxy server |
US20190158535A1 (en) * | 2017-11-21 | 2019-05-23 | Biocatch Ltd. | Device, System, and Method of Detecting Vishing Attacks |
US8977704B2 (en) * | 2011-12-29 | 2015-03-10 | Nokia Corporation | Method and apparatus for flexible caching of delivered media |
US9401968B2 (en) | 2012-01-20 | 2016-07-26 | Nokia Techologies Oy | Method and apparatus for enabling pre-fetching of media |
US9526091B2 (en) * | 2012-03-16 | 2016-12-20 | Intel Corporation | Method and apparatus for coordination of self-optimization functions in a wireless network |
US10033777B2 (en) * | 2012-10-19 | 2018-07-24 | Interdigital Patent Holdings, Inc. | Multi-hypothesis rate adaptation for HTTP streaming |
US20140372569A1 (en) * | 2013-06-14 | 2014-12-18 | Samsung Electronics Co., Ltd. | Controlling dash client rate adaptation |
US20150180923A1 (en) * | 2013-12-19 | 2015-06-25 | International Business Machines Corporation | Alternate playback of streaming media segments |
EP3092811B1 (en) * | 2014-01-07 | 2020-02-12 | InterDigital VC Holdings, Inc. | Method for providing a content part of a multimedia content to a client terminal, corresponding cache |
KR20150083429A (ko) * | 2014-01-08 | 2015-07-17 | 한국전자통신연구원 | Dash를 사용하는 비디오 재생을 위한 비트 깊이 표현 방법 |
US20150199498A1 (en) * | 2014-01-10 | 2015-07-16 | Furturewei Technologies, Inc. | Flexible and efficient signaling and carriage of authorization acquisition information for dynamic adaptive streaming |
WO2015137702A1 (en) * | 2014-03-10 | 2015-09-17 | Samsung Electronics Co., Ltd. | Method and apparatus for transmitting messages to a dash client |
EP2922266A1 (en) * | 2014-03-20 | 2015-09-23 | Thomson Licensing | Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache. |
FR3020542A1 (fr) * | 2014-04-23 | 2015-10-30 | Orange | Procede de gestion de la selection de la representation des segments d'un contenu multimedia transmis sur un reseau de communication. |
EP2953313A1 (en) * | 2014-06-05 | 2015-12-09 | Thomson Licensing | Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache |
EP2958294A1 (en) * | 2014-06-16 | 2015-12-23 | Thomson Licensing | Method for operating a network equipment arranged along a transmission path between a client terminal and at least one server, and corresponding network equipment. |
GB2528039A (en) * | 2014-07-01 | 2016-01-13 | Canon Kk | Method for identifying objects across time periods and corresponding device |
EP2963894A1 (en) * | 2014-07-04 | 2016-01-06 | Thomson Licensing | Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache. |
WO2016119735A1 (en) * | 2015-01-30 | 2016-08-04 | Mediatek Inc. | Method and device for adaptive video content delivery using http |
US10015229B2 (en) * | 2015-02-24 | 2018-07-03 | International Business Machines Corporation | Metadata sharing to decrease file transfer time |
US10560543B2 (en) * | 2015-03-26 | 2020-02-11 | Fortinet, Inc. | Rule based cache processing in application delivery controller for load balancing |
US10165025B2 (en) | 2015-04-03 | 2018-12-25 | Qualcomm Incorporated | Techniques for HTTP live streaming over eMBMS |
US10681107B2 (en) | 2015-06-16 | 2020-06-09 | Apple Inc. | Adaptive video content for cellular communication |
US10193994B2 (en) | 2015-06-18 | 2019-01-29 | Qualcomm Incorporated | Signaling cached segments for broadcast |
CN105094827B (zh) * | 2015-07-24 | 2018-08-28 | 上海新储集成电路有限公司 | 一种处理器启动的方法 |
US10701038B2 (en) * | 2015-07-27 | 2020-06-30 | Cisco Technology, Inc. | Content negotiation in a content centric network |
US9516130B1 (en) * | 2015-09-17 | 2016-12-06 | Cloudflare, Inc. | Canonical API parameters |
US10104143B1 (en) * | 2016-06-03 | 2018-10-16 | Amazon Technologies, Inc. | Manifest segmentation |
US10432690B1 (en) * | 2016-06-03 | 2019-10-01 | Amazon Technologies, Inc. | Manifest partitioning |
US10116719B1 (en) | 2016-06-03 | 2018-10-30 | Amazon Technologies, Inc. | Customized dash manifest |
GB2552032B (en) | 2016-07-08 | 2019-05-22 | Aimbrain Solutions Ltd | Step-up authentication |
KR102381335B1 (ko) * | 2016-10-18 | 2022-03-31 | 이엑스피웨이 | 모바일 사용자 장치들에 컨텐츠를 전송하는 방법 |
JP6823173B2 (ja) | 2016-12-30 | 2021-01-27 | グーグル エルエルシーGoogle LLC | 不可侵マニフェストプロトコルを介して提供されるストリーミングコンテンツを中断するためのシステムおよび方法 |
US10084855B2 (en) * | 2017-01-23 | 2018-09-25 | Akamai Technologies, Inc. | Pixel-based load balancing |
US11025724B2 (en) * | 2017-07-24 | 2021-06-01 | Facebook, Inc. | Transport of control data in proxy-based network communications |
US10560726B2 (en) | 2017-07-26 | 2020-02-11 | CodeShop BV | System and method for delivery and caching of personalized media streaming content |
EP3585059B1 (de) * | 2018-06-20 | 2023-06-07 | Deutsche Telekom AG | Übertragung von echtzeitdatenpaketen von sendungen aus dem internet |
WO2021072417A1 (en) * | 2019-10-11 | 2021-04-15 | Theta Labs, Inc. | Methods and systems for decentralized data streaming and delivery network |
US11146667B2 (en) * | 2019-11-15 | 2021-10-12 | Cisco Technology, Inc. | Configurable segmentation offload |
CN112752152B (zh) * | 2020-12-28 | 2022-11-25 | 海信视像科技股份有限公司 | 投送视频播放方法及显示设备 |
US11438675B1 (en) | 2021-05-06 | 2022-09-06 | Penthera Partners, Inc. | Subsequent look media presentation on a playing device |
US11606353B2 (en) | 2021-07-22 | 2023-03-14 | Biocatch Ltd. | System, device, and method of generating and utilizing one-time passwords |
Family Cites Families (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2294173B (en) * | 1994-10-11 | 1998-12-09 | Mitsubishi Electric Corp | Disk media, and method of and device for recording and playing back information on or from a disk media |
US7490169B1 (en) * | 1997-03-31 | 2009-02-10 | West Corporation | Providing a presentation on a network having a plurality of synchronized media types |
US7412533B1 (en) * | 1997-03-31 | 2008-08-12 | West Corporation | Providing a presentation on a network having a plurality of synchronized media types |
US6289358B1 (en) * | 1998-04-15 | 2001-09-11 | Inktomi Corporation | Delivering alternate versions of objects from an object cache |
DE60011069T2 (de) * | 1999-03-31 | 2005-06-09 | America Online, Inc. | Behandlung einer anfrage nach informationen, die von einem dienstleisters angeboten werden |
US6768992B1 (en) * | 1999-05-17 | 2004-07-27 | Lynne G. Jolitz | Term addressable memory of an accelerator system and method |
US6708213B1 (en) | 1999-12-06 | 2004-03-16 | Lucent Technologies Inc. | Method for streaming multimedia information over public networks |
AU2001253030A1 (en) * | 2000-03-31 | 2001-10-15 | Neomedia Technologies, Inc. | System for accessing internet via wireless device using linkage url bar-code |
US20050273514A1 (en) | 2000-12-22 | 2005-12-08 | Ray Milkey | System and method for automated and optimized file transfers among devices in a network |
CA2331474A1 (en) | 2001-01-19 | 2002-07-19 | Stergios V. Anastasiadis | Stride-based disk space allocation scheme |
US7555561B2 (en) * | 2001-03-19 | 2009-06-30 | The Aerospace Corporation | Cooperative adaptive web caching routing and forwarding web content data broadcasting method |
US7389533B2 (en) | 2002-01-28 | 2008-06-17 | Hughes Network Systems, Llc | Method and system for adaptively applying performance enhancing functions |
SE524679C2 (sv) | 2002-02-15 | 2004-09-14 | Ericsson Telefon Ab L M | System för broadcast/multicast-utsändning av datainformation emot en lokal del av ett trådlöst nät |
US6868439B2 (en) | 2002-04-04 | 2005-03-15 | Hewlett-Packard Development Company, L.P. | System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection |
US9137324B2 (en) | 2002-04-10 | 2015-09-15 | International Business Machines Corporation | Capacity on-demand in distributed computing environments |
US7451229B2 (en) * | 2002-06-24 | 2008-11-11 | Microsoft Corporation | System and method for embedding a streaming media format header within a session description message |
US7418494B2 (en) | 2002-07-25 | 2008-08-26 | Intellectual Ventures Holding 40 Llc | Method and system for background replication of data objects |
US7171469B2 (en) * | 2002-09-16 | 2007-01-30 | Network Appliance, Inc. | Apparatus and method for storing data in a proxy cache in a network |
JP2004246747A (ja) * | 2003-02-17 | 2004-09-02 | Hitachi Ltd | 既存サービスのラッピング方法および装置 |
US7162533B2 (en) * | 2004-04-30 | 2007-01-09 | Microsoft Corporation | Session description message extensions |
US7573826B1 (en) * | 2004-06-22 | 2009-08-11 | Nortel Networks Limited | Darwinian network |
CN100465955C (zh) * | 2004-10-12 | 2009-03-04 | 国际商业机器公司 | 用于高速缓存万维网内容的方法和系统 |
JP2006165928A (ja) * | 2004-12-07 | 2006-06-22 | Hitachi Ltd | 移動体向けデータ配信支援方法 |
US7937379B2 (en) * | 2005-03-09 | 2011-05-03 | Vudu, Inc. | Fragmentation of a file for instant access |
US7191215B2 (en) * | 2005-03-09 | 2007-03-13 | Marquee, Inc. | Method and system for providing instantaneous media-on-demand services by transmitting contents in pieces from client machines |
US8364792B2 (en) * | 2005-03-09 | 2013-01-29 | Vudu, Inc. | Method and system for distributing restricted media to consumers |
US8230098B2 (en) * | 2006-05-10 | 2012-07-24 | At&T Intellectual Property Ii, L.P. | System and method for streaming media objects |
US9209934B2 (en) | 2006-06-09 | 2015-12-08 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
US9386064B2 (en) * | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
US7711797B1 (en) | 2006-07-31 | 2010-05-04 | Juniper Networks, Inc. | Optimizing batch size for prefetching data over wide area networks |
PL2381649T3 (pl) * | 2007-05-07 | 2015-02-27 | Vorne Ind Inc | Sposób i system do rozszerzania możliwości urządzeń wbudowanych z wykorzystaniem klientów sieciowych |
US8561116B2 (en) | 2007-09-26 | 2013-10-15 | Charles A. Hasek | Methods and apparatus for content caching in a video network |
US8635360B2 (en) * | 2007-10-19 | 2014-01-21 | Google Inc. | Media playback point seeking using data range requests |
CN104902113B (zh) * | 2008-04-02 | 2018-10-19 | 特维里奥公司 | 处理电话会话的系统和方法 |
US8099089B2 (en) * | 2008-05-13 | 2012-01-17 | Nokia Corporation | Method, user equipment and software product for media stream transfer between devices |
JP2010003095A (ja) * | 2008-06-20 | 2010-01-07 | Fujifilm Corp | ウェブ・ページ・データ送信装置およびその動作制御方法 |
EP2329385A4 (en) | 2008-08-06 | 2016-09-14 | Movik Networks | CALLING CONTENT IN THE RADIO ACCESS NETWORK (RAN) |
AU2010276462B1 (en) | 2010-12-27 | 2012-01-12 | Limelight Networks, Inc. | Partial object caching |
US8099473B2 (en) * | 2008-12-31 | 2012-01-17 | Apple Inc. | Variant streams for real-time or near real-time streaming |
EP2391953A4 (en) | 2009-01-30 | 2012-08-08 | Movik Networks | APPLICATION, USE AND WIRELESS CONNECTING TRANSPORT NETWORK PLANNER |
US8621044B2 (en) | 2009-03-16 | 2013-12-31 | Microsoft Corporation | Smooth, stateless client media streaming |
US8909806B2 (en) * | 2009-03-16 | 2014-12-09 | Microsoft Corporation | Delivering cacheable streaming media presentations |
US9357065B2 (en) * | 2009-03-18 | 2016-05-31 | Centurylink Intellectual Property Llc | System, method and apparatus for transmitting audio signals over a voice channel |
US9549039B2 (en) | 2010-05-28 | 2017-01-17 | Radware Ltd. | Accelerating HTTP responses in a client/server environment |
US20130298170A1 (en) | 2009-06-12 | 2013-11-07 | Cygnus Broadband, Inc. | Video streaming quality of experience recovery using a video quality metric |
US9917874B2 (en) * | 2009-09-22 | 2018-03-13 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
EP2484090A1 (en) * | 2009-09-29 | 2012-08-08 | Nokia Corp. | System, method and apparatus for dynamic media file streaming |
CN107911332B (zh) * | 2009-11-04 | 2021-01-08 | 阿莫泰克有限公司 | 媒体内容流播的方法、系统和计算机可读介质 |
CN102771080B (zh) | 2009-12-01 | 2016-03-16 | 万特里克斯公司 | 使用缓存的高效媒体传送的系统和方法 |
CA2783592A1 (en) * | 2009-12-11 | 2011-06-16 | Nokia Corporation | Apparatus and methods for describing and timing representations in streaming media files |
US20110296048A1 (en) * | 2009-12-28 | 2011-12-01 | Akamai Technologies, Inc. | Method and system for stream handling using an intermediate format |
WO2011090715A2 (en) | 2009-12-28 | 2011-07-28 | Akamai Technologies, Inc. | Edge server for format-agnostic streaming architecture |
US9532092B1 (en) * | 2009-12-30 | 2016-12-27 | Akamai Technologies, Inc. | Multiple bitrate format-agnostic streaming architecture |
WO2011087449A1 (en) | 2010-01-18 | 2011-07-21 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and arrangements for http media stream distribution |
WO2011139305A1 (en) | 2010-05-04 | 2011-11-10 | Azuki Systems, Inc. | Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction |
US8683337B2 (en) * | 2010-06-09 | 2014-03-25 | Microsoft Corporation | Seamless playback of composite media |
US10977747B2 (en) | 2010-06-18 | 2021-04-13 | Akamai Technologies, Inc. | Extending a content delivery network (CDN) into a mobile or wireline network |
GB201010456D0 (en) | 2010-06-22 | 2010-08-04 | Vodafone Ip Licensing Ltd | Congestion control for streaming data |
US8918533B2 (en) * | 2010-07-13 | 2014-12-23 | Qualcomm Incorporated | Video switching for streaming video data |
KR20120010089A (ko) | 2010-07-20 | 2012-02-02 | 삼성전자주식회사 | Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치 |
US8782268B2 (en) | 2010-07-20 | 2014-07-15 | Microsoft Corporation | Dynamic composition of media |
US9021047B2 (en) | 2010-07-31 | 2015-04-28 | Unwired Planet, Llc | Method and system for delivering embedded objects in a webpage to a user agent using a network device |
US9319448B2 (en) * | 2010-08-10 | 2016-04-19 | Qualcomm Incorporated | Trick modes for network streaming of coded multimedia data |
US9596278B2 (en) * | 2010-09-03 | 2017-03-14 | Level 3 Communications, Llc | Extending caching network functionality to an existing streaming media server |
KR101206698B1 (ko) | 2010-10-06 | 2012-11-30 | 한국항공대학교산학협력단 | 스트리밍 콘텐츠 제공 장치 및 방법 |
US8468262B2 (en) | 2010-11-01 | 2013-06-18 | Research In Motion Limited | Method and apparatus for updating http content descriptions |
CN102469072A (zh) | 2010-11-08 | 2012-05-23 | 华为技术有限公司 | 流媒体服务方法、系统及客户端 |
WO2012065186A2 (en) * | 2010-11-12 | 2012-05-18 | Realnetworks, Inc. | Traffic management in adaptive streaming protocols |
US20120140645A1 (en) * | 2010-12-03 | 2012-06-07 | General Instrument Corporation | Method and apparatus for distributing video |
US8799759B2 (en) | 2010-12-13 | 2014-08-05 | International Business Machines Corporation | Pre-rendering web content |
US8880633B2 (en) | 2010-12-17 | 2014-11-04 | Akamai Technologies, Inc. | Proxy server with byte-based include interpreter |
US20120265853A1 (en) * | 2010-12-17 | 2012-10-18 | Akamai Technologies, Inc. | Format-agnostic streaming architecture using an http network for streaming |
US20120166667A1 (en) | 2010-12-22 | 2012-06-28 | Edward Hall | Streaming media |
KR20120083747A (ko) | 2011-01-18 | 2012-07-26 | 삼성전자주식회사 | 방송통신 융합형 서비스를 위한 전송 방법 및 장치 |
US9232268B2 (en) | 2011-02-23 | 2016-01-05 | Broadcom Corporation | Unified video delivery system for supporting IP video streaming service |
US8489760B2 (en) * | 2011-03-31 | 2013-07-16 | Juniper Networks, Inc. | Media file storage format and adaptive delivery system |
CN103493459B (zh) | 2011-04-01 | 2016-08-24 | 英特尔公司 | 一种用于接收自适应多媒体流送的方法和设备 |
US9026671B2 (en) * | 2011-04-05 | 2015-05-05 | Qualcomm Incorporated | IP broadcast streaming services distribution using file delivery methods |
JP5786089B2 (ja) | 2011-04-07 | 2015-09-30 | インターデイジタル パテント ホールディングス インコーポレイテッド | ローカルデータキャッシングのための方法および装置 |
WO2011100901A2 (zh) | 2011-04-07 | 2011-08-25 | 华为技术有限公司 | 媒体内容的传输处理方法、装置与系统 |
US8849950B2 (en) | 2011-04-07 | 2014-09-30 | Qualcomm Incorporated | Network streaming of video data using byte range requests |
US20120278495A1 (en) | 2011-04-26 | 2012-11-01 | Research In Motion Limited | Representation grouping for http streaming |
US8510555B2 (en) * | 2011-04-27 | 2013-08-13 | Morega Systems Inc | Streaming video server with virtual file system and methods for use therewith |
US9358460B2 (en) | 2011-04-28 | 2016-06-07 | Numecent Holdings, Inc. | Adaptive cloud-based application streaming |
US8812621B2 (en) * | 2011-05-03 | 2014-08-19 | Cisco Technology, Inc. | Reducing fetching load on cache servers in adaptive streaming |
EP2716011A1 (en) | 2011-06-01 | 2014-04-09 | Interdigital Patent Holdings, Inc. | Content delivery network interconnection (cdni) mechanism |
US8856283B2 (en) * | 2011-06-03 | 2014-10-07 | Apple Inc. | Playlists for real-time or near real-time streaming |
CN103733631B (zh) | 2011-06-20 | 2017-02-15 | Lg电子株式会社 | 媒体内容收发方法和使用该方法的收发设备 |
US8925021B2 (en) | 2011-07-11 | 2014-12-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for trick play in over-the-top video delivery |
US9357275B2 (en) * | 2011-09-06 | 2016-05-31 | Qualcomm Incorporated | Network streaming of coded video data |
US9445136B2 (en) | 2011-09-21 | 2016-09-13 | Qualcomm Incorporated | Signaling characteristics of segments for network streaming of media data |
CA2850416C (en) | 2011-09-30 | 2016-02-23 | Huawei Technologies Co., Ltd. | Method and device for transmitting streaming media |
US20140219088A1 (en) | 2011-09-30 | 2014-08-07 | Ozgur Oyman | Quality of experience enhancements over wireless networks |
US9843844B2 (en) * | 2011-10-05 | 2017-12-12 | Qualcomm Incorporated | Network streaming of media data |
WO2013090280A2 (en) | 2011-12-15 | 2013-06-20 | Dolby Laboratories Licensing Corporation | Bandwidth adaptation for dynamic adaptive transferring of multimedia |
WO2013100968A1 (en) | 2011-12-28 | 2013-07-04 | Intel Corporation | Video adaptation for content-aware wireless streaming |
US8977704B2 (en) * | 2011-12-29 | 2015-03-10 | Nokia Corporation | Method and apparatus for flexible caching of delivered media |
US20130182643A1 (en) | 2012-01-16 | 2013-07-18 | Qualcomm Incorporated | Method and system for transitions of broadcast dash service receptions between unicast and broadcast |
US9401968B2 (en) | 2012-01-20 | 2016-07-26 | Nokia Techologies Oy | Method and apparatus for enabling pre-fetching of media |
-
2011
- 2011-12-29 US US13/340,123 patent/US8977704B2/en active Active
-
2012
- 2012-11-30 CN CN201280065154.8A patent/CN104025548B/zh active Active
- 2012-11-30 EP EP12862371.7A patent/EP2798818B1/en active Active
- 2012-11-30 ES ES12862371T patent/ES2731948T3/es active Active
- 2012-11-30 PL PL12862371T patent/PL2798818T3/pl unknown
- 2012-11-30 WO PCT/FI2012/051189 patent/WO2013098468A1/en active Application Filing
- 2012-12-28 TW TW101151148A patent/TWI602415B/zh active
-
2014
- 2014-12-22 US US14/579,183 patent/US10523776B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10523776B2 (en) | 2019-12-31 |
CN104025548A (zh) | 2014-09-03 |
EP2798818A4 (en) | 2015-08-26 |
US20150113089A1 (en) | 2015-04-23 |
TW201342864A (zh) | 2013-10-16 |
WO2013098468A1 (en) | 2013-07-04 |
PL2798818T3 (pl) | 2019-09-30 |
EP2798818B1 (en) | 2019-04-17 |
ES2731948T3 (es) | 2019-11-19 |
US20130173737A1 (en) | 2013-07-04 |
TWI602415B (zh) | 2017-10-11 |
US8977704B2 (en) | 2015-03-10 |
EP2798818A1 (en) | 2014-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104025548B (zh) | 用于被递送媒体的灵活缓存的方法和设备 | |
US9401968B2 (en) | Method and apparatus for enabling pre-fetching of media | |
EP2774345B1 (en) | Method and apparatus for selecting an access method for delivery of media | |
CN103002274B (zh) | 一种基于离线下载的移动多媒体实时转码播放系统及方法 | |
KR101401183B1 (ko) | 스트리밍 미디어 파일의 표현을 기술하고 타이밍하기 위한 장치 및 방법 | |
US10237611B2 (en) | Dynamic media content output for mobile devices | |
CN108063769B (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
US10904642B2 (en) | Methods and apparatus for updating media presentation data | |
CN103179438A (zh) | 视频播放首次接入码率的确定方法及装置 | |
CN107534793A (zh) | 接收装置、传输装置以及数据处理方法 | |
US20200396492A1 (en) | Method for processing streaming media data and server for processing streaming media | |
CN106790204A (zh) | 一种流数据的封装协议的转换方法和装置 | |
CN108933764A (zh) | 一种实现快速起播的方法和装置 | |
CN105872572A (zh) | 直播视频的处理方法及装置 | |
CN110225399A (zh) | 流媒体处理方法、装置、计算机设备及存储介质 | |
CN104333765A (zh) | 一种视频直播流的处理方法及处理装置 | |
WO2017071524A1 (zh) | 多媒体资源的发布方法及装置 | |
CN110401841A (zh) | 一种直播间消息的解析方法、装置、设备及存储介质 | |
US11818207B1 (en) | Methods and systems for ledger based content delivery using a mobile edge computing (MEC) server | |
KR102511949B1 (ko) | 무작위 시청 영역 선택을 고려한 효율적인 비디오 페이싱 방법 및 이를 위한 장치 | |
US20220303620A1 (en) | Methods for transmitting and receiving video data, terminal device and server | |
CN117939181A (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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20160105 Address after: Espoo, Finland Applicant after: Technology Co., Ltd. of Nokia Address before: Espoo, Finland Applicant before: Nokia Oyj |
|
GR01 | Patent grant | ||
GR01 | Patent grant |