CN104396263A - 用于流式媒体内容的实时复用变换的方法和系统 - Google Patents

用于流式媒体内容的实时复用变换的方法和系统 Download PDF

Info

Publication number
CN104396263A
CN104396263A CN201380030213.2A CN201380030213A CN104396263A CN 104396263 A CN104396263 A CN 104396263A CN 201380030213 A CN201380030213 A CN 201380030213A CN 104396263 A CN104396263 A CN 104396263A
Authority
CN
China
Prior art keywords
client
source
requested
session
server
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
CN201380030213.2A
Other languages
English (en)
Other versions
CN104396263B (zh
Inventor
罗伯特·迈尔斯
帕拉苏拉姆·兰加纳坦
伊万·凯维特斯
克日什托夫·帕古斯基
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.)
Arris Canada Inc
Original Assignee
Seawell Networks Inc
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 Seawell Networks Inc filed Critical Seawell Networks Inc
Publication of CN104396263A publication Critical patent/CN104396263A/zh
Application granted granted Critical
Publication of CN104396263B publication Critical patent/CN104396263B/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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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
    • H04L65/765Media network packet handling intermediate
    • 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
    • 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/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • H04N21/2221Secondary servers, e.g. proxy server, cable television Head-end being a cable television head-end
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • 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/63Control 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/643Communication protocols
    • H04N21/64322IP
    • 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/63Control 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64707Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless for transferring content from a first network to a second network, e.g. between IP and wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format

Landscapes

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

Abstract

用于为流送媒体内容提供全反向翻译代理的系统和方法,其能够采用会话跟踪或复用变换或两者。所描述的系统能够无缝地集成到现有的自适应流送环境中。所述系统能够将来自客户端的每个请求复用变换成由源内容服务器所支持的递送格式,并且反之亦然,而不管由所述客户端或服务器所使用的特定递送格式如何。相反地,所述系统能够进一步将所请求的内容复用变换成由所述客户端所使用的所述递送格式。有状态会话模型能够将来自特定终端用户对一条特定内容的每个请求链接到特定识别的客户端流送会话。

Description

用于流式媒体内容的实时复用变换的方法和系统
技术领域
所描述的实施例涉及流式媒体的领域,并且特别地涉及视频内容和音频内容的实时或按需流送。
背景技术
“Over The Top(超过指定目标)”(OTT)多媒体服务的市场正变得越来越复杂。许多内容生产者正在接受用于OTT视频内容(例如,电视,因特网、移动装置等)的所谓的三屏方法。装置制造商正在将流送能力直接集成到相应的产品中。传统行业者正在奋斗以赢得或保持市场份额,同时新的进入者正在出现。
新的标准因这些各种服务而正在出现。然而,一个通常接受的共性是基于HTTP的自适应流送的使用。HTTP或超文本传输协议是万维网上的广泛使用的标准。其流行使得它适合于在各种装置上并且特别地在各种网络环境中使用。因此,利用HTTP的基于HTTP的自适应流送被视为在递送在任何网络上的任何装置上查看相同的内容的能力的同时确保终端用户的可接受的体验质量(QoE)的适合方式。
即便当装置在具有动态地变化的带宽的环境中时,用于多媒体(例如,视频和音频)内容的许多当前的基于HTTP的自适应流送解决方案也提供良好的QoE。特别地,许多自适应流送解决方案现通常使用多个或替换地可伸缩的相同内容的编码,所述内容能够根据当前带宽环境被递送。
然而,根本不同的流送解决方案中的每一个都通常使用内容格式化、客户端检索以及回放协议的不同方法和所关联的算法来选择比特率。尽管诸如在基础内容编码格式方面可以存在共性,但是这些方法可能不是直接地兼容的。而且,用来递送流送内容的网络架构(例如,服务器、装置、软件)可能不同。
考虑到多个竞争标准的存在,内容生产者面对选择一个或多个相互不兼容的标准以使用和支持的问题。例如,诸如苹果iPhone、iPod以及iPad的装置仅支持苹果流送解决方案。然而,苹果解决方案不被基于微软Windows的装置直接地支持。相反地,微软平滑流送(Microsoft Smooth Streaming)方法在苹果装置上不直接地支持。这个困境仅在内容生产者希望支持其它装置(诸如基于谷歌安桌(Android)操作系统的那些)时进一步恶化。
各种组织正在为基于HTTP的自适应流送开发标准,但是这些中的每一个都可能最终取决于它们的目标应用而具有它们自己的特定特质。例如,MPEG正在开发DASH(HTTP动态自适应流送),3GPP已定义了它们自己的方法,W3C正在开发媒体分段。
考虑到这个环境,内容生产者必须要么支持标准和装置的所有各种排列,或者冒着让一些组合不受支持的风险。
发明内容
在第一广泛方面,提供了用于从源服务器向客户端装置递送流送媒体内容项的系统,其中,所述源服务器具有用于流送媒体内容的源容器格式和源递送格式,并且其中,流送媒体内容包括以源编码格式编码的第一多个内容分段,所述系统包括:映射模块,所述映射模块被配置成使用客户端递送格式从客户端接收对流送媒体内容项的至少请求的部分的客户端请求,确定客户端请求具有客户端递送格式并且以源递送格式生成与客户端请求相对应的中间请求;中间客户端模块,所述中间客户端模块被配置成向服务器传送中间请求并且接收与流送媒体内容项的所请求的部分相对应的第一多个内容分段的子集,其中,以源容器格式从使用源递送格式的源服务器接收所述子集;容器转换模块,所述容器转换模块被配置成根据源容器格式对子集进行解包并且将该子集包装成客户端容器格式,其中,在子集中的以客户端容器格式所包装的内容分段保持以源编码格式编码;以及中间服务器模块,所述中间服务器模块被配置成以客户端容器格式向使用客户端递送格式的客户端传送流送媒体内容项。
在一些情况下,容器转换模块通过将第一多个内容分段重组成第二多个内容分段来将流送媒体内容项包装成客户端容器格式,其中,第二多个内容分段具有与第一多个内容分段不同的持续时间。
在一些情况下,映射模块可以通过使用预定递送格式传送一个或多个请求并且确定是否接收到成功响应来确定源服务器被配置成使用源递送格式来传送。映射模块可以通过将客户端请求与多个预定请求模式相比较来确定客户端请求具有客户端递送格式。
中间服务器可以进一步包括配置成在接收到客户端请求时发起流送会话的会话管理模块。
会话管理模块可以进一步被配置成通过监测来自客户端的分段请求针对流送会话来确定客户端的会话状态。
在另一广泛方面,提供了一种用于从源服务器向客户端递送流送媒体内容项的方法,其中,源服务器具有用于流送媒体内容的源容器格式和源递送格式,并且其中,流送媒体内容包括以源编码格式编码的第一多个内容分段,所述方法包括:使用客户端递送格式从客户端接收对流送内容项的至少请求的部分的客户端请求;确定客户端请求具有客户端递送格式;生成与客户端请求相对应的中间请求,其中,源请求具有源递送格式;向服务器传送中间请求;接收与流送媒体内容项的所请求的部分相对应的第一多个内容分段的子集,其中,以源容器格式从使用源递送格式的源服务器接收所述子集;根据源容器格式对子集进行解包并且将该子集包装成客户端容器格式,其中,在所述子集中的以客户端容器格式所包装的内容分段保持以源编码格式编码;以及以客户端容器格式向使用客户端递送格式的客户端传送流送媒体内容项。
包装可以通过将第一多个内容分段重组成第二多个内容分段来执行,其中,第二多个内容分段具有与第一多个内容分段不同的持续时间。
所述方法可以进一步包括通过使用预定递送格式传送一个或多个请求并且确定是否接收到成功响应来确定源服务器被配置成使用源递送格式来传送。
所述方法同样可以进一步包括通过将客户端请求与多个预定请求模式相比较来确定客户端请求具有客户端递送格式。
所述方法同样可以进一步包括在接收到客户端请求时发起流送会话。
所述方法同样可以进一步包括通过监测来自客户端的分段请求针对流送会话来确定客户端的会话状态。
在另一广泛方面,提供了一种用于从源服务器向客户端装置递送流送媒体内容项的系统,其中,源服务器具有用于流送媒体内容的源容器格式和源递送格式,并且其中,流送媒体内容包括以源编码格式编码的第一多个内容分段,所述系统包括:映射模块,所述映射模块被配置成从客户端接收对流送媒体内容项的至少请求的部分的至少一个客户端请求并且生成与至少一个客户端请求相对应的中间请求;会话管理模块,所述会话管理模块被配置成在接收到至少一个客户端请求时发起流送会话,所述会话管理模块进一步被配置成通过监测至少一个客户端请求针对流送会话来确定客户端的会话状态;中间客户端模块,所述中间客户端模块被配置成向服务器传送中间请求并且接收与流送媒体项的所请求的部分相对应的第一多个内容分段的子集;中间服务器模块,所述中间服务器模块被配置成向客户端传送流式媒体内容项。
源服务器可以具有用于流送媒体内容的源容器格式和源递送格式,其中,映射模块可以被配置成使用客户端递送格式来接收客户端请求并且确定该客户端请求具有客户端递送格式,其中,中间请求可以具有源递送格式,其中,以源容器格式从使用源递送格式的源服务器接收第一多个内容分段的子集,并且所述系统可以进一步包括容器转换模块,该容器转换模块被配置成根据源容器格式对所述子集进行解包并且将该子集包装成客户端容器格式,其中,在子集中的以客户端容器格式所包装的内容分段保持以源编码格式编码,其中,中间服务器模块可以被配置成以客户端容器格式向使用客户端递送格式的客户端传送流送媒体内容项。
会话管理模块可以进一步被配置成识别所有打开客户端会话的状态。会话管理模块可以进一步被配置成在预定超时周期后将会话状态标记为不活动的。会话管理模块可以进一步被配置成在接收到与客户端会话相关联的另一分段请求时将会话状态标记为活动的。
至少一个客户端请求可以包括多个客户端请求,并且其中,可以基于多个客户端请求的定时来确定会话状态。
当定时可以指示多个客户端请求是针对失序的分段的时,那么可以确定寻道操作。当定时指示实际经过的时间超过在多个客户端请求中所请求的分段的播放时间时,那么可以确定特技播放操作。
在另一广泛方面,提供了用于从源服务器向客户端装置递送流送媒体内容项的方法,其中,源服务器具有用于流送媒体内容的源容器格式和源递送格式,并且其中,流送媒体内容包括以源编码格式编码的第一多个内容分段,所述系统包括:从客户端接收对流送媒体内容项的至少请求的部分的至少一个客户端请求;生成与至少一个客户端请求相对应的中间请求;在接收到至少一个客户端请求时发起流送会话;通过监测至少一个客户端请求针对流送会话来确定客户端的会话状态;向服务器传送中间请求;接收与流送媒体内容项的所请求的部分相对应的第一多个内容分段的子集;以及向客户端传送流送媒体内容项。
源服务器可以具有用于流送媒体内容的源容器格式和源递送格式,其中,可以使用客户端递送格式接收客户端请求,其中,中间请求可以具有源递送格式,其中,可以以源容器格式从使用源递送格式的源服务器接收第一多个内容分段的子集,所述方法可以进一步包括根据源容器格式对所述子集进行解包并且将该子集包装成客户端容器格式,其中,在子集中的以客户端容器格式所包装的内容分段可以保持以源编码格式编码,并且其中,可以以客户端容器格式向使用客户端递送格式的客户端传送流送媒体内容项。
所述方法可以进一步包括识别所有打开客户端会话的状态。所述方法可以进一步包括在预定超时周期之后将会话状态标记为不活动的。所述方法可以进一步包括在接收到与客户端会话相关联的另一分段请求时将会话状态标记为活动的。
至少一个客户端请求可以包括多个客户端请求,并且其中,可以基于多个客户端请求的定时来确定会话状态。
当定时指示多个客户端请求是针对失序的分段的时,那么可以确定寻道操作。当定时指示实际经过的时间超过在多个客户端请求中所请求的分段的播放时间时,那么可以确定特技播放操作。
本文所描述的实施例的另外的方面和优点从连同附图一起进行的以下描述将显而易见。
附图说明
为了更好地理解本文所描述的系统和方法的实施例,并且为了更清楚地示出它们如何可以被付诸实施,将通过示例的方式对附图进行参考,在附图中:
图1图示能够传送和接收媒体内容的示例性网络;
图2图示现有技术流送系统;
图3图示另一现有技术流送系统;
图4图示根据一些实施例的简化流送系统;
图5图示示例性流送系统的一部分(中间服务器)的示例性简化系统框图;
图6图示图5的系统的简化呼叫流程;
图7图示时间轴上的示例性视频和音频分段映射;
图8图示可以由中间服务器的会话管理模块所使用的示例性状态图;
图9图示图5的中间服务器的示例性具体呼叫流程。
图10图示用于接受初始清单请求的示例性呼叫流程。
图11图示针对拒绝的初始清单请求的示例性呼叫流程。
图12图示针对包含无效的源服务器地址的初始清单请求的示例性呼叫流程。
图13图示针对有效分段请求的示例性呼叫流程。
图14图示针对无效分段请求的示例性呼叫流程;以及
图15图示包含无效会话标识符(UUID)的内容分段请求的示例性呼叫流程。
将了解,出于图示的简单和清楚,图中所示出的元件不一定按比例绘制。例如,为了清楚一些元件的尺寸可以相对于其它元件被放大。另外,在认为适当的情况下,可以在图之中重复附图标记以指示对应的或类似的元件。
具体实施方式
将了解,许多特定细节被阐述以便于提供对本文所描述的示例性实施例的彻底理解。然而,本领域的普通技术人员将理解,可以在没有这些特定细节的情况下实践本文所描述的实施例。在其它实例中,尚未详细地描述众所周知的方法、过程以及组件以便不使本文所描述的实施例混淆。
本文所描述的方法、系统以及装置的实施例可以用硬件或软件或两者的组合加以实现。然而,优选地,这些实施例用在各自包括至少一个处理器、数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入装置以及至少一个输出装置的可编程计算机上执行的计算机程序加以实现。例如但不限于,可编程计算机可以是网络服务器。程序代码被应用于输入数据以执行本文所描述的功能并且生成输出信息。输出信息以已知方式被应用于一个或多个输出装置。
每个程序优选地用高级面向过程/面向对象编程语言和/或脚本语言加以实现以与计算机系统进行通信。然而,视需要,程序能够用汇编语言或机器语言加以实现。在任何情况下,语言可以是编译语言或解释语言。每个这样的计算机程序被优选地存储在可由通用或专用可编程计算机读取的存储媒体或装置(例如ROM或光盘)上,以用于在存储媒体或装置被计算机读取以执行本文所描述的过程时配置和操作计算机。发明系统还可以被认为被实现为配置有计算机程序的非暂时性计算机可读存储介质,其中如此配置的存储介质使计算机以特定且预定义方式操作以执行本文所描述的功能。
此外,所描述的实施例的方法、系统以及装置能够分布在包括物理非暂时性计算机可读介质的计算机程序产品中,所述物理非暂时性计算机可读介质承载用于一个或多个处理器的计算机可用指令。可以以各种形式来提供介质,所述各种形式包括一个或多个磁盘、紧致盘、磁带、芯片、磁和电子存储媒体等等。计算机可用指令还可以具有各种形式,包括编译代码和非编译代码。
目前,存在用于基于HTTP的自适应流送的各种根本不同的标准。表1陈列了五个示例标准的各种属性。
表1
如表1中所示,这些标准中的每一个都使用HTTP作为其传输协议,并且每个都可以使用MPEG-4AVC(即,H.264)标准作为视频编解码(即,编码格式)。然而,除这些共性以外,所图示的标准在文件格式化和递送方案(即,递送格式)方面明显地发散。将了解,所描述的实施例能够与其它传输协议和视频编解码一起使用。
从内容生产者观点看,随着更多装置和标准被支持,向多个播放机递送相同的内容渐进地引入更大复杂性。幸运的是,因为标准中的每一个都能够支持H.264(MPEG-4AVC)的相同编码格式,所以内容生产者仅需要针对将被支持的比特率中的每一个对内容编码一次。然而,可能需要重建和存储内容文件多次以支持不同的容器格式。特别地,当创建内容文件时,经编码的视频内容和音频内容通常针对特定播放机或标准被“复用”成适当的格式。
此外,具有根本不同的格式中的每一个的内容可能需要由理解相应递送格式的特定服务器来递送。
比特率(kbps) 300 600 900 1200 1500 2000 2500 3000 合计
MS存储(MB) 22.5 45 67.5 90 112.5 150 187.5 225 900
MS文件数 1 1 1 1 1 1 1 1 10
苹果存储(MB) 22.5 45 67.5 90 112.5 150 187.5 225 900
苹果文件数 60 60 60 60 60 60 60 60 480
Adobe存储(MB) 22.5 45 67.5 90 112.5 150 187.5 225 900
Adobe文件数 1 1 1 1 1 1 1 1 10
表2-多自适应流送解决方案的存储和文件影响
现参考表2,示出了支持用于示例10分钟视频的三个主要递送格式的存储影响。尽管递送格式中的每一个都可以在开销方面具有小差异,但是为了清楚起见在这个示例中假定它是相同的。
可以在表2中看到,即使编码格式在所有三个解决方案中可以是相同的,但是不同递送格式的使用-和这可能需要的容器格式的差异-对于所支持的标准中的每一个有效地使所需要的存储空间成三倍。例如,苹果分段在持续时间上仅为10秒并且因此存在大量文件。因此,每个附加的支持递送格式可以表示需要的存储空间上的伴生增加。这还可能导致在源服务器与位于内容递送网络的边缘处的缓存服务器之间递送内容的宽带费用增加。
上面所示出的示例标准通常使用利用智能客户端对时间对准的媒体分段中的内容进行分组的相同的基本方法,所述智能客户端确定哪些分段要检索以便于回放内容。然而,用来检索内容的实际方法和递送格式在每个标准中不同。
在由Adobe和微软标准所使用的方法中,模型基于做出专有URL请求的客户端。专有URL请求被服务器模块接收,所述服务器模块解释请求并且从包含所请求的内容的适当的文件中检索适当的数据。
服务器模块可以是现有HTTP服务器(诸如微软IIS或Apache)的插件。因此,如果内容生产者希望使用不同的递送格式中的每一个将内容递送给装置,则可能需要内容生产者操作运行不同插件中的每一个的不同服务器。同样地,内容生产者可能需要针对每个支持的标准而支持不同的网络基础设施,以及管理多个覆盖网络的所有关联的费用。
除不同的服务器方法之外,单独的客户端方法中的每一个都已开发有它自己的特定算法以用于选择期望的比特率以及何时响应于改变网络条件而调整比特率。这些客户端中的每一个都可以被调谐成在各种条件下不同地表现。
作为这个的结果,每个标准对于链接到这些客户端算法的内容创建具有关联的“最佳实践”。例如,微软推荐使用2-5秒的分段持续时间,然而苹果推荐使用10秒的分段持续时间。Adobe具有取决于目标部署的针对持续时间的多个推荐。
这个复杂性的添加是具有编码格式的编解码配置文件的问题。特别地,特定装置可以仅支持由H.264(MPEG-4AVC)编解码标准所定义的配置文件的子集。这些配置文件的选择和支持可以留给内容生产者。结果,内容生产者可以针对每个客户端装置和播放机类型简单地对内容重新编码和复用,进一步使处理、存储以及内容管理的问题加重。
转码(transcoding)的构思将被理解为对从一个编解码到另一编解码的媒体文件或流进行编码的过程。相关构思是转录(transrating)的构思,所述转录可以是使用相同的编解码来改变媒体文件或流的编码参数以在不同的比特率(典型地比源内容更低的比特率)下产生一个或多个输出编码文件或流的过程。
特定转录技术已被开发来与全解码和重新编码过程相比降低计算要求。这些转录技术主要作为方式开发来允许随着视频流基于网络条件被递送给客户端而变化它的比特率,其目标是改进体验质量。这样的技术可以利用在原始编码过程(例如,运动矢量信息的再使用等)期间所做出的判定。然而,这些技术中的一些可能为限制性的,因为它们可能在重新编码过程中仅支持不同的量化参数,同时不允许其它更灵活的改变,诸如空间分辨率的改变。最近的基于HTTP的自适应流送方法已减少了对纯转录方法的需要。
和转码和转录对比,本文描述了复用变换(transmuxing)的过程,其包括改变容器格式以满足特定客户端或播放机的需要,同时以其原先编码的形式保持基础内容。执行复用变换的计算要求可以比转录或转码所需要的计算要求低几个数量级。这是因为复用变换能够省略在视频压缩(编解码)级下处理内容。
采用现在全部通常支持H.264编解码的基于HTTP的自适应流送解决方案,并且采用所关联的低计算要求,复用变换能够被采用来允许内容文件的单个集合被用来支持各式各样的通常采用的基于HTTP的自适应流送方法中的任一个,而不用进一步转码或转录。
在实践中,复用变换可以牵涉能够采取现有内容的一组服务,而不管原始递送格式如何,并且动态地创建适当的一组文件(例如,清单和内容分段)以使用客户端的期望递送格式来递送给特定客户端。
在内容递送网络(CDN)中,可以在复用变换模块所位于的地方“即时”或“按需”执行复用变换。在一些情况下,复用变换模块可以位于靠近源服务器(即,源内容服务器)。在其它情况下,复用变换模块可以在网络中的其它地方(例如,在云中)。最后,在一些情况下,复用变换模块可以位于CDN的边缘节点处或靠近CDN的边缘节点。可能存在与在边缘节点处执行即时复用变换相关联的附加有益效果。
典型地,通用web服务器的无状态性质限制能够在CDN的边缘节点处提供的服务的性质。也就是说,通用web服务器可以缺少跟踪来自特定客户端的每个请求并且使它与对特定内容项的过去或将来请求相关联的能力。跟踪流送会话的状态的能力的这种缺少限制了提供会话特定服务的能力。
本文所描述的是能够将来自特定终端用户对一条特定内容的每个请求链接到特定识别的客户端流送会话的有状态会话模型。
在一些实施例中,这个有状态会话跟踪能够通过创建特定于每个会话(例如,包括唯一会话标识符)的内容清单文件来提供,使得对清单或分段的所有将来请求能够被识别为相同会话的一部分。识别和跟踪会话的能力能够促进附加的服务和部署模型,诸如限制在不同的价格点给客户的高速率(例如,更高质量流),或基于订阅或支付类型来限制回放时间。这个能力能够通过使用策略来提供,所述策略可以基于许多参数。
能够在每会话基础上应用策略。每会话策略(诸如速率限制)可以利用为一组用户(例如,www.example.com的所有用户)指派最大总带宽的能力。通过对每个单独用户进行速率整形,能够在所有并发用户之中公平地分发用于该组的可用带宽。还能够在每会话基础上应用诸如时间限制或下载量的策略。另外,能够基于诸如播放机类型、目标URL、网络类型等的会话上下文对用户进行分组。
会话跟踪和即时复用变换的组合使得能够创建可能特定于特定客户端装置或播放机的清单和内容分段,并且使用客户端的优选递送格式。因此,每个会话可以是唯一的,从而提供针对该特定会话而优化的不同QoE。
本文所描述的是能够采用会话跟踪或复用变换或两者的全反向翻译代理系统。所描述的系统能够无缝地集成到现有的自适应流送环境中。特别地,系统不要求源内容具有特定递送格式。系统能够将来自客户端的每个请求复用变换或者“翻译”成由源内容服务器所支持的递送格式,并且反之亦然,而不管由客户端或服务器所使用的特定递送格式如何。例如,如果由内容生产者所部署的源服务器使用微软平滑流送递送格式,则系统能够使用本机平滑流送协议来检索请求的内容,而不管由请求客户端所使用的递送格式如何。相反地,系统能够将所请求的内容复用变换成由客户端所使用的递送格式。因此,内容生产者能够保持和利用它们在编码器、内容管理系统以及源服务器中的现有投资中的全部。对于可以服务许多内容生产者的CDN,能够部署所描述的系统代替多个平行边缘节点,其将以其它方式被要求报告不同的流送标准中的每一个。
现参考图1,图示了用于传送和接收流送媒体呈现的示例性系统100。系统100包括网络110、一个或多个源服务器120和120’、服务器侧代理服务器130、中间代理服务器150、一个或多个边缘服务器160和160’以及一个或多个客户端装置190和190’。
网络110可以是包括一个或多个专用和公用网络(诸如因特网)的数据网络。
源服务器120可以是配备有用于存储媒体内容(诸如MPEG-4AVC格式的音频和视频文件)的数据储存器、存储器以及配置成使用基于HTTP的自适应流送协议来提供媒体内容的处理器的网络服务器。在一个实施例中,源服务器120能够被配置成使用微软平滑流送递送格式来提供媒体内容。在其它实施例中,源服务器120可以被配置成使用另一递送格式(诸如由Adobe或苹果所开发的那些)来提供媒体内容。
源服务器120’可以通常类似于源服务器120,除了它可以对于基于HTTP的自适应流送使用与源服务器120不同的递送格式。
如本文所描述的,边缘服务器160可以是装配有用于缓存媒体内容的数据储存器、存储器以及配置成提供反向翻译代理和复用变换服务的处理器的网络服务器或设备。每个边缘服务器160可以在地理上或在网络条件上(即,在相对少的网络跳内)通常接近于一个或多个客户端装置190和190’定位。
服务器侧代理服务器130和中间代理服务器150可以通常类似于边缘服务器160,除了它们可以处于网络上的不同位置中。例如,服务器侧代理服务器130可以靠近源服务器120定位而中间代理服务器150可以定位于网络110内(例如,在“云”内)。
客户端装置190和190’可以是支持网络的多媒体回放装置,诸如个人计算机、平板计算机、智能电话、支持网络的电视或媒体播放机等。每个客户端装置190或190’通常包括存储器和处理器,所述处理器能够被配置成使用流送(例如,基于HTTP的自适应流送)递送格式通过网络来检索媒体内容并且配置成对内容解码以用于回放给用户。客户端装置190’通常类似于客户端装置190,除了它可以被配置成使用与客户端装置190不同的递送格式。
例如,在一个实施例中,客户端装置190能够被配置成使用微软平滑流送递送格式来检索媒体内容。在其它实施例中,客户端装置190可以被配置成使用另一递送格式(诸如由Adobe或苹果所开发的那些)来检索媒体内容。
现参考图2,图示了现有技术流送系统200。流送系统200包括源服务器220、客户端装置290以及缓存服务器240。源服务器220可以通常类似于源服务器120。类似地,客户端装置290可以通常类似于客户端装置190或190’。
缓存服务器240可以是反向代理或缓存服务器,包括数据储存器、存储器以及配置成提供反向代理服务的处理器。通常,反向代理包括用于从客户端(诸如客户端装置290)接收请求的HTTP服务器。反向代理同样包括用于向上游服务器(诸如源服务器220)传送请求的HTTP客户端。当接收到请求响应时,反向代理能够向客户端装置290转发响应数据,并且可选地,在本地缓存该响应数据。如果在稍后的时间,反向代理接收到另一相同的请求(例如,针对相同的内容),则反向代理能够以在本地缓存的响应数据立即做出响应。因此,反向代理能够减轻服务于将以其它方式直接地与源服务器220进行通信的大量客户端的负担。
在流送系统200中,源服务器220、缓存服务器240以及客户端装置290中的每一个都使用标记为“协议X”的相同的流送递送格式通信。协议X可以是已知的基于HTTP的自适应流送递送格式中的任何一个。
现参考图3,图示了包括源服务器320、缓存服务器340以及客户端装置390的另一流送系统300。流送系统300的每个元件通常类似于其在流送系统200中的对应部分。然而,鉴于源服务器320被配置成使用协议X递送格式通信,缓存服务器340和客户端装置390两者都被配置成仅使用不同的“协议Y”递送格式通信。
因此,当客户端装置390试图(直接地或经由缓存服务器340)以客户端递送格式向源服务器320传送请求时,由于未识别的递送格式,源服务器320可以以错误做出响应。
现参考图4,图示了示例性简化流送系统400。流送系统400包括通常分别类似于源服务器320和客户端装置390的源服务器420和客户端装置490。流送系统400还包括中间服务器460。
中间服务器460能够包括数据存储装置、存储器以及配置成提供如本文所描述的反向翻译代理服务的处理器。
如所图示的,客户端装置生成内容请求并且使用协议Y(即,客户端递送格式)向中间服务器460传送该请求。中间服务器460识别内容请求的递送格式并且试图使用协议Y递送格式向源服务器420转发该内容请求。如果中间服务器460确定源服务器420不支持客户端递送格式,则中间服务器460将内容请求翻译成被源服务器420支持的另一递送格式(例如,协议X)。
中间服务器460然后能够从源服务器420中检索所请求的响应内容并且将响应内容翻译回客户端递送格式,以用于递送给客户端装置490。
因此,源服务器420和客户端490能够使用它们相应支持的递送格式进行通信。此外,在一些实施例中,中间服务器460能够以源递送格式、客户端递送格式或两者存储(例如,缓存)所检索到的内容,以用于响应于另一请求稍后递送,所述另一请求可以使用又一个递送格式到达。
通常在HTTP服务背景下部署反向代理,并且所以用于接受请求并且向适当的主机(例如,源服务器)转发该请求的技术是很好理解的。然而,已知的反向代理通常仅转发如从客户端装置接收到的相同的请求URL(统一资源定位符)。
相比之下,中间服务器460能够基于由源服务器所支持的递送格式和本文所描述的许多其它因素来改变所接收到的请求URL。
所接收到的请求URL(即,客户端请求URL)通常包括三个主分量:“域”,表示URL内的源服务器的主机名;“位置”,表示由源服务器用来识别特定资源的目录或路径结构;以及媒体标识符,表示所请求的URL的识别特定资源(诸如清单或内容片段)的部分。
例如,对于通过客户端使用苹果递送格式的清单请求,客户端请求URL可以是“http://www.example.com/ABR/video1/BBB.m3u8”。因此,域是“www.example.com”,路径是“/ABR/video1/”,并且媒体标识符是“BBB.m3u8”。
在至少一些实施例中,URL的域和路径分量可以保持不变。然而,能够取决于由源服务器所支持的递送格式(即,源递送格式)的需要而改变媒体标识符。
在苹果递送格式的上述示例中,如果源服务器仅支持微软平滑流送递送格式,则媒体标识符将从“BBB.m3u8”改变为“BBB.ism/Manifest”。域和路径能够原封不动。
现参考图5,图示了作为流送系统500的一部分的中间服务器560的示例性简化系统框图。流送系统500通常类似于流送系统400。类似地,每个源服务器520和客户端装置590分别可以通常类似于源服务器420和客户端装置490。
中间服务器560可以被概念上组织成三个平面,包括数据平面、控制平面以及管理平面。
HTTP服务器566(其还可以被称为中间服务器模块)能够被配置成从客户端装置590接收HTTP请求(例如,包括客户端请求URL),并且配置成向内容生成器564转发所接收到的请求。HTTP服务器566还能够被配置成在被从内容生成器564接收到后递送与HTTP请求相对应的响应数据。
HTTP服务器566例如可以执行每个HTTP请求的初始验证,以确保该请求符合HTTP协议。通常,能够优化HTTP服务器566以提供高性能并且服务大量并发连接。
HTTP客户端562(其还可以被称为中间客户端模块)能够被配置成从内容生成器564接收HTTP请求并且向适当的源服务器520转发该请求。类似地,HTTP客户端562能够被配置成在响应于HTTP请求从每个源服务器520接收到响应数据时,向内容生成器564递送响应数据。通常,能够优化HTTP客户端562以得到高性能(例如,高吞吐量)。
内容生成器564能够被配置成将请求从一个组件(例如,HTTP服务器566、HTTP客户端562、控制平面)移动至另一组件,并且配置成在其它组件中的每一个之间链接那些请求。此外,内容生成器564能够解析请求以确定该请求如何可以被最好地服务。
例如,内容生成器564可以识别到使用协议X递送格式的请求目的地是使用协议Y递送格式的源服务器,并且可以因此确定需要协议X-Y复用变换器(transmuxer)服务该请求。
此外,内容生成器564可以从控制平面(或管理平面)中检索策略和客户端会话信息以便于确定是否或如何尊敬客户端请求。
管理平面可以包括用于存储策略的策略模块570、用于存储配置设定的配置模块572、用于存储和跟踪涉及系统的统计的统计跟踪模块574、用于存储日志的日志模块576以及用于跟踪系统事件的事件模块578。
内容生成器564可以包括一个或多个复用变换器565,其负责将请求和响应从一个自适应流送递送格式转换为另一自适应流送递送格式。每个复用变换器565可以特定于进入递送格式和外出递送格式两者。例如,微软平滑流送到苹果复用变换器很可能不同于微软平滑流送到Adobe复用变换器。
每个复用变换器565可以被配置成解析客户端请求以确定它是否是有效请求(例如,符合递送格式要求),以确定请求是针对清单还是内容分段的等等。
如果客户端请求将需要一个以上的源服务器请求被履行,则适当的复用变换器565还可以确定哪些源服务器请求被要求履行客户端请求,并且生成和转发所对应的请求。
复用变换器565还能够在源递送格式与客户端递送格式之间转换清单请求和内容分段请求两者。
在一些实施例中,复用变换器565包括两个或更多个模块。第一模块(映射模块)能够提供清单和协议服务,而第二模块(容器转换模块)提供片段重新封装服务。重新封装包括两个功能:提取(例如,从源分段去除样本的过程);和包装(例如,将样本放入新的容器格式以用于分段递送给客户端)。
控制平面可以主要包括会话管理模块568。会话管理模块568用来管理由客户端装置590所发起的客户端会话,并且用来向内容生成器564提供基于会话的策略或配置信息。因此,会话管理模块568可以与各种管理平面组件交互。此外,会话管理模块568可以基于它与内容生成器564的交互来创建、读取和更新客户端会话信息。
会话管理模块568可以维护活动客户端会话表,其能够包括提取过程所需的相关信息和上下文。
会话管理模块568还可以与内容生成器564协作来提供客户端会话数据的快速查找。
在一些实施例中,会话管理模块568还可以执行策略管理功能,其能够包括维护配置策略的表、确定策略并且将策略指派给客户端(例如,基于客户端、域以及内容属性)以及统计收集和报告。
统计收集和报告可以包括向日志服务器或数据库发送客户端会话更新以记录会话何时被建立和毁掉。
现参考图6,图示了图5的系统的简化呼叫流程。
翻译过程中固有的挑战之一是中间服务器在流送会话初期具有有限的信息。当首先从客户端装置接收到清单请求时,源递送格式从客户端请求URL可能不是容易地明显的。例如,源服务器可以支持能够被用来履行清单请求的一个以上的源递送格式。因此,中间服务器560必须确定从客户端递送格式到源递送格式的适合的翻译。在识别了适合的翻译后,中间服务器能够检索源清单并且生成客户端清单。可选地,中间服务器能够存储与请求URL相对应的源递送格式以允许对该请求URL的将来的清单和内容分段请求被加快。
当首先接收到客户端请求时,内容生成器564能够试图识别该请求是否是初始清单请求。例如,内容生成器564可以检查请求URL以确定它是否包含由内容生成器564所先前生成或使用的唯一标识符(例如,UUID),其将指示会话已经存在,并且确定请求不是初始清单请求。
更一般地对于所有类型的客户端请求,内容生成器564可以解析HTTP请求中的URL以确定它是否在该URL中包含指示哪一个递送格式正被使用并且哪一个复用变换器565应该被用来处理请求的特定签名。每个递送格式以其清单请求格式具有唯一特定签名。例如,微软平滑流送递送格式具有形式为“XXXXX.ism/Manifest”的URL的媒体标识符分量,其中XXXXX是媒体资产的名称。在另一示例中,Adobe递送格式使用.f4m的文件扩展名来表示清单。类似地,苹果递送格式使用.m3u8的文件扩展名来表示清单。因此,在一些实施例中,内容生成器564可以简单地使用请求URL的媒体标识符分量来确定请求是否对应于清单。
清单文件通常用来提供组成多媒体项的内容分段的索引,并且用来提供关于可用流送选项的元数据。例如,清单文件可以规定递送格式类型、递送格式版本、时标、内容持续时间、分段持续时间、分段编码参数(例如,比特率、编解码、尺寸)、分段URL或URL模板以及其它数据。
因此,清单向客户端装置提供足够的信息以便客户端装置确定所支持的不同的比特率、视频和音频如何已被编码以及客户端如何能够生成对特定分段的请求。
在下面示出了示例微软平滑流送清单文件。
和微软平滑流送递送格式对比,苹果HLS递送格式使用多层清单方法,其中初始清单指的是另外的低级清单。在下面示出了初始清单:
#EXTM3U
#EXT-X-STREAM-INF:
PROGRAM-ID=1,
BANDWIDTH=300000
http://www.example.com/ABR/Video1/bbb_6layers_2sec_300000.m3u8
#EXT-X-STREAM-INF:
PROGRAM-ID=1,
BANDWIDTH=500000
http://www.example.com/ABR/Video1/bbb_6layers_2sec_500000.m3u8
#EXT-X-STREAM-INF:
PROGRAM-ID=1,
BANDWIDTH=1000000
http://www.example.com/ABR/Video1/bbb_6layers_2sec_1000000.m3u8
#EXT-X-STREAM-INF:
PROGRAM-ID=1,
BANDWIDTH=1500000
http://www.example.com/ABR/Video1/bbb_6layers_2sec_1500000.m3u8
#EXT-X-STREAM-INF:
PROGRAM-ID=1,
BANDWIDTH=2500000
http://www.example.com/ABR/Video1/bbb_6layers_2sec_2500000.m3u8
#EXT-X-STREAM-INF:
PROGRAM-ID=1,
BANDWIDTH=3500000
http://www.example.com/ABR/Video1/bbb_6layers_2sec_3500000.m3u8在下面示出了针对以上300000kbps流的低级清单:
#EXTM3U
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:
2,
http://www.example.com/ABR/Video1/bbb_6layers_2sec_300000_0.ts
#EXTINF:
2,
http://www.example.com/ABR/Video1/bbb_6layers_2sec_300000_1.ts
#EXTINF:
2,
http://www.example.com/ABR/Video1/bbb_6layers_2sec_300000_2.ts
#EXTINF:
2,
http://www.example.com/ABR/Video1/bbb_6layers_2sec_300000_3.ts
#EXTINF:
2,
http://www.example.com/ABR/Video1/bbb_6layers_2sec_300000_4.ts
#EXTINF:
2,
http://www.example.com/ABR/Video1/bbb_6layers_2sec_300000_5.ts
#EXTINF:
2,
http://www.example.com/ABR/Video1/bbb_6layers_2sec_300000_6.ts
#EXTINF:
2,
http://www.example.com/ABR/Video1/bbb_6layers_2sec_300000_7.ts
#EXTINF:
2,
http://www.example.com/ABR/Video1/bbb_6layers_2sec_300000_8.ts
#EXTINF:
2,
http://www.example.com/ABR/Video1/bbb_6layers_2sec_300000_9.ts
#EXT-X-ENDLIST
相比之下,Adobe递送格式在称作“BootStrap”的字段中识别分段号和它们关联的时间线,所述字段在清单中被编码和压缩。在下面示出了Adobe清单的示例:
将了解,用于每个递送格式类型的清单文件格式明显地不同。作为这个的结果,请求URL类型同样不同。因此,递送格式类型能够典型地通过模式匹配请求URL来确定。模式匹配的使用允许中间服务器560随着开发新的递送格式类型和版本而在将来用更新的模式匹配定义容易地升级。
再次参考图6,在605处,客户端装置590向中间服务器560传送客户端请求(包括清单请求URL)。内容生成器564识别清单请求URL并且将请求移交给适当的复用变换器565。
如果源服务器520被中间服务器560知道,则复用变换器565能够立即为源服务器520生成适当的清单请求URL并且在610处传送该请求。
如果源服务器520不是已知的,则复用变换器565可以通过一次生成一个清单请求URL并且转发给源服务器520来试图识别由源服务器520所支持的递送格式类型。如果源服务器520拒绝特别生成的URL(例如,返回了HTTP 404错误响应),则复用变换器565可以重复该过程直到接收到成功响应为止。当复用变换器565对于清单请求URL用尽所有已知的可能性时,可以停止这个迭代过程。
每个复用变换器565可以具有规定清单构造模式的它自己的配置文件。在一个实施例中,可以使用如在下面表3中所示出的标记值对来规定构造模式。
表3
因此,对于http://example.com/video_storage/supervideo.m3u8的示例请求URL,[BASE_URL]将是“http://example.com/video_storage”,[DOMAIN_URL]将是“http://example.com”,[LOCATION_URL]将是“video_storage”,[MEDIA_URL]将是“supervideo”并且[EXT_URL]将是“m3u8”。
复用变换器565的映射模块能够通过将适当的值插入特定于每个支持的递送格式的预定模板模式来生成清单请求URL以用于转发给源服务器。因为每个源服务器可以具有最小变化,所以可以存在用于复用变换器通过特定协议类型甚至在特定协议类型内迭代的多个预定模板模式。
例如,支持苹果递送格式的源服务器可以在清单请求URL的形式上具有最小变化。因此,预定模板模式可以包括:
[BASE_URL]/[MEDIA_URL].m3u8
[BASE_URL]/[MEDIA_URL]/playlist.m3u8
[BASE_URL]/[MEDIA_URL].ism/Manifest(format=m3u8-aapl)
[BASE_URL]/[MEDIA_URL].isml/Manifest(format=m3u8-aapl)
[BASE_URL]/mp4:[MEDIA_URL].mp4/playlist.m3u8
[BASE_URL]/smil:[MEDIA_URL].smil/playlist.m3u8
将了解,还能够针对苹果递送格式和其它递送格式两者预先规定各种附加的模式。
作为示例,考虑微软平滑流送递送格式的客户端请求目的地是使用苹果递送格式的源服务器。请求URL可以采取“http://example.com/vod/supervideo.ism/Manifest”的形式。在这个示例中,[BASE_URL]将是“example.com/”,[LOCATION_URL]将是“vod/”并且[MEDIA_URL]将是“supervideo”。
因此,基于针对“http://[BASE_URL]/[LOCATION_URL][MEDIA_URL].m3u8”的源服务器的预定模式,针对源服务器所生成的请求URL将是“http://example.com/vod/supervideo.m3u8”。
在610处生成和传送了请求URL后,并且在615处接收到成功响应(包括清单),则复用变换器565的映射模块能够将所接收到的清单从由源服务器所使用的协议转换为由客户端装置所使用的协议。
在这个阶段,会话管理模块568能够提供用于插入为客户端装置590所创建的清单的唯一标识符以识别与客户端装置590和源服务器520相关联的流送会话。
在一些实施例中,可以以如将唯一会话标识符(UUID)包括在请求URL模板中的这样一种方式将唯一标识符插入清单。因此,当客户端装置590对于内容分段做出另外的请求时,中间服务器560能够识别到请求与特定会话相关联。唯一标识符还能够被用来确定要使用哪一个复用变换器565。
已插入标识符的精确位置可以根据清单类型而不同。例如,对于特定客户端,请求URL模板能够在URL结尾包含参数字符串。对于其它客户端,参数能够被插入请求URL模板的[LOCATION_URL]元素。
如上面所指出的,除用来确保不间断回放的定时信息(例如,分段持续时间、比特率等)之外,每个类型的清单提供向客户端描述如何对于附加的清单或内容分段做出将来的请求的信息。因此,每个清单类型包含类似的信息,其可以被以不同的方式格式化。
因为每个协议的分段尺寸和分段结构可以不同,所以可能有必要从源服务器中检索多个内容分段以履行特定客户端请求。例如,在一些协议中,每个分段包含仅单个媒体类型(例如,仅视频或仅音频)。因此,为了实现视听内容的回放需要检索视频分段和音频分段两者。然而,在一些其它协议中,视频内容和音频内容两者都可以一起复用在单个分段中,从而需要仅单个分段实现回放。
现参考图7,图示了时间轴上的示例性视频分段和音频分段映射。内容项710包括各自具有5秒的持续时间的四个视频分段,和各自具有4秒的持续时间的五个音频分段。相比之下,内容项750包括各自具有5秒的持续时间的四个内容分段,其中每个内容分段包含交织的视频数据和音频数据。
将了解,当不同的媒体类型被分成相应的单独分段(例如,音频和视频)时,分段可能不具有相同的持续时间。然而,以交织格式,可以预期在内容项的给定持续时间内的所有视频和音频样本被包含在单个特定分段中。
因此,当在表示隔离模型与交织模型的关系的清单之间进行转换时,复用变换器映射模块可能需要确定如何在目标清单中表示各种内容分段的定时和持续时间。
在一些实施例中,视频分段可以被选择为主定时源。因此,如果复用变换转换是从隔离源到交织源,则已交织分段的持续时间将基于视频分段在隔离源中的持续时间。相反地,当复用变换转换是从交织源到隔离源,则交织分段的持续时间可以用于视频分段和音频分段两者。
为了在将分段请求从客户端递送格式翻译为源递送格式中帮助复用变换器565的映射模块,能够在为客户端生成初始清单时为每个会话创建一个或多个会话分段映射表。如上面所描述的,每个分段表示在内容项(媒体资产)内的特定时间跨度,并且被提供给客户端的清单描述如何针对每个特定时间跨度创建分段请求。
会话分段映射表能够包括来自源清单的分段的时间线和客户端清单中的分段的对应时间线。在下面表5A和5B中示出了会话分段映射表的示例性对。因此,每个映射模块能够确定要从源服务器请求哪些分段以履行来自客户端装置的请求。
表5A
表5B
而且,复用变换器565的映射模块可以选择用来向客户端递送的不同长度的分段持续时间,其不必基于源分段的持续时间。例如,客户端清单可以定义具有10秒的持续时间的分段,而源清单可以包含具有2秒的持续时间的分段。使用会话分段映射表,映射模块能够从而确定它将需要检索5个源分段以便于服务单个客户端分段请求。
在识别并且检索到必要的内容分段后,转换容器格式的过程能够由复用变换器565的容器转换模块执行。分段容器转换能够被概念上划分成两个部分:提取和包装。
对于提取,从源服务器中检索到的分段能够根据源容器格式“解复用”成一组媒体描述符(即,适用于容器中的所有样本的参数)以及音频和视频的原始样本和它们关联的定时(PTS和DTS)。对于包装,所提取的数据能够被放入通用数据结构,其能够被容易地“复用”成目标容器格式。
在下面表6至8中示出了媒体描述符的示例。
表6
表7
表8
对于内容分段各种流送协议和递送格式中的每一个都支持特定容器格式。例如,微软平滑流送容器格式基于ISO.mp4格式,其中分段被包含在“MOOF”(电影分段)中。Adobe同样使用基于ISO.mp4格式的容器格式,但是进一步规定样本具有基于对ISO格式的专有添加的附加信息。苹果使用MPEG-2传输流容器格式。因此,每个复用变换器565具有适于提取和包装所需要的容器的类型的容器转换模块,以便于满足客户端和源容器格式(以及因此递送格式)的要求。
将了解,尽管贯穿本描述对音频内容和视频内容做出参考,但是存在还能够以同样的方式处理的其它类型的内容(例如,隐藏解说词、字幕)。
再次参考图6,在620处,客户端装置590检索客户端清单并且确定哪些内容分段要检索。在625处,客户端装置590传送客户端分段请求。客户端分段请求由复用变换器565的映射模块处理以便以源递送格式生成源分段请求,其在640处被传送给源服务器520。在一些实施例中,客户端分段请求可以对应于一个以上的源分段请求,如本文所描述的。同样地,单个源分段请求可以对应于一个以上的客户端请求。
在645处,源服务器520向复用变换器565传送所请求的内容分段。复用变换器565的容器转换模块将内容分段从源递送格式转换为客户端递送格式。如本文所描述的,转换可以牵涉内容的复用变换和重新封装。
在660处,中间服务器560使用客户端递送格式向客户端装置590传送所请求的内容分段。
由于HTTP协议和所关联的基于HTTP的自适应流送协议的无状态性质,在HTTP协议中不存在知道任何单个会话的确切状态的固有能力。例如,不存在指示客户端是否已暂停会话或者已以其它方式结束会话(例如,关闭了web浏览器窗口)的从客户端到服务器的消息传送。在两种情况下,客户端简单地停止请求附加的数据。这在识别会话何时已结束时产生挑战。
在一些情况下,客户端可能几乎无限地处于暂停状态,所以不存在能够依靠来识别会话何时已永久地结束的特定事件。因为中间服务器不能够永远维护处于活动状态的无限数目的客户端会话,所以必须有识别结束的或“死”会话的方法,以使得储存器和存储器资源能够被再用于新的会话。
在一个实施例中,会话管理模块568管理识别所有打开客户端会话的状态的表。会话管理模块568可以周期性地在预定周期之后,使所有活动会话“超时”,将它们标记为处于超时状态。如果现在处于超时状态的会话在下一个周期性超时事件之前做出了另一分段请求,则会话可以被再次标记为“活动的”。相反地,如果会话已经处于超时状态并且等到“超时”事件再发生时尚未做出任何另外的分段请求,则会话可以被移动至不活动队列并且标记为删除的候选。不活动队列能够基于先进先出(FIFO)方法,使得已经不活动最久的会话是被首先去除的会话。然而,不必去除作为删除的候选的会话直到中间服务器160确定会话资源已被用尽为止。
如果在会话被删除之前接收到与该会话相关联的另一分段请求,则被标记为“超时”或“不活动”的任何会话可以再次被标记为“活动的”。
现参考图8,图示了可以由中间服务器的会话管理模块用来表示客户端会话的状态的示例性状态图。
当在810处接收到客户端清单请求时,客户端会话被发起并且标记为初始化。随后,如果接收到与该会话相关联的另一分段请求或清单请求,则在820处会话状态被标记为活动的。如果未接收到另外的请求,则会话被标记为超时830。
在830和840处,周期性过程将处于初始化状态和活动状态的所有会话的状态改变为超时。然而,如果与会话相关联地接收到另一分段请求(在850处),则所关联的会话能够再一次被标记为活动的。
在860处,周期性过程将处于超时状态的所有会话的状态改变为删除候选。然而,如果与会话相关联地接收到另一分段请求(在870处),则所关联的会话能够再一次被标记为活动的。
如果在880处,中间服务器560确定了它需要会话资源(例如,存储器)来服务新的会话,并且不存在标记为删除的候选的较旧会话,则能够删除作为删除的候选的现有会话。
在一些实施例中,中间服务器560可以使用一个或多个分段请求的定时来确定客户端流送会话的客户端会话状态。例如,如果分段请求定时表明所请求的分段具有被比实际上已经过的更大量的时间分离的时间码或者分段被失序检索到,则中间服务器560能够推理客户端执行了寻道(seek)操作。
类似地,如果定时确定了实际经过的时间超过一个或多个分段请求的播放时间,则中间服务器560能够推理已执行了特技播放操作。一般而言,特技播放操作是导致除在普通帧速率下以外的内容的回放的操作。特技播放操作的示例包括“暂停”事件、“快进”事件、“倒片”事件、“慢动作”事件等等。
现参考图9,图示了图5的中间服务器的示例性具体呼叫流程。
呼叫流程900通常图示中间服务器(诸如中间服务器560)的组件之间的示例性消息流程。在一些实施例中,基本模型可以是非阻塞的,因为组件将请求/响应模型用于与彼此进行通信并且因此从不处于它们被“阻塞”等待响应的状态。
在一些实施例中,内容生成器564能够被配置成维护这些组件之间的链路,而会话管理模块568能够被配置成管理总体连接状态和策略。
如图9中所示,存在两个主要端到端消息流程。第一消息流程由对清单信息的初始请求产生。第二消息流程由对另外的清单或媒体分段的请求产生。
消息流程在905处从来自使用客户端递送格式的客户端的HTTPGET请求开始。在910处,内容生成器564确定哪一个复用变换器565应该基于客户端递送格式来处理请求并且将该请求传递给适当的复用变换器的映射模块。如果在912处不能够找到适当的复用变换器,则在945处消息流程可以继续发出错误消息。如果找到了适当的复用变换器,则消息流程进行到915。
在915处,复用变换器确定HTTP请求是对初始清单的请求还是后续请求。如果该请求是初始请求,则流程进行到920,其中唯一标识符和会话上下文(例如,状态信息)像本文所描述的那样被创建,于是流程进行到935。
如果请求不是初始请求,则在925处唯一标识符被从HTTP请求中提取并且用来检索会话状态。
在930处,复用变换器确定请求是否是针对清单的。如果请求是针对清单的,则流程进行到935,于是对清单的请求由映射模块使用源递送格式(例如,对清单的中间请求)来生成,并且传送给源服务器。
在940处,复用变换器确定是否接收到请求的成功响应。如果接收到错误,则复用变换器识别到在945处错误消息应该被递送给客户端装置,并且在950处在对应的HTTP响应(HTTP RESPONSE)消息中传送该错误消息。
如果成功地接收到清单,则在990处复用变换器的容器转换模块转换该清单,如本文所描述的,并且识别到在995处经复用变换的清单应该被递送给客户端装置。在999处在对应的HTTP响应消息中传送经复用变换的清单。
如果在930处,复用变换器确定请求不是针对清单的,则流程进行到955以将请求复用变换成源服务器协议,从而生成对内容分段的中间请求,并且向源服务器传送对内容分段(或各分段)的中间请求。
在960处,复用变换器确定是否接收到请求的成功响应。如果接收到错误,则复用变换器识别到在980处错误消息应该被递送给客户端装置,并且在985处在对应的HTTP响应消息中传送该错误消息。
如果成功地接收到内容分段,则复用变换器的容器转换模块在965处例如通过根据源容器格式对分段进行解包来转换分段(或各分段),并且识别到在970处经复用变换的内容分段(或各分段)应该被递送给客户端装置。经复用变换的内容分段(或各分段)能够被包装成客户端容器格式(同时保持具有源编码格式),并且在975处在对应的HTTP响应消息中使用客户端递送格式来传送。
包装可以包括通过重组内容分段将多个分段包装成客户端容器格式,例如其中源容器格式和客户端容器格式产生包括数个分段的不同长度的分段。
现参考图10,图示了用于接受初始清单请求的示例性呼叫流程1000。
当HTTP服务器566从客户端装置590接收到对清单的HTTP GET请求时,呼叫流程在1001处开始。
在1002处,HTTP服务器566检查请求的有效性,并且如果请求是有效的,则随着所请求的URL向内容生成器564转发请求消息。所转发的请求消息可以包含诸如请求标识符、请求URL、客户端装置IP地址、客户端标识符(例如,cookie)、用户代理、客户端TCP端口以及请求的时间的消息细节。
在1003处,内容生成器564(例如,复用变换器565的映射模块)确定请求是针对初始清单请求的,并且通知会话管理模块568。通知可以包含诸如请求标识符、由内容生成器564所生成的会话上下文标识符、时间戳、客户端协议类型、客户端IP地址以及请求URL的细节。
在1004处,会话管理模块568确定它是否能够允许会话(例如,足够的资源是可用的,客户端被授权等)并且向内容生成器564发送授权消息。授权消息可以包括请求标识符、由内容生成器564所生成的会话上下文标识符、由会话管理模块568所生成的会话的唯一标识符(UUID)、响应代码、与源服务器协议相对应的标识符以及用于复用变换器565的映射模块试图在格式化请求时使用的请求模式的列表。
在1005处,复用变换器565的映射模块使用源协议来创建适当的请求并且向HTTP客户端562转发所生成的包括请求标识符和一个或多个请求URL的请求。请求标识符能够用来使响应与复用变换器565相关联。
在1006处,HTTP客户端562为源服务器520确定适当的IP地址并且随着所生成的对源清单的请求而传送HTTP GET消息。
在1007处,源服务器520以源递送格式以所请求的源清单文件做出响应。
在1008处,HTTP客户端562向内容生成器564传送或者转发所请求的清单。响应可以包括请求标识符、一个或多个请求URL以及与每个请求相对应的状态代码。
在1009处,内容生成器564(和适当的复用变换器的容器转换模块)从以源递送格式所接收到的清单文件以客户端递送格式生成客户端清单文件,并且向HTTP服务器566转发客户端清单。
最后,在1010处,HTTP服务器566向客户端装置590传送客户端清单。
现参考图11,图示了针对拒绝的初始清单请求的示例性呼叫流程1100。
当HTTP服务器566从客户端装置590接收到对清单的HTTP GET请求时,呼叫流程1100在1101处开始。请求具有客户端递送格式。
在1102处,HTTP服务器566检查请求的有效性,并且如果请求是有效的,则随着所请求的URL向内容生成器564转发请求消息。
在1103处,内容生成器564确定请求是针对初始清单请求的,并且通知会话管理模块568。
在1104处,会话管理模块568确定它不能够允许会话(例如,不足够的资源是可用的,客户端未被授权等)并且向内容生成器564发送非授权消息。
在1105处,内容生成器564创建拒绝消息(例如,HTTP错误消息)并且向HTTP服务器566转发该消息。
最后,在1106处,HTTP服务器566向客户端装置590传送拒绝消息。
现参考图12,图示了针对包含无效的源服务器地址的初始清单请求的示例性呼叫流程1200。
当HTTP服务器566从客户端装置590接收到对清单的HTTP GET请求时,呼叫流程1200在1201处开始。请求具有客户端递送格式。
在1202处,HTTP服务器566检查请求的有效性,并且如果请求是有效的,则随着所请求的URL向内容生成器564转发请求消息。
在1203处,内容生成器564确定请求是针对初始清单请求的,并且通知会话管理模块568。
在1204处,会话管理模块568确定它是否能够允许会话(例如,足够的资源是可用的,客户端被授权等)并且向内容生成器564发送授权消息。
在1205处,内容生成器564使用源协议来创建适当的请求并且向HTTP客户端562转发所生成的请求。
在1206处,HTTP客户端562确定它不能够连接到源服务器520(例如,因为请求包含无效的源服务器地址)并且向内容生成器564发送具有指示连接到源服务器的故障的状态的错误消息。
在1207处,内容生成器564确定客户端会话应该被删除并且向会话管理模块568发送删除消息,使得能够收回会话资源。
在1208处,内容生成器564向HTTP服务器566发送具有适当的HTTP错误代码的错误消息。
最后,在1209处,HTTP服务器566向客户端装置590传送错误消息。
现参考图13,图示了针对有效分段请求的示例性呼叫流程1300。
当HTTP服务器566从客户端装置590接收到对内容分段的HTTPGET请求时,呼叫流程1300在1301处开始。
在1302处,HTTP服务器566检查请求的有效性,并且如果请求是有效的,则随着所请求的URL向内容生成器564转发请求消息。
在1303处,内容生成器564确定请求是针对内容分段的,提取唯一会话ID并且向会话管理模块568通知包含在请求中的唯一会话标识符。
在1304处,会话管理模块568识别会话并且向内容生成器564发送包含该会话的细节(例如,策略、状态等)的消息。
在1305处,内容生成器564使用源协议来创建适当的请求并且向HTTP客户端562转发所生成的请求。
在1306处,HTTP客户端562为源服务器520确定适当的IP地址并且随着对所请求的内容分段的所生成的请求传送HTTP GET消息。
在1307处,源服务器520以所请求的内容分段做出响应。
在1308处,HTTP客户端562向内容生成器564传送或者转发所请求的内容分段。
在1309处,内容生成器564(和适当的复用变换器)向会话管理模块568传送有关内容分段的信息(例如,字节数等)。所传送的信息可以包括会话的唯一会话标识符(UUID)、针对这个分段发送的字节数、所发送的内容分段的持续时间、所发送的内容分段的比特率以及内容项中的位置(例如,从当前内容分段表示的视频开始起的秒数)。
在1310处,内容生成器564(和适当的复用变换器)将所接收到的内容分段从源协议复用变换为客户端协议,并且向HTTP服务器566转发经复用变换的内容分段。
最后,在1311处,HTTP服务器566向客户端装置590传送经复用变换的内容分段。
现参考图14,图示了针对无效分段请求的示例性呼叫流程1400。
当HTTP服务器566从客户端装置590接收到对内容分段的HTTPGET请求时,呼叫流程1400在1401处开始。
在1402处,HTTP服务器566检查请求的有效性,并且如果请求是有效的,则随着所请求的URL向内容生成器564转发请求消息。
在1403处,内容生成器564确定请求是无效分段请求并且向HTTP服务器发送具有适当的HTTP错误代码的拒绝消息。
最后,在1404处,HTTP服务器566向客户端装置590传送拒绝消息。
现参考图15,图示了针对包含无效会话标识符(UUID)的内容分段请求的示例性呼叫流程1500。
当HTTP服务器566从客户端装置590接收到对内容分段的HTTPGET请求时,呼叫流程1500在1501处开始。
在1502处,HTTP服务器566检查请求的有效性,并且如果请求是有效的,则随着所请求的URL向内容生成器564转发请求消息。
在1503处,内容生成器564确定请求是针对内容分段的,并且向会话管理模块568通知包含在请求中的唯一会话标识符。
在1504处,会话管理模块568试图识别与唯一标识符相对应的会话,并且如果它不存在,则向内容生成器564发送错误消息(例如,会话未找到)。
在1505处,内容生成器564创建错误消息(例如,HTTP错误消息)并且向HTTP服务器566转发该消息。
最后,在1506处,HTTP服务器566向客户端装置590传送错误消息。
如本文所描述的,反向翻译代理方法允许在“每请求”和“即时”基础上转换不同的自适应流送协议。因此,所描述的方法已被优化成在每分段请求基础上对内容进行复用变换,同时排除对附加的内容分段进行复用变换的需要直到它们被实际上请求为止。附加的能力包括基于会话上下文动态地定义响应以优化QoE。例如,如果策略已被设置成限制特定客户端的带宽,并且客户端请求更高比特率,则中间服务器能够检索仅和带宽策略匹配的那些分段。
将了解,许多特定细节被阐述以便于提供对本文所描述的示例性实施例的彻底理解。然而,本领域的普通技术人员将理解,可以在没有这些特定细节的情况下实践本文所描述的实施例。在其它实例中,没有详细地描述众所周知的方法、过程以及组件以便不使本文所描述的实施例混淆。因此,上面已描述的一直旨在说明本发明且为非限制性的,并且本领域的技术人员将理解,在不背离如在所附权利要求中所定义的本发明的范围的情况下可以做出其它变体和修改。

Claims (28)

1.一种用于从源服务器向客户端装置递送流送媒体内容项的系统,其中所述源服务器具有用于所述流送媒体内容的源容器格式和源递送格式,并且其中所述流送媒体内容包括以源编码格式编码的第一多个内容分段,所述系统包括:
a)映射模块,所述映射模块被配置成使用客户端递送格式从所述客户端接收对所述流送媒体内容项的至少请求的部分的客户端请求,确定所述客户端请求具有客户端递送格式并且以所述源递送格式生成与所述客户端请求相对应的中间请求;
b)中间客户端模块,所述中间客户端模块被配置成向所述服务器传送所述中间请求并且接收与所述流送媒体内容项的所请求的部分相对应的所述第一多个内容分段的子集,其中,以所述源容器格式从使用所述源递送格式的所述源服务器接收所述子集。
c)容器转换模块,所述容器转换模块被配置成根据所述源容器格式对所述子集进行解包并且将所述子集包装成客户端容器格式,其中,在所述子集中的以所述客户端容器格式所包装的所述内容分段保持以所述源编码格式编码;以及
d)中间服务器模块,所述中间服务器模块被配置成以所述客户端容器格式向使用所述客户端递送格式的所述客户端传送所述流送媒体内容项。
2.根据权利要求1所述的系统,其中,所述容器转换模块通过将所述第一多个内容分段重组成第二多个内容分段来将所述流送媒体内容项包装成所述客户端容器格式,其中,所述第二多个内容分段具有与所述第一多个内容分段不同的持续时间。
3.根据权利要求1或权利要求2所述的系统,其中,所述映射模块通过使用预定递送格式传送一个或多个请求并且确定是否接收到成功响应来确定所述源服务器被配置成使用所述源递送格式来传送。
4.根据权利要求1至3中的任何一项所述的系统,其中,所述映射模块通过将所述客户端请求与多个预定请求模式相比较来确定所述客户端请求具有所述客户端递送格式。
5.根据权利要求1至4中的任何一项所述的系统,其中,所述中间服务器还包括会话管理模块,所述会话管理模块被配置成在接收到所述客户端请求时发起流送会话。
6.根据权利要求5所述的系统,其中,所述会话管理模块进一步被配置成通过监测来自所述客户端的分段请求针对所述流送会话来确定所述客户端的会话状态。
7.一种用于从源服务器向客户端递送流送媒体内容项的方法,其中所述源服务器具有用于所述流送媒体内容的源容器格式和源递送格式,并且其中所述流送媒体内容包括以源编码格式编码的第一多个内容分段,所述方法包括:
a)使用客户端递送格式从所述客户端接收对所述流送内容项的至少请求的部分的客户端请求;
b)确定所述客户端请求具有所述客户端递送格式;
c)生成与所述客户端请求相对应的中间请求,其中,所述源请求具有所述源递送格式;
d)向所述服务器传送所述中间请求;
e)接收与所述流送媒体内容项的所请求的部分相对应的所述第一多个内容分段的子集,其中,以所述源容器格式从使用所述源递送格式的所述源服务器接收所述子集;
f)根据所述源容器格式对所述子集进行解包并且将所述子集包装成客户端容器格式,其中,在所述子集中的以所述客户端容器格式所包装的所述内容分段保持以所述源编码格式编码;以及
g)以所述客户端容器格式向使用所述客户端递送格式的所述客户端传送所述流送媒体内容项。
8.根据权利要求7所述的方法,其中,所述包装通过将所述第一多个内容分段重组成第二多个内容分段来执行,其中,所述第二多个内容分段具有与所述第一多个内容分段不同的持续时间。
9.根据权利要求7或权利要求8所述的方法,还包括通过使用预定递送格式传送一个或多个请求并且确定是否接收到成功响应来确定所述源服务器被配置成使用所述源递送格式来传送。
10.根据权利要求7至9中的任何一项所述的方法,还包括通过将所述客户端请求与多个预定请求模式相比较来确定所述客户端请求具有所述客户端递送格式。
11.根据权利要求7至10中的任何一项所述的方法,还包括在接收到所述客户端请求时发起流送会话。
12.根据权利要求11所述的方法,还包括通过监测来自所述客户端的分段请求针对所述流送会话来确定所述客户端的会话状态。
13.一种用于从源服务器向客户端装置递送流送媒体内容项的系统,其中所述源服务器具有用于所述流送媒体内容的源容器格式和源递送格式,并且其中所述流送媒体内容包括以源编码格式编码的第一多个内容分段,所述系统包括:
a)映射模块,所述映射模块被配置成从所述客户端接收对所述流送媒体内容项的至少请求的部分的至少一个客户端请求并且生成与所述至少一个客户端请求相对应的中间请求;
b)会话管理模块,所述会话管理模块被配置成在接收到所述至少一个客户端请求时发起流送会话,所述会话管理模块进一步被配置成通过监测所述至少一个客户端请求针对所述流送会话来确定所述客户端的会话状态;
c)中间客户端模块,所述中间客户端模块被配置成向所述服务器传送所述中间请求并且接收与所述流送媒体项的所请求的部分相对应的所述第一多个内容分段的子集;
d)中间服务器模块,所述中间服务器模块被配置成向所述客户端传送所述流式媒体内容项。
14.根据权利要求13所述的系统,其中,所述映射模块被配置成使用客户端递送格式来接收所述客户端请求并且确定所述客户端请求具有所述客户端递送格式,其中,所述中间请求具有所述源递送格式,其中,以所述源容器格式从使用所述源递送格式的所述源服务器接收所述第一多个内容分段的子集,还包括容器转换模块,所述容器转换模块被配置成根据所述源容器格式对所述子集进行解包并且将所述子集包装成客户端容器格式,其中,在所述子集中的以所述客户端容器格式所包装的所述内容分段保持以所述源编码格式编码,其中,所述中间服务器模块被配置成以所述客户端容器格式向使用所述客户端递送格式的所述客户端传送所述流送媒体内容项。
15.根据权利要求13或权利要求14所述的系统,其中,所述会话管理模块被进一步配置成识别所有打开客户端会话的状态。
16.根据权利要求13至15中的任何一项所述的系统,其中,所述会话管理模块进一步被配置成在预定超时周期之后将所述会话状态标记为不活动的。
17.根据权利要求16所述的系统,其中,所述会话管理模块进一步被配置成在接收到与所述客户端会话相关联的另一分段请求时将所述会话状态标记为活动的。
18.根据权利要求13至17中的任何一项所述的系统,其中,所述至少一个客户端请求包括多个客户端请求,并且其中,基于所述多个客户端请求的定时来确定所述会话状态。
19.根据权利要求18所述的系统,其中,当所述定时指示所述多个客户端请求是针对失序的分段时,那么确定寻道操作。
20.根据权利要求18所述的系统,其中,当所述定时指示实际经过的时间超过在所述多个客户端请求中所请求的分段的播放时间时,那么确定特技播放操作。
21.一种用于从源服务器向客户端装置递送流送媒体内容项的方法,其中,所述源服务器具有用于所述流送媒体内容的源容器格式和源递送格式,并且其中,所述流送媒体内容包括以源编码格式编码的第一多个内容分段,所述系统包括:
a)从所述客户端接收对所述流送媒体内容项的至少请求的部分的至少一个客户端请求;
b)生成与所述至少一个客户端请求相对应的中间请求;
c)在接收到所述至少一个客户端请求时发起流送会话;
d)通过监测所述至少一个客户端请求针对所述流送会话来确定所述客户端的会话状态;
e)向所述服务器传送所述中间请求;
f)接收与所述流送媒体内容项的所请求的部分相对应的所述第一多个内容分段的子集;以及
g)向所述客户端传送所述流送媒体内容项。
22.根据权利要求21所述的方法,其中,使用客户端递送格式接收所述客户端请求,其中,所述中间请求具有所述源递送格式,其中,以所述源容器格式从使用所述源递送格式的所述源服务器接收所述第一多个内容分段的子集,还包括根据所述源容器格式对所述子集进行解包并且将所述子集包装成客户端容器格式,其中,在所述子集中的以所述客户端容器格式所包装的所述内容分段保持以所述源编码格式编码,并且其中,所述流送媒体内容项被以所述客户端容器格式传送到使用所述客户端递送格式的所述客户端。
23.根据权利要求21或权利要求22所述的方法,还包括识别所有打开客户端会话的状态。
24.根据权利要求21至23中的任何一项所述的方法,还包括在预定超时周期之后将所述会话状态标记为不活动的。
25.根据权利要求24所述的方法,还包括在接收到与所述客户端会话相关联的另一分段请求时将所述会话状态标记为活动的。
26.根据权利要求21至25中的任何一项所述的方法,其中,所述至少一个客户端请求包括多个客户端请求,并且其中,基于所述多个客户端请求的定时来确定所述会话状态。
27.根据权利要求26所述的方法,其中,当所述定时指示所述多个客户端请求是针对失序的分段时,那么确定寻道操作。
28.根据权利要求26所述的方法,其中,当所述定时指示实际经过的时间超过在所述多个客户端请求中所请求的分段的播放时间时,那么确定特技播放操作。
CN201380030213.2A 2012-04-12 2013-04-10 用于流送媒体内容的实时复用变换的方法和系统 Active CN104396263B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/445,361 2012-04-12
US13/445,361 US9712887B2 (en) 2012-04-12 2012-04-12 Methods and systems for real-time transmuxing of streaming media content
PCT/CA2013/000340 WO2013152426A1 (en) 2012-04-12 2013-04-10 Methods and systems for real-time transmuxing of streaming media content

Publications (2)

Publication Number Publication Date
CN104396263A true CN104396263A (zh) 2015-03-04
CN104396263B CN104396263B (zh) 2018-06-08

Family

ID=49326083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380030213.2A Active CN104396263B (zh) 2012-04-12 2013-04-10 用于流送媒体内容的实时复用变换的方法和系统

Country Status (7)

Country Link
US (1) US9712887B2 (zh)
EP (1) EP2837196B1 (zh)
JP (1) JP6014870B2 (zh)
CN (1) CN104396263B (zh)
CA (1) CA2870059C (zh)
MX (1) MX353807B (zh)
WO (1) WO2013152426A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107637045A (zh) * 2015-06-16 2018-01-26 英特尔Ip公司 使用动态无线接入网信息的自适应视频流送
CN109327511A (zh) * 2018-09-18 2019-02-12 网宿科技股份有限公司 一种基于http协议的数据请求方法和服务器
CN111837405A (zh) * 2018-09-17 2020-10-27 谷歌有限责任公司 用于传递无清单流媒体内容的方法、系统和介质

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110264530A1 (en) 2010-04-23 2011-10-27 Bryan Santangelo Apparatus and methods for dynamic secondary content and data insertion and delivery
US9201938B2 (en) * 2012-05-21 2015-12-01 Sap Se Parameter driven data format conversion in client/server architectures
KR20140075829A (ko) * 2012-11-26 2014-06-20 한국전자통신연구원 투명 인터넷 캐시 서버와 콘텐츠 전달망을 결합한 콘텐츠 전달 시스템 및 방법
WO2014113604A1 (en) * 2013-01-16 2014-07-24 Huawei Technologies Co., Ltd. Url parameter insertion and addition in adaptive streaming
US9483334B2 (en) 2013-01-28 2016-11-01 Rackspace Us, Inc. Methods and systems of predictive monitoring of objects in a distributed network system
US9397902B2 (en) 2013-01-28 2016-07-19 Rackspace Us, Inc. Methods and systems of tracking and verifying records of system change events in a distributed network system
US9813307B2 (en) * 2013-01-28 2017-11-07 Rackspace Us, Inc. Methods and systems of monitoring failures in a distributed network system
US9710469B2 (en) 2013-03-15 2017-07-18 Comcast Cable Communications, Llc Efficient data distribution to multiple devices
US9681116B2 (en) * 2013-03-15 2017-06-13 Arris Enterprises, Inc. System and method for delivering 3DTV content to variety of receivers
EP3017605B1 (en) 2013-07-03 2022-12-07 Koninklijke KPN N.V. Streaming of segmented content
EP3022883B1 (en) * 2013-07-16 2017-05-03 Bitmovin GmbH Apparatus and method for cloud assisted adaptive streaming
US20150058448A1 (en) * 2013-08-21 2015-02-26 Josh Proctor Internet video streaming system
US20150067155A1 (en) * 2013-08-29 2015-03-05 Tune, Inc. Systems and methods for measuring approximate engagement of users in a software application
US10749761B1 (en) * 2013-09-27 2020-08-18 Amazon Technologies, Inc. Unique user session tracking in adaptive bitrate video delivery
US10476930B2 (en) 2014-01-06 2019-11-12 Intel IP Corporation Client/server signaling commands for dash
US10165029B2 (en) * 2014-01-31 2018-12-25 Fastly Inc. Caching and streaming of digital media content subsets
KR101924703B1 (ko) * 2014-02-13 2019-02-20 코닌클리즈케 케이피엔 엔.브이. 단일 메세지 요청에 기초하여 네트워크 노드로부터 다수의 청크 요청
US20150256600A1 (en) * 2014-03-05 2015-09-10 Citrix Systems, Inc. Systems and methods for media format substitution
WO2015148558A1 (en) * 2014-03-24 2015-10-01 Futurewei Technologies, Inc. System and method for partial url signing with applications to dynamic adaptive streaming
IL231685A (en) * 2014-03-24 2015-09-24 Giraffic Technologies Ltd A system and method for predicting memory reduction and network design
US9911460B2 (en) 2014-03-24 2018-03-06 Microsoft Technology Licensing, Llc Fast and smart video trimming at frame accuracy on generic platform
US10165028B2 (en) * 2014-03-25 2018-12-25 Intel Corporation Context-aware streaming of digital content
US10631070B2 (en) * 2014-05-22 2020-04-21 Idomoo Ltd System and method to generate a video on-the-fly
US10523723B2 (en) * 2014-06-06 2019-12-31 Koninklijke Kpn N.V. Method, system and various components of such a system for selecting a chunk identifier
US9692800B2 (en) * 2014-06-11 2017-06-27 Google Inc. Enhanced streaming media playback
US10028025B2 (en) 2014-09-29 2018-07-17 Time Warner Cable Enterprises Llc Apparatus and methods for enabling presence-based and use-based services
US10681416B2 (en) 2015-02-04 2020-06-09 Nippon Telegraph And Telephone Corporation Quality-of-experience optimization system, quality-of-experience optimization apparatus, recommend request apparatus, quality-of-experience optimization method, recommend request method, and program
JP6476995B2 (ja) * 2015-02-24 2019-03-06 沖電気工業株式会社 中継装置、コンテンツ配信システム、中継方法およびプログラム
US11076198B2 (en) * 2015-05-28 2021-07-27 Idomoo Ltd. System and method to generate an interactive video on the fly
US10425427B2 (en) * 2015-06-19 2019-09-24 Futurewei Technologies, Inc. Template uniform resource locator signing
US9954930B2 (en) * 2015-08-06 2018-04-24 Airwatch Llc Generating content fragments for content distribution
US10334316B2 (en) 2015-09-18 2019-06-25 At&T Intellectual Property I, L.P. Determining a quality of experience metric based on uniform resource locator data
US10586023B2 (en) * 2016-04-21 2020-03-10 Time Warner Cable Enterprises Llc Methods and apparatus for secondary content management and fraud prevention
US10313418B2 (en) * 2016-06-20 2019-06-04 Ramp Holdings, Inc. Chunked HTTP video cache routing
US10063612B2 (en) * 2016-09-30 2018-08-28 Amazon Technologies, Inc. Request-based encoding for streaming content portions
US10652300B1 (en) 2017-06-16 2020-05-12 Amazon Technologies, Inc. Dynamically-generated encode settings for media content
US10362339B2 (en) 2017-09-05 2019-07-23 Sonos, Inc. Networked device group information in a system with multiple media playback protocols
US10764650B2 (en) 2017-12-07 2020-09-01 At&T Intellectual Property I, L.P. Video optimization proxy system and method
US11016972B2 (en) 2018-01-26 2021-05-25 Vmware, Inc. Splitting a time-range query into multiple sub-queries for serial execution
US10860576B2 (en) 2018-01-26 2020-12-08 Vmware, Inc. Splitting a query into native query operations and post-processing operations
US11016971B2 (en) 2018-01-26 2021-05-25 Vmware, Inc. Splitting a time-range query into multiple sub-queries for parallel execution
US11144570B2 (en) 2018-01-26 2021-10-12 Vmware, Inc. Data ingestion by distributed-computing systems
US10812332B2 (en) 2018-02-28 2020-10-20 Vmware Inc. Impartial buffering in stream processing
US10824623B2 (en) 2018-02-28 2020-11-03 Vmware, Inc. Efficient time-range queries on databases in distributed computing systems
US11178213B2 (en) 2018-02-28 2021-11-16 Vmware, Inc. Automated configuration based deployment of stream processing pipeline
US10595055B2 (en) 2018-04-23 2020-03-17 Amazon Technologies, Inc. Server-side insertion of media fragments
US10735307B1 (en) 2019-01-10 2020-08-04 Ebay Inc. Network latency measurement and analysis system
US11252445B1 (en) * 2019-04-22 2022-02-15 Meta Platforms, Inc. Systems and methods for providing passthrough adaptive bitrate videos
US11403849B2 (en) 2019-09-25 2022-08-02 Charter Communications Operating, Llc Methods and apparatus for characterization of digital content
US20220350748A1 (en) * 2021-04-29 2022-11-03 Microsoft Technology Licensing, Llc Consistent hashing for communication devices
CN113488065A (zh) * 2021-07-01 2021-10-08 上海卓易科技股份有限公司 一种基于云手机的音频输出方法、装置及计算机设备、存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1122654A2 (en) * 2000-01-14 2001-08-08 Web TV Networks Inc. Reformatting with modular proxy server
US20110296048A1 (en) * 2009-12-28 2011-12-01 Akamai Technologies, Inc. Method and system for stream handling using an intermediate format
CN102356605A (zh) * 2009-03-16 2012-02-15 微软公司 平滑、无状态的客户端媒体流式传输

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240243B1 (en) 1994-12-05 2001-05-29 International Business Machines Corporation Method and apparatus for storing and retrieving scalable video data in a disk-array-based video server
US5978843A (en) 1995-12-06 1999-11-02 Industrial Technology Research Institute Scalable architecture for media-on-demand servers
JP2924817B2 (ja) 1996-09-13 1999-07-26 日本電気株式会社 情報サーバシステム
WO1998040810A2 (en) 1997-03-12 1998-09-17 Storage Technology Corporation Network attached virtual tape data storage subsystem
WO1999065239A2 (en) * 1998-06-11 1999-12-16 Koninklijke Philips Electronics N.V. Trick play signal generation for a digital video recorder
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US7446774B1 (en) 1998-11-09 2008-11-04 Broadcom Corporation Video and graphics system with an integrated system bridge controller
US6785704B1 (en) 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US7028096B1 (en) 1999-09-14 2006-04-11 Streaming21, Inc. Method and apparatus for caching for streaming data
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US6820133B1 (en) 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US7565450B2 (en) 2000-03-16 2009-07-21 Adara Networks Inc. System and method for using a mapping between client addresses and addresses of caches to support content delivery
US7747782B2 (en) * 2000-04-26 2010-06-29 Novarra, Inc. System and method for providing and displaying information content
US20040025186A1 (en) * 2001-01-19 2004-02-05 Jennings Charles A. System and method for managing media
US8107524B2 (en) 2001-03-30 2012-01-31 Vixs Systems, Inc. Adaptive bandwidth footprint matching for multiple compressed video streams in a fixed bandwidth network
US6816455B2 (en) * 2001-05-09 2004-11-09 Telecom Italia S.P.A. Dynamic packet filter utilizing session tracking
US20030110234A1 (en) * 2001-11-08 2003-06-12 Lightsurf Technologies, Inc. System and methodology for delivering media to multiple disparate client devices based on their capabilities
US7133905B2 (en) 2002-04-09 2006-11-07 Akamai Technologies, Inc. Method and system for tiered distribution in a content delivery network
US7483487B2 (en) 2002-04-11 2009-01-27 Microsoft Corporation Streaming methods and systems
US7194000B2 (en) 2002-06-21 2007-03-20 Telefonaktiebolaget L.M. Ericsson Methods and systems for provision of streaming data services in an internet protocol network
JP4022755B2 (ja) 2003-01-21 2007-12-19 ソニー株式会社 記録装置、再生装置、ファイル管理方法及びファイル再生方法
US7272658B1 (en) 2003-02-13 2007-09-18 Adobe Systems Incorporated Real-time priority-based media communication
US7313236B2 (en) 2003-04-09 2007-12-25 International Business Machines Corporation Methods and apparatus for secure and adaptive delivery of multimedia content
US7143170B2 (en) 2003-04-30 2006-11-28 Akamai Technologies, Inc. Automatic migration of data via a distributed computer network
JP4340483B2 (ja) * 2003-06-27 2009-10-07 富士通株式会社 複合コンテンツの配信方法および配信システム
ITBA20030039A1 (it) 2003-08-29 2005-02-28 Grieco Luigi Alfredo Controllo di congestione rate-based del traffico entrante
EP1678972B1 (en) * 2003-10-01 2009-08-26 Actix Limited Call tracking systems
US7369610B2 (en) 2003-12-01 2008-05-06 Microsoft Corporation Enhancement layer switching for scalable video coding
KR100834749B1 (ko) 2004-01-28 2008-06-05 삼성전자주식회사 스케일러블 비디오 스트림 재생장치 및 그 방법
US20050289619A1 (en) * 2004-06-01 2005-12-29 Joel Melby Methods and system for resource allocation in an on-demand server
US7664109B2 (en) 2004-09-03 2010-02-16 Microsoft Corporation System and method for distributed streaming of scalable media
US20060143678A1 (en) 2004-12-10 2006-06-29 Microsoft Corporation System and process for controlling the coding bit rate of streaming media data employing a linear quadratic control technique and leaky bucket model
US7543073B2 (en) 2004-12-10 2009-06-02 Microsoft Corporation System and process for performing an exponentially weighted moving average on streaming data to establish a moving average bit rate
US7536469B2 (en) 2004-12-10 2009-05-19 Microsoft Corporation System and process for controlling the coding bit rate of streaming media data employing a limited number of supported coding bit rates
FR2880743A1 (fr) 2005-01-12 2006-07-14 France Telecom Dispositif et procedes de codage et de decodage echelonnables de flux de donnees d'images, signal, programme d'ordinateur et module d'adaptation de qualite d'image correspondants
KR20060114080A (ko) 2005-04-27 2006-11-06 삼성전자주식회사 멀티미디어 스트리밍 서비스 시스템 및 방법
US20070022215A1 (en) 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
US7933294B2 (en) 2005-07-20 2011-04-26 Vidyo, Inc. System and method for low-delay, interactive communication using multiple TCP connections and scalable coding
US8289370B2 (en) 2005-07-20 2012-10-16 Vidyo, Inc. System and method for scalable and low-delay videoconferencing using scalable video coding
WO2007026268A1 (en) * 2005-08-31 2007-03-08 Nokia Corporation Inter-access mobility and service control
JP2009510966A (ja) 2005-10-07 2009-03-12 韓國電子通信研究院 スケーラブルビデオコーディング技術が適用されたビットストリーム適応変換装置及び方法
EP1788774A1 (en) 2005-11-18 2007-05-23 Alcatel Lucent Method and system for initiating or recovering a media-on-demand session
KR100772868B1 (ko) 2005-11-29 2007-11-02 삼성전자주식회사 복수 계층을 기반으로 하는 스케일러블 비디오 코딩 방법및 장치
KR20070108433A (ko) 2006-01-09 2007-11-12 한국전자통신연구원 청크 디스크립터를 이용한 svc 파일포맷에서의 비디오데이터 공유방법
US8767818B2 (en) 2006-01-11 2014-07-01 Nokia Corporation Backward-compatible aggregation of pictures in scalable video coding
US8619865B2 (en) 2006-02-16 2013-12-31 Vidyo, Inc. System and method for thinning of scalable video coding bit-streams
WO2007112384A2 (en) 2006-03-27 2007-10-04 Vidyo, Inc. System and method for management of scalability information in scalable video and audio coding systems using control messages
WO2007114611A1 (en) 2006-03-30 2007-10-11 Lg Electronics Inc. A method and apparatus for decoding/encoding a video signal
US20070276954A1 (en) 2006-05-19 2007-11-29 Hong Kong University Of Science And Technology Low-Delay High Quality Video Streaming Using TCP
US20070268362A1 (en) 2006-05-22 2007-11-22 Matthew James West Compressed data
US7930449B2 (en) 2006-09-14 2011-04-19 Opentv Inc. Method and system for data transmission
JP5155323B2 (ja) 2006-09-29 2013-03-06 ヴィドヨ,インコーポレーテッド スケーラブルビデオ符号化サーバ及びマルチキャストを用いる多地点会議のためのシステム及び方法
KR101088772B1 (ko) 2006-10-20 2011-12-01 노키아 코포레이션 스케일러블 멀티미디어의 적응 경로들에 대한 포괄적 표시
US7953880B2 (en) 2006-11-16 2011-05-31 Sharp Laboratories Of America, Inc. Content-aware adaptive packet transmission
WO2008105686A1 (en) * 2007-02-26 2008-09-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement relating to telecommunications
US20100266042A1 (en) 2007-03-02 2010-10-21 Han Suh Koo Method and an apparatus for decoding/encoding a video signal
US20090119594A1 (en) 2007-10-29 2009-05-07 Nokia Corporation Fast and editing-friendly sample association method for multimedia file formats
WO2009067156A2 (en) * 2007-11-16 2009-05-28 Thomson Licensing System and method for session management of streaming media
US20090178091A1 (en) 2008-01-08 2009-07-09 Hiroki Miyamoto Contents distribution method and receiving device
US8155020B2 (en) * 2008-01-14 2012-04-10 Qualcomm Incorporated Policy control and charging (PCC) rules based on mobility protocol
JP4670902B2 (ja) 2008-05-30 2011-04-13 ソニー株式会社 送信装置、送信方法および受信装置
WO2010042595A2 (en) * 2008-10-07 2010-04-15 Velocent Systems Incorporated Method and apparatus pertaining to updating a high-bandwidth hardware-based packet-processing platform local session context state database
US7840679B2 (en) * 2008-10-15 2010-11-23 Patentvc Ltd. Methods and systems for requesting fragments without specifying the source address
WO2010045511A2 (en) * 2008-10-15 2010-04-22 Gal Zuckerman Methods and systems for delivering content
US9003043B1 (en) * 2008-12-17 2015-04-07 Emc Corporation Techniques for client and server communication
US8180892B2 (en) * 2008-12-22 2012-05-15 Kindsight Inc. Apparatus and method for multi-user NAT session identification and tracking
US8228363B2 (en) 2009-01-30 2012-07-24 Polycom, Inc. Method and system for conducting continuous presence conferences
US9197677B2 (en) 2009-03-09 2015-11-24 Arris Canada, Inc. Multi-tiered scalable media streaming systems and methods
US9485299B2 (en) 2009-03-09 2016-11-01 Arris Canada, Inc. Progressive download gateway
CA2755774C (en) * 2009-03-19 2015-01-06 Azuki Systems, Inc. Method for scalable live streaming delivery for mobile audiences
US8209730B2 (en) * 2009-06-22 2012-06-26 Sony Corporation Speculative video on demand
US8184142B2 (en) 2009-06-26 2012-05-22 Polycom, Inc. Method and system for composing video images from a plurality of endpoints
CA2711311C (en) 2009-08-10 2016-08-23 Seawell Networks Inc. Methods and systems for scalable video chunking
US9038116B1 (en) * 2009-12-28 2015-05-19 Akamai Technologies, Inc. Method and system for recording streams
US8521899B2 (en) * 2010-05-05 2013-08-27 Intel Corporation Multi-out media distribution system and method
US8190677B2 (en) 2010-07-23 2012-05-29 Seawell Networks Inc. Methods and systems for scalable video delivery
US8806050B2 (en) * 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
TW201216656A (en) * 2010-10-01 2012-04-16 Interdigital Patent Holdings Method and apparatus for media session sharing and group synchronization of multi media streams
US20120265853A1 (en) * 2010-12-17 2012-10-18 Akamai Technologies, Inc. Format-agnostic streaming architecture using an http network for streaming
US8880633B2 (en) * 2010-12-17 2014-11-04 Akamai Technologies, Inc. Proxy server with byte-based include interpreter
US8489760B2 (en) * 2011-03-31 2013-07-16 Juniper Networks, Inc. Media file storage format and adaptive delivery system
US8649668B2 (en) * 2011-06-03 2014-02-11 Adobe Systems Incorporated Client playback of streaming video adapted for smooth transitions and viewing in advance display modes
US20130132462A1 (en) * 2011-06-03 2013-05-23 James A. Moorer Dynamically Generating and Serving Video Adapted for Client Playback in Advanced Display Modes
US9160779B2 (en) * 2011-06-30 2015-10-13 Qualcomm Incorporated Dynamic adaptive streaming proxy for unicast or broadcast/multicast services
US8929356B2 (en) * 2013-02-05 2015-01-06 Anue Systems, Inc. Mobile user identification and tracking for load balancing in packet processing systems
US9311651B2 (en) * 2013-03-07 2016-04-12 Cable Television Laboratories, Inc. Identity-Media Measurement Model (IMMM)

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1122654A2 (en) * 2000-01-14 2001-08-08 Web TV Networks Inc. Reformatting with modular proxy server
CN102356605A (zh) * 2009-03-16 2012-02-15 微软公司 平滑、无状态的客户端媒体流式传输
US20110296048A1 (en) * 2009-12-28 2011-12-01 Akamai Technologies, Inc. Method and system for stream handling using an intermediate format

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107637045A (zh) * 2015-06-16 2018-01-26 英特尔Ip公司 使用动态无线接入网信息的自适应视频流送
CN107637045B (zh) * 2015-06-16 2020-11-27 苹果公司 使用动态无线接入网信息的自适应视频流送
CN111837405A (zh) * 2018-09-17 2020-10-27 谷歌有限责任公司 用于传递无清单流媒体内容的方法、系统和介质
US11558443B2 (en) 2018-09-17 2023-01-17 Google Llc Methods, systems, and media for delivering manifestless streaming media content
US11882168B2 (en) 2018-09-17 2024-01-23 Google Llc Methods, systems, and media for delivering manifestless streaming media content
CN109327511A (zh) * 2018-09-18 2019-02-12 网宿科技股份有限公司 一种基于http协议的数据请求方法和服务器
CN109327511B (zh) * 2018-09-18 2021-05-28 网宿科技股份有限公司 一种基于http协议的数据请求方法和服务器
US11330035B2 (en) 2018-09-18 2022-05-10 Wangsu Science & Technology Co., Ltd. Method and server for HTTP protocol-based data request

Also Published As

Publication number Publication date
MX353807B (es) 2018-01-29
JP2015518325A (ja) 2015-06-25
JP6014870B2 (ja) 2016-10-26
EP2837196B1 (en) 2019-06-12
WO2013152426A1 (en) 2013-10-17
EP2837196A4 (en) 2015-12-23
CA2870059A1 (en) 2013-10-17
MX2014012361A (es) 2015-05-08
US20130275557A1 (en) 2013-10-17
CA2870059C (en) 2018-06-05
CN104396263B (zh) 2018-06-08
EP2837196A1 (en) 2015-02-18
US9712887B2 (en) 2017-07-18

Similar Documents

Publication Publication Date Title
CN104396263A (zh) 用于流式媒体内容的实时复用变换的方法和系统
US10609447B2 (en) Method of unscrambling television content on a bandwidth
US11310550B2 (en) System and method for storing multimedia files using an archive file format
CN101984619A (zh) 一种流媒体业务的实现方法及系统
Uk et al. Implementing a system architecture for data and multimedia transmission in a multi-UAV system

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