专利名称:用于电信网络中的多媒体内容适配的方法和装置的制作方法
用于电信网络中的多媒体内容适配的方法和装置 对相关申请的交叉参考
本申请要求2007年2月9日提交的美国临时专利申请No. 60/889,237 的优先权,该在先申请的全部公开内容都无条件地被通过引用结合于此。 本申请还要求2007年2月9日提交的美国临时专利申请No. 60/889,249的 优先权,该在先申请的全部公开内容都无条件地被通过弓I用结合于此。
以下两个常规美国专利申请(包括本申请)被同时提交,并且另一申 请的全部公开内容都无条件地被通过引用结合于此
2008年2月11日提交的名为"Method and apparatus for the adaptation of multimedia content in telecommunications networks (用于电信网络中的多媒 体内容的适配的方法和装置)"的申请(代理案件号No. 021318-006510US);以及
2008年2月11日提交的名为"Method and apparatus for a multimedia value added service delivery system (用于多媒体增值服务传送系统的方法 和装置)"(代理案件号No.021318-006610US)。
背景技术:
本发明总地涉及电信领域并且更具体地涉及用于多种电信网络中的多 媒体内容适配的方法和装置。随着通信网络和设备的普及,现在多媒体内 容可能以各种格式被需求,当这些格式被预编码时,会消耗相当大量的用 于存储的存储器、用于交换的带宽并且会造成管理的复杂。
存在多个视频创建源、不断发展的设备类型和性能以及庞大的用户所 生成内容的集合,其中只有一小部分内容被査看。网络的范围在不断地扩 大(2.5G、 EDGE、 3G、 LTE、 4G、 WiFi和WiMax),并且鉴于诸如设 备屏幕大小和视频音频压縮编解码/格式、协议支持(下载、渐进式或流
式)、特征支持(例如,编码工具或元数据访问/显示)、网络带宽、传输能力和错误率或可用存储器或CPU之类的因素,网络和设备对于哪些内容 应当被传送有着不断变化的要求。
网络、设备和协议的多样化己导致对(对具有更好性能的设备/情形产 生品质影响的)设备或网络的最低共同性能的关注或者较强的设备依赖性 和管理开销以及设备专用内容的不断过时。
在现有的系统中,内容通常被预先转换为可能可用的各种格式,并且 内容管理系统找到针对设备的配置文件以提供被适当格式化的内容。可能 需要转换(在一般意义上而言)的各种特性,例如编解码、比特率、帧大 小、容器类型、元信息和媒体处理,导致通常被维护的目标数目的指数增 加并且直到内容可用之前存在大量具有延迟的处理。因为只有受欢迎的条 目被经常访问,所以大多数被转换的对象将是非常浪费地被转换和存储。
因此,本领域中需要用于适配各种电信网络中的多媒体内容的改进的 方法和系统。
发明内容
本发明的实施例提供了由不能够识别特定格式的设备或者通过不支持 所述特定格式、速率或传输方法或其它特性的网络提供对以特定格式被存 储的内容的访问和交换的方法和系统。这些功能被提供,同时改进了针对 内容的用户界面和内容被提供的效率。本发明的实施例提供了在给定限制 条件下对媒体、服务和体验的带宽和品质的适当分配。
根据本发明的实施例, 一种用于适配一个或多个网络中的媒体内容的 装置被提供。该装置包括控制器模块、 一个或多个网络接口模块以及被耦 接到控制器模块的一个或多个协议接口 。该装置还包括被耦接到控制器模 块的脚本解释模块、被耦接到控制器模块的一个或多个媒体适配模块以及 被耦接到控制器模块的管理接口模块。
根据本发明的实施例,提供了一种用于在各种网络和传输协议上提供 从多种格式和品质到多种其它格式和品质的多媒体内容适配的装置。该装 置允许以一种资源高效的方式将多媒体内容从多种格式适配到多种其它格 式。该装置通过对多媒体内容的适配允许多媒体内容以一种方便的格式被
5存储并且从任何呈现设备被访问。该装置还可以根据需要进行扩展。
本发明相对于传统技术而言具有很多好处。例如,本发明的实施例提 供了在多种网络、网络条件和传输协议上提供从多个格式和品质到多个其 它格式和品质的多媒体内容适配的方法和系统。取决于实施例,这些好处 中的一个或多个以及其它好处可以被得到。这些及其他好处将在整个本说 明书进行更详细地描述,并且在下面结合附图进行更具体的描述。
图1A是示出了本发明的实施例所提供的设备和服务连接关系的简化
示图1B是示出了本发明的实施例所提供的设备和服务连接关系的简化 示图2是示出了根据本发明实施例的使用HTTP对内容进行访问的示例 的简化示图3是示出了根据本发明实施例的使用RTSP对内容进行访问的示例 的简化示图4示出了根据本发明实施例的媒体路径的高级概观;
图5A是根据本发明实施例的模块互联的简化体系结构图5B是根据本发明实施例的模块互联的简化体系结构图5C是示出了根据本发明实施例的主要系统元件的分解图6是示出了根据本发明实施例的系统的功能分解的简化示图7A-7C是根据本发明实施例的用于通过内容适配器从元件进行获得
和检索的简化连接图8A-8C是示出了根据本发明实施例的内容适配控制的位置安排的简
化体系结构图9是示出了根据本发明实施例的内容适配器的分解结构的简化体系 结构图10是示出了根据本发明实施例的在HTTP代理角色中的内容适配 器的分解结构的简化体系结构图;图11是示出了根据本发明实施例的在HTTP GET方法中缓存操作之 前的内容适配的简化示图12是示出了根据本发明实施例的在HTTP GET方法中缓存操作之 后的内容适配的简化示图13是示出了根据本发明实施例的在HTTP PUT方法中缓存操作之 前的内容适配的简化示图14是根据本发明实施例的涉及到内容适配器的URL重定向的简化 操作;
图15是根据本发明实施例的提供HTTP内容适配的内容适配器的简 化连接体系结构;
图16是示出了根据本发明实施例的RTSP客户端连接到HTTP源的序 列图17是示出了根据本发明实施例的RTSP客户端连接到HTTP源的序 列图18是示出了根据本发明实施例的HTTP客户端连接到HTTP源的序 列图19是示出了根据本发明实施例的RTSP客户端连接到RTSP源的序 列图20是示出了根据本发明实施例的HTTP客户端连接到RTSP源的序 列图。
具体实施例方式
本发明的实施例提供了很多好处。这些好处是由提供在多种网络和传 输协议上从多个格式和品质到多个其它格式和品质的多媒体内容适配的方 法和系统所提供的。所述品质可以包括例如帧大小、帧速率、协议、比特 率编码特征(例如固定比特率、可变比特率)、编码工具、比特率、特殊 编码,例如纠错编码(FEC)等。另一好处是提供功率和存储器高效内容 适配方法。另一好处是提供可以高效处理增加的负载并且可以被简单地扩 展为提供附加能力的可扩展系统。另一好处是提供一种允许以多种格式缓存内容并减少内容服务器上的负载的内容适配方法。又一好处是提供一种高效的用户接口适配方法。另一好处是提供允许多个人机接口相互通信的装置。另一好处是提供允许实时和非实时内容适配的系统。另一好处是提供一种允许快速、准确的用户生成内容到内容数据库的上载的系统。另一好处是提供一种通过允许内容数据库存储按多种格式生成的内容来扩展内容数据库的系统。又一好处是提供一种允许从公用源内容提取例如用编解码、大小、速率等来衡量的不同品质的内容的系统。又一好处是提供一种针对变化的网络或网络条件高效地创建相同内容的多种版本的方法。另一好处是提供一种自动确定应当被提供的内容的最佳版本的方法。另一好处是提供一种高效地缓存多种格式的内容从而降低适配要求的方法。另一好处是提供一种短期和长期缓存内容的方法。又一好处是提供一种允许使用不同连接协议的多个连接在任一时间同时存在的装置。又一好处是提供一种适应性地创建和修改内容适配引擎的方法。另一好处是提供一种使用硬件和软件单元来高效地执行内容适配的系统。另一好处是提供一种控制硬件和软件模块来根据需要、在任意给定时间创建最佳内容适配器的方法。另一好处是提供一种使用公用接口模块与现有网络和未来网络进行接口的系统。另一好处是提供一种系统,该系统取决于要提供的服务的特征和服务负载暗示、在获取时或者在重获时或者在获取和/或重获的混合时执行任何必要的代码转换。另一好处是适配媒体以使用可扩展的编解码,其中各种级别空间或频率信息在一个或多个传输通道上被传送。在这种情况下,接收设备可以选择接收和显示各种级别的细节,如果这些细节以适时的方式、完整或错误可恢复的方式被接收并且/或者基于设备资源。另一好处是提供一种允许硬件和软件维护以模块的方式被执行的系统,从而允许该系统在维护期间仍可操作。另一好处是提供一种可作为另一类似系统的冗余备份的系统,与特定应用相适应地承担第一系统的全部或部分负载。另一好处是提供一种可以被远程管理的具有一些或所有前述特性的系统。另一好处是提供一种提供内容访问和历史使用数据以及对如何更好地优化其它网络组件以提供更快速的内容访问的建议的系统。另一好处是提供一种提供维护和保留关于使用行为的信息和统计数据的能力的系统,所述信息在用于服务的优化或者服务的成本或者基于以前的行为允许客户定制的内容 或行为的数据挖掘和用户跟踪中是有用的。另 一好处通过仅仅对客户请求 以所请求的特定格式进行査看的媒体进行代码变换,从而避免处理、存 储、管理和人事资源的浪费。另一好处是当系统被部署在多个离散子系统 之间时的适应性负载共享方法。
设备内容适配器内容门户/提供者
3G手机 编解码代码变换 针对任意设备的任
受限的H.263、 帧大小转换意内容
MPEG-4、 H.264 比特率适配 将覆盖扩大到1000%
没有设备用于更 广告插入和广告覆的3G和非3G设备
新生 降低了对设备智能
受限的格式支持 内容水印应用的要求
小型屏幕尺寸 流转换(例如根据 将内容搜索覆盖面
被下载对象)扩大到任意格式
多种编解码 基于规则/触发器、 经由在内容适配器
很多内容源(太访问(浏览器/播放中生成的设备标签
多选择)器)类型、源地址进行用户跟踪
数据率有若干种等的转换
数量级的变化
为所需要的品质
进行支付
IPTV
受限的编解码
(MPEG-2、
H.264)
固定的帧大小
(SD或HD)
表l:使用实施例的内容适配器(CA)时对内容门户的好处
根据结合附图的以下描述,将清楚本发明的其它目的和优点,其中本
9发明的实施例以图示和示例的方式被公开。
根据实施例, 一种用于在多种网络中和多种网络之间适配多媒体内容 的装置被提供。根据实施例的装置包括以下组件中的一个或多个允许装 置作为网络的一部分进行操作的网络接口模块、建立到其它网络元件的连 接的通信会话管理模块、允许用户接口被修改以适合其它网络元件的用户 接口转译模块、人机接口转译模块、机器间接口转译模块、内容适配器创 建和控制模块、资源控制模块、维护接口模块、 一个或多个存储器模块、 一个或多个处理单元、总线控制器模块和总线、缓存模块和冗余设施模 块。
根据实施例, 一种将多媒体内容从第一电信网络适配到第二电信网络 的方法被提供,该方法包括以下步骤中的一个或多个步骤建立通信会 话、管理所建立的通信会话、在用户接口处转译交互数据、在人机接口处 转译人机交互数据、在机器间接口处转译机器间交互数据、将根据第一协 议的第一多媒体内容适配为根据第二协议的第二多媒体内容、控制对第二 多媒体内容的访问和传送、控制一个或多个资源、使用维护接口维护所述 一个或多个资源、确定冗余过程是否被使用以及确定扩展过程是否被使 用。
本发明的实施例是可以存在于多个不同网络之中或之间或者单个网络 中的多个不同位置中的网络元件。图1A和图1B示出了可以由本发明的实 施例连接或服务的设备和服务的示例。设备所操作于的网络可以是分组交 换(PS)网络或电路交换(CS)网络。每个网络利用协议来发起通信会
话、提供用户交互活动并且提供被请求的内容。内容可以通过诸如RTSP (实时流协议)之类的流协议被连续地流传送,或者通过诸如HTTP (超 文本传输协议)之类的数据交换协议或者通过其它方式被下载或者渐进式 下载。内容也可以从诸如流内容源(feed)之类的多种源被实时传送(即 不预先被记录),例如经由RTSP或者诸如正TF或3GPP SIP、 ITU-T H.323或ITU-T H.324 (包括3GPP-324M)或者具有或不具有单独的互联 工作功能的诸如Skype Video之类的私有协议(附加的网络支持可以从内 部或外部被支持并且可以采用在美国专利申请No. 10/099,901中所描述的元件的形式,该美国专利申请的公开内容全部通过引用结合于此)。内容 也可以从内容数据库中被提取。内容数据库可以利用相关的协议通过网络 被连接到内容适配器,内容数据库可以是不同的网络元件;它可以经由直 接的文件访问被共同定位和访问。
一个实施例可以建立到请求内容对象的设备或网络元件的连接并且可 以建立到内容数据库的连接。该连接的示例如图2和图3中所示。在图2 中,两个被连接元件的能力被确定。这些能力可以通过能力交换或协商、 能力消息来确定,或者它们可以是元件、接入网络或协议的已知特征,或 者经由基于网络或者以其他方式定位的数据库(例如HSS或HLR)与用 户相关联。这些实施例确定每个元件的接口可以怎样被适配以适合使用该 能力的另一元件。在机器间交互的情况下,装置可以通过机器间接口转译 模块建立连接。
在人机交互的情况下,本发明的装置可以利用机器到人的接口转译模 块。机器到人的交互的示例如通过连接到3G (第三代)网络的移动电话 访问互联网web站点。由于典型的移动电话具有针对移动性而设计的小且 轻的形态,所以査看很多web站点是不实际的。在这种情况下,本发明的 装置可以通过接口转译模块(在这种情况下是机器到人)建立所寻找的 web站点和移动设备之间的连接,以实现更高效的访问和更好的用户体 验。该装置还可以修改媒体传送机制的种类。在web到移动设备的示例 中,典型的HTTP下载/渐进式检索模式可以被改变为流传送模式。这可能 对于补偿很多移动设备上可用的有限带宽和存储空间尤其有用。下载/渐进 式下载的变换如图3中所示。从服务器提供并随后流传送媒体还帮助确保 通过不同的网络类型访问服务的那些用户的体验的一致。实施例还被适配 用于变换内容对象以传送给具有较少或不同能力的其它设备,或者被适配 以符合要求某种能力集的标准,示例实施例能够传送否则将与诸如DVB-H接收设备之类的DVB或基于DVB的设备不兼容的内容。
本发明的实施例用如图5A中所示的分解模块来实现。网络/终端模 块、媒体适配模块、会话建立模块、用户接口模块、控制模块和内容数据 库被连接。本发明的替代实施例用如图5B中所示的分解模块来实现。处
ii理诸如SIP (RFC 3261和相关联的RFC) 、 RTSP (RFC 2326)和HTTP (RFC 2616)之类的协议的网络接口、媒体适配器模块、可选地被连接到 web GUI的管理模块、被连接到内容数据库或web应用的控制模块以及一 个或多个例如使用HTTP、 RTSP或SIP的内容服务器被连接。
实施例支持广告插入和媒体拼接。图4是对一些实施例中的媒体路径 的高级概观,包括用于那些实施例的过程中的一些关键点。将目标视频广 告包括到移动服务和其它服务中的能力是产生成功服务的关键因素,因此 在实施例中提供'拼接'广告剪辑或其它媒体流的能力。
图4示出了多个媒体源被用于单个客户端重放会话的情况(也可以是 广告拼接的情况)。缓存具有缓存对象以使得它们以后可以用不同的方式 被拼接在一起以用于重放以及通过在输出级(即编码后)进行缓存来提供 最大效率的能力。在源之间的选择在源选择点处被进行,源选择点也可以 包括媒体检测设施以确保中间剪辑切换可以以快速但仍然品质受控的方式 进行。
实施例具有如下能力打断正在单个RTSP会话上被播放的流,在脚 本动作/事件之后播放替代剪辑以及一旦替代剪辑结束,则初始(原始)剪 辑重新开始。由于实施例可以进行内容适配,所以替代(被插入)剪辑不 需要具有与原始剪辑(在编解码、比特率、帧速率、帧大小等方面)相同 的格式。
为了支持广告驱动服务,实施例可以收集用户动作和事件并且可以用 可视消息的形式提供反馈和通知。
本发明的一个实施例用如图6中所示的分解模块来实现。若干功能的 范围为了图示的目的而被限制在该图中。在该图中,用户空间与网络空 间、内容访问空间、系统管理空间、账户管理空间和内容数据库空间中的 服务范围隔开。
一旦请求者和内容源之间的连接被建立, 一些实施例就转译网络元件 之间的交互活动相关的信息。由于不同的网络可能会采用不同的通信协 议,所以在最终用户与内容服务器之间被传送的交互信息可能需要从一种 消息、信号和数据的集合被转译为另一种消息、信号和数据的集合。这种
12转译可以通过接口转译模块被执行。
一旦对系统提出内容请求,装置就确 定多媒体内容是否需要被适配。关于内容是否需要适配的决定由控制模块 (即会话控制模块)基于在能力交换期间所收集的信息以及根据内容本身 所确定的可能信息以及任何相关的网络特性做出。例如,用户可能想要将
3GP文件上传到被设置为接受AVI文件的内容数据库。在这种情况下,装
置中的控制模块将确定内容适配是必要的。注意,在一些示例中,内容适 配是不需要的并且数据直接传送。
一旦控制模块确定需要适配,则接下来就要确定要采用哪种类型的适 配。多媒体数据可以被分成与其存储相关联的多种不同的级别。媒体本身 可以使用多种技术被编码,这些技术的一些已被标准化了,例如针对视频
的H. 263、 H.264、 MPEG-1,2,4 (具有所有不同的部分)、针对语音的 GSM-AMR、 AMR-職、G.711、 G.723.1、 G.726、 G.729、 SMV、 EVRC 以及针对音频的AAC、 AAC+、 MPEG-1第3部分(MP3)。诸如Adobe (Macromedia)的Flash视频编码器、real音频和real媒体之类的其它技术 是私有的。
在基于文件的媒体的情况下,媒体被保存在所谓的容器中,所述容器 是一种文件格式(使用容器的好处是数据可以以更高效的方式被组织并且 描述内容或者与内容相关联的元数据可以以自容纳的方式被保存)。相同 的内容可以以不同的方式被存储在两个不同的容器中,或者被存储在具有 不同特性或不同元数据的相同容器类型中。对容器存储的一种替代是实时 或流传送媒体(例如,TV类型服务)的情况,其中被编码的内容可以经 网络协议(例如RTP/UDP/IP)被传送。这意味着内容适配可能需要在容 器级、媒体级或网络传输级中的一些或全部级中被执行。本发明的实施例 中所提供的会话控制模块确定所需要的适配级。
一些实施例中的本发明还包括适配器创建和控制模块。该模块收集关 于系统资源(例如,处理、数据传送/带宽、存储器资源等)的使用级别的 信息,该模块使用这些信息来高效地创建所需要的内容适配器。所需要的 内容适配器根据会话控制模块所提供的信息被确定。内容适配器包括容器 解复用模块、媒体代码变换模块和容器复用模块。容器解复用单元从容器以及任何媒体元数据提取媒体数据。媒体代码变换模块使用从容器以及媒 体数据中提取的媒体元数据来产生以所需要/所希望的格式编码的媒体数据 以及与具有新格式的数据相关联的元数据。容器复用模块以目标容器所需 要的格式来组织经代码变换后的媒体数据和任何适用的元数据。在一些实 施例中,复用单元可能不需要。例如, 一些流传送协议不需要使用容器来 传送媒体数据,所以在这种情况下就不需要容器复用模块(但是在一些情 况下会需要网络传输处理器)。同样,对于接收流传送内容的情况,可能 不需要解复用模块。适配器创建和控制模块确定是否需要所提及的某一模 块,以及如果需要则应当使用哪种版本,因为每个容器类型要求相应的解 复用器和复用器类型。 一旦不再需要内容适配器,则适配器创建和控制模 块就会释放系统资源。
为了辅助实现更高效和快速的内容访问,本发明的实施例还包括缓存
模块。该缓存模块可以是时间粒度(time-granular)缓存(aging)模块, 以使得针对近期被访问的内容的信息比针对较旧内容的信息更多地被存储 在存储器中。由于所提供的信息是基于正在不同的网络元件之间被交换的 内容和交互信息的,所以其所执行的处理帮助产生关于正在被交换的内容 和数据的信息。例如,最近被访问的内容将全部被提供,较近被访问的内 容可能只有根据其存储的元数据和一些媒体数据,最早被访问的内容(仍 然被认为适合缓存的内容)有所存储的处理元数据。这样有助于之后需要 再次被执行时更快速地执行适配。处理元数据的示例可以包括比特率信 息、熵信息或允许第二处理在一些示例中以较少的处理和/或较高的编码效 率或品质进行的第一和第二遍编码信息。缓存模块包括存储器和缓存控制 模块。
为了实现系统维护,实施例还包括维护接口模块,该模块被用于直接 访问和控制各种系统资源并且以警报、陷阱和利用率统计数据的形式提供 管理信息。最后,该装置包括允许其作为另一类似系统的备份或者作为另 一类似系统的扩展系统的冗余实施模块。
内容适配的功能在现有网关中不能被很好地实现并且代码变换引擎主 要使用级联(tandem)代码变换。这些网关缺乏以每个会话为基础提供针对多种标准化和非标准化的多媒体存储技术以及客户端、设备或网络变形 的高效多媒体适配所需要的灵活性。这些网络元件还通常被构建为被动 的,因为它们在提高内容作为一个整体被交换的效率或者改善最终用户与 提供所寻找内容的网络元件的交互体验中没有承担积极的角色。为了解决 这些和其它问题,这里所描述的实施例提供了一种允许高效且灵活的内容 适配的方案,所述适配改善了内容传送的效率(针对速率、功率、品质、 所消耗的存储器等)以及最终用户对提供内容的网络元件的体验。
为了获得这些和其它好处,本发明的实施例组合了多个模块。例如, 网络接口模块、通信会话管理模块、用户接口转译模块、人机接口转译模 块、机器间接口转译模块、内容适配器创建和控制模块、资源控制模块、 维护接口模块、存储器模块、处理单元、总线控制器模块和总线、缓存模 块以及冗余设施模块被组合在实施例中。
接口转译模块的使用是对多媒体代码变换和适配空间的新的引入,内 容适配创建和控制模块的使用也是一样,所述内容适配创建和控制模块组 合了不同类型的多个子组件以构建所需要的内容适配器。这些子组件包括 但不限于容器解复用模块、媒体代码变换模块和容器复用模块。包括智能 缓存模块成了本发明的实施例的另一新颖特征,其中所述缓存模块包括存 储器和允许被缓存数据在需要时不断地被修正和改变的缓存控制模块,从 而提供了时间可扩展的缓存。
网络接口模块允许在本发明和各种网络中的任何其它网络元件之间建 立连接。该模块包括硬件和软件。该模块的硬件组件由当前标准或流行的 私有单元来限定。在本发明的一个特定实施例中,硬件是与适当的驱动程 序软件一起工作的以太网卡。网络接口模块的软件组件解释所接收到的以 建立与所发明的装置和其它网络元件的通信会话为目的的消息,并且准备 消息以建立这些会话。
在示例性实施例中,软件组件包括HTTP通信模块和RTSP通信模 块,其中HTTP模块被用于经互联网与内容数据库通信并且RTSP模块被 用于建立流传送会话并且将内容流传送到分组网络上的3G移动电话。由 于本发明的该组件是模块化的,所以在被装载了所需要的软件模块并且装备了正确的硬件时能够灵活地建立与任何其它联网设备的通信会话。另外 的实施例支持SIP通信模块和能够流式和渐进式下载以及用另一介质隧道
传送媒体的模块。Adobe (Macromedia)的RTMP由RTMP通信模块支 持。
通信会话模块管理从起始点到终点的通信会话。 一旦与另一设备的会 话被建立,则该会话的目的就被该模块确定。 一旦目的被确定,通信会话 就与所建立的与另一设备的通信会话相关联。在一个实施例中,3G移动 设备通过网络接口模块被连接到该装置,并且内容数据库也通过网络接口 模块被连接到该装置。之后,两个通信会话被通过通信会话彼此关联起 来。
当设备中的一个终止连接时,通信会话模块通知另一设备并且关断被 终止的会话,而不必关断另一会话,因为该另一会话可能变成或者可能已 经变成与第三会话相关联。在示例实施例中, 一个3G设备用户可以要求 并获得来自内容数据库的内容。两个设备具有通过通信会话模块关联起来 的单独的会话。所提到的3G设备随后可以终止其会话,并且内容数据库 会话随后可以变成与来自另一 3G移动设备的第三会话相关联。
一些实施例中的本发明还包括接口转译模块。该模块可以包括用户接 口转译模块、人机接口转译模块、机器间接口转译模块或者其它类型的接 口转译模块。现有网络中的很多接口 (尤其是人机接口)被设计针对特定 的应用或平台。通常,基于平台在市场中的接受度来确定针对哪个平台 (平台一般指具有硬件和软件的机器,但是平台也可以是一组标准化的能 力)。当前的多媒体网关和适配器几乎仅以对媒体的适配为重点,而不对 作为内容的前端的接口进行适配。
接口转译模块可以使用通信会话模块和网络接口模块所提供的信息来
确定在与来自被连接设备的给定接口进行交互时可能发生的问题。在本发 明的一个实施例中,如果3G手持式设备与具有HTML (超文本标记语 音)接口的web内容服务器相关联,则最终用户将不能很好地导航到该接 口,除非进行修改。在一些实施例中,HTML接口被转译为XHTML (扩 展HTML)接口以允许3G设备用户进行交互。该转译通过将接口整个拿走并自动生成针对XHTML中的相同功能的接口。该转译模块是智能模 块,因为它像人那样确定接口上的不同组件的目的。按照这种方式,该转 译模块是新颖的。
本发明的实施例中所包括的内容适配器创建和控制模块负责在所需要 的级对任意被交换的多媒体内容进行适配。数字多媒体通常在存储之前被 压縮以更好地使用存储器。压縮后的信息可以进一步被组织在预定的容器 中,所述容器提供关于媒体的元数据以及可能帮助这些信号的交换的信 息。例如,ISO容器格式限定音频、视频和元数据可以怎样被组织在文件 中,以及元数据中的一些可以怎样被流传送服务器使用以减少流传送所述 文件所需要的工作量(提示(hinting))。内容适配器控制模块从通信会 话模块和接口转译模块那获得采用预定对象的形式的数据,以判定如果需 要的话需要什么适配,并且基于所述判定,确定哪些类型的子组件应当被 组合在一起来高效地执行所需要的适配。该步骤包括考虑所需要的资源以 及根据对资源的需求高效地调度对资源的使用。
在一个实施例中,3G移动设备请求査看被存储为Flash视频文件的内 容,而该移动设备本身不能播放Flash视频(一种可以包括标准化的压縮 方法的私有容器)。内容创建和控制模块在该示例中根据能力交换确定所 述3G设备可以接收作为RTSP流(视频用H.263格式被压縮,音频用 GSM-AMR格式被压縮)的媒体,而该内容在使用针对视频的H.263格式 和针对音频的MP3 (MPEG-1,第三部分)格式压縮的Flash视频容器中 是可用的。在该特定实施例中,内容适配器创建模块将Flash视频解复用 模块连接到MP3到GSM-AMR代码变换模块并且从而将来自第一模块的 视频和来自第二模块的音频连接到RTSP/RTP输出模块。模块之间的数据 和元数据移动通过限定存储器和总线资源该怎样针对数据的移动进行分配 的连接对象被管理。本实施例中的控制模块确保处理的移动和调度对于可 用资源而言是可以管理的,并且将最新信息提供给系统控制模块以确保系 统不会过载。
在另一实施例中,设备特性检测在系统中被执行(针对媒体格式化、 带宽等)。除了选择格式和类型特性之外,设备的缓冲和重放能力或接入技术也可以被确定。在缓冲/重放特性已知之后,这些特性可以用在整体服 务中的内容选择中。例如,只有较短的剪辑可以被提供给一些设备,例如 如果这些设备不支持流传送,或者支持但是比特率太低而不能长时间的流 传送。用于这些受限设备的剪辑可以是允许剪辑之间的附加缓冲的较短的 强调内容版本,或者可以作为单独可下载的整合或一起显示的强调内容被 提供,而非单个内容源。
内容适配器还可以执行交叉媒体类型转换,其中媒体可以从一种形式 转换成另一种形式。例如,内容适配器可以对语音利用讲演识别器。被识 别的文本可以被叠加在视频上或者被添加到元数据字幕,被识别的文本也 可以被机器翻译并且以多种语言被使用,每种语言都可以被存储在元数据 中。为了其它目的也可以对媒体执行进一步的交叉流处理,从而讲演者识 别可以被用来标记讲演,以显示为字幕或者更全面的一套能够随后用来解 释这些材料的元数据。面部识别可以用类似的方式被使用。交叉媒体处理
的另一示例是这样情形,其中基于标准HTML的web页面(也可能具有 plug-in)被提供给RTSP媒体流以呈现给不支持全部或部分浏览器能力的 设备(例如SIP视频电话、电视机顶盒或其它媒体信息亭(kiosk))。
另外的实施例利用内容适配器的均一化性能和其交叉媒体处理能力中 的一些能力来增强搜索引擎对多媒体内容的抓取(crawling)和对被标记 数据的存储,以便之后为了搜索和媒体播放的目的进行高效的检索。
另外的实施例包括用于在不同的处理器或服务器之间平均分配负载的 机制。当系统接收到请求时,只有目标媒体应当被转换成的格式的细节是 已知的,而在大多数情况下,源媒体的属性(编解码类型、比特率、帧速 率等)在这一级处是未知的。系统基于与输出媒体格式相关的已知参数对 实时处理要求进行估计,并且基于之前的会话或其它类似的会话对源媒体 的处理要求(成本)进行估计。该负载被用于基于所使用的负载平衡算法 选择合适的处理器,并且随后会话继续。 一旦源媒体已被访问,那么参数 可以被知道并且经修正的负载估计可以被生成,该估计随后被用来更新系 统负载平衡器(并且可选地被用于之后的估计)。
一些实施例中的本发明还包括时间可扩展的智能缓存模块。该智能缓存模块所达到的一个目的是提供对近期已被访问的数据的快速访问,从而 改善整体网络和系统响应。由于装置可以访问各种格式的内容,所以对内 容的缓存不是一件简单的事情。在一个特定实施例中,内容可以在3GP容
器中以及媒体以不同的格式被压縮的AVI容器中被访问。总是在缓存中维
护具有多种不同格式的相同内容是不太高效的。在本发明的一个实施例 中,从内容提取的元数据被用来确定所述内容是否已经在缓存中。如果所 述内容已经在缓存中但是具有不同的格式,则确定缓存是否保存有处理元 数据(有助于加快适配处理或者更高效地使用资源的数据),或者缓存中 的媒体本身是否更适合适配而非直接从源数据中再生成需要的格式(这种 情况可能存在于处理后缓存文件中,这些文件包含处理后元信息例如提 示,或者媒体对象的特定元素例如音轨)。如果缓存没有保存任何相关的 处理元数据,则内容适配被执行并且处理元数据被添加到缓存并且与现有 内容关联起来。通过将处理元数据与媒体数据和元数据关联起来,系统 "学会"了如何更好地适配内容或者利用之前对内容所做出的工作努力。这 种缓存媒体的方法为内容提供者和内容用户提供了多种好处。由于对特定 内容条目的访问被减少,所以针对所述内容所保存的媒体数据的量被减少 并且用被设计为消耗更少的存储器的处理元数据来替换。
随着特定内容条目被更加不频繁地访问,元数据被进一步减少,直到 与所述特定内容条目相关的所有数据从缓存中被移除为止。按照这种方 式,缓存是时间可扩展的,这是本发明的实施例所提供的另一新颖特征。
在该特定实施例中,诸如HTTP之类的各种协议所支持的过期规则被遵守 以确保源拥有者对内容使用的正确跟踪。在一些情况下,附加的元数据可 以被提供给内容拥有者,这些附加的元数据与接收内容的设备的细节(例 如其类型、网络访问方法)有关并且与内容被提供的格式有关。
在涉及缓存和多个适配器引擎的一个实施例中,同一缓存存储可以在 多个适配器引擎之间被共享。缓存存储可以利用外部磁盘阵列被提供,所 以存储可以根据部署的需要而增加。在涉及缓存和脚本的其它实施例中, 缓存准入策略可以利用脚本被定制以符合部署的需要。
实施例中的缓存管理用这样的算法来驱动,该算法考虑受欢迎度、老化度(上个月受欢迎的剪辑现在可能不同样受欢迎)、成本(用于代码变 换、再次代码变换和存储)、权重(可选择的由商业规则来分配)。用于
离线缓存的自动设施、缓存审计设施和到缓存管理接口的输入(例如web API中的输入)。
在一些实施例中,用于内部脚本逻辑和外部控制的应用编程接口 (API)被提供。当系统接收到客户端请求时,PHP脚本将基于协议类型 (例如HTTP或RTSP)和/或基于客户端URL被选择(可以基于与URL 的正则表达式匹配选择不同的可用脚本)。
内部脚本可以按照与web服务器中使用PHP类似的方式被执行,其 中请求头数据作为一系列全局变量被提供。其它变形也可以存在,包括但 不限于Python、 PERL或Java。 一个实施例中的脚本有两个主要功能。首 先,它限定被返回给客户端的媒体应当使用的编解码和传输选项。其次, 它标识出不同的源存储(例如HTTP或RTSP服务器或者本地或远程磁 盘、SAN、 NFS)上的不同源媒体对象的位置。请求的映射可以涉及用于 拼接(例如采用之前或之后滚动的方式的广告插入)或混合媒体(画中 画、广告叠加或水印)的多个媒体源。这实现了来自不需要针对每个设备 单独编码和管理的多个源的无缝方式的前置式和后置式广告选项。
一些实施例中的脚本设施支持允许脚本与数据库或其它web服务进行 交互以创建高级应用的宽范围的标准功能和库。另外,定制CDR和客户 导航模型可以被支持。
在一些实施例中,当请求被PHP脚本接收到时,多个脚本全局变量是 可用的,例如在全局阵列内。这些变量可以是以下变量中的一个、多个或 全部CallID (登录和报告时系统所使用的值,或者作为系统的唯一呼叫 参考)、请求URI (客户端所发布的完整URI,包括任意査询串)、查询 串(来自客户端URI的查询串)、客户端地址(发布客户端的IP地址, 例如、点标记串格式)、用户代理(一些客户端发送的指示其用户代理的 字符串,可被用于设备类型检测)、服务器主机(协议处理器的IP地址) 和请求头部(对于HTTP请求而言,这可以是请求中的HTTP头部的PHP 哈希函数)。在一些实施例中,PHP脚本被提供有用于控制媒体事务的各个方面的 功能。为了描述的目的,这些功能可以被分成会话处理功能、目标媒体限 定功能以及媒体和执行控制功能。
会话处理功能可以包括以下这些功能,例如RequestAccept [指示即将 到来的请求要被接受。通常在请求以某种方式被确定有效之后(例如,检 査客户端IP地址是来自有效区域,对照预付款支付系统进行检査或者以某 种其它方式确认请求是有效的)。通常该消息会在会话开始时被发送并且 TargetMedia选项在脚本执行中已经被限定(在一些情况下,这些被用于确 定接受时所需要的媒体参数,例如对在例如RTSP中的会话的SDP限 定)]、RequestReject(reasoi^code)[利用所述的原因代码指示会话不应当被 接受。如果该功能被调用,则脚本在之后应当立即退出并且客户端将被断 开连接]、SetProtocolHeader(参数,值)[允许在连接响应(即HTTP GET或 RTSP DESCRIBE的响应)中对协议专有的参数(例如针对HTTP的 Content-Type头部)进行定义]、RequestAbort()[中止客户端连接(该连接 之前已使用RequestAccept被接受了)。该函数可以在脚本中的任意点处 被调用,之后脚本将退出。典型的原因可能是访问特定的源内容条目的失 败。]以及RequestClose(原因代码)[得体地关断客户端连接并且实现会话统 计数据的收集(以记录到CDR),如果可行并且被配置为能够捕获的 话]。
目标媒体限定函数可以包括如下函数SetTarget(参数,值)[被用于限 定针对特定会话系统应当输出的媒体格式。该函数通常在会话被(利用 RequestAccept)接受之前被发布,并且可以接受两个字符串作为关键字值 对中的自变量。多个SetTarget命令可以被发出用于基于若干个参数指定输 出媒体格式。这些参数可以是强制的或者可选的或者只针对一些会话类型 是需要的。示例参数是音频格式、音频最大比特率、视频格式、视频最大 比特率、视频帧速率、视频宽度、视频高度、文件格式、sdp配置文件、 sdp音频配置文件、sdp视频配置文件、sdp总带宽、sdp音频带宽、sdp视 频带宽]。
媒体和执行控制函数可以包括如下函数QueueMedia(URL)[指示系统对URL进行排队以传送给客户端。如果在媒体队列中没有其它条目等 待处理,则处理将立即开始。该函数不会阻断或返回任何错误。所述URL 应当是被(使用PHP htmlspecialchars()函数或类似的函数)编码以去除诸 如'&'之类的任何特殊字符的URL。该调用之后可以跟随对EventWait (事 件等待)的调用]以及EventWait(时间)[在等待诸如处理的结束和媒体剪辑 的传送之类的事件时阻断脚本执行。阻断的最长时间可以用毫秒来指定, 并且如果时间被设置为0,则可以永久阻断。该函数可以在结束时返回具 有指示事件类型/种类("系统事件"或"媒体事件")、'事件'和事件专用参 数的字段/关键字PHP哈希函数。示例事件可以是指示有或没有释放原因 的会话终止的系统事件/被终止/没有参数或释放原因和详细说明哈希函数 中的流参数的媒体事件/流终止/没有参数或AdapterPlaylnfo。]
其它函数也可以被包括,例如LogCdr(cdr),该函数将(作为透明字符 串的)调用细节记录作为输入并记录到按照脚本的CDR文件。
通过暴露给可以接触到脚本的请求实体参数,可以实现对代码转换参 数的高级客户端可访问的操作,这可以通过查询字符串或其它方法来实 现。这可以实现请求的某些方面在客户端设备被本地确定以保护隐私或者 是因为只有在客户端才能知道或者在客户端较容易知道的已知连接特性。 该客户端决定可以在服务器或客户端侧所确定的内容页面中被预先编码或 者在设备端口处被确定。存在很多种可传送的信息,如关于媒体和媒体适 配的信息以及诸如基于位置的信息之类的其它信息。 一个示例可以是客户 端指示其位置(利用例如在查询字符串上的经度和纬度)并且接收区分地 理区域地接收文本关联广告。
某些实施例中所使用的示例使目标媒体选项和源URL被base 64编码 为接收自客户端的被请求URI 。 URI是具有诸如 http:〃contentprovider/source.wmv&vc=h263&vbr= 128等之类的{直对的查询 字符串编码形式。査询字符串中所传送的值随后可以被用来确定内容适配 器中的行为。
按照这种方式被传送的代码转换后的媒体可以被进行精细调整以匹配 被请求的参数,而不是"在某种条件下最佳"的情况(这种情况只有在针对预先编码的内容进行剪辑选择时才是可行的),并且明显能够连续地而不 是离散地处理每个参数,因此使得在已知限制下达到最佳品质。
被支持用作直接传送参数的其它参数包括DRM或用户或产品标识。 RTSP请求URI或对SIP头部的修改或URI也都是在本发明的实施例中所 支持的变形。
在一些实施例中,为了与内容管理整合,可以有诸如预付款和后付款 的支付标准PHP数据库查询或者经由SOAP或类似协议对web服务的请 求之类的其它端口服务。整合的形式包括使用数据库关键字代替base64 URL编码来标识内容管理系统中的特定资产以及使用设备数据库代替被编 码到所请求URL中的值来确定目标编解码参数。
一些实施例支持脚本化的动作以从屏幕添加或移除针对水印、标志/商 标、广告提示或服务消息的图形/图像/视频。图像被允许具有多种格式并 且还具有它们受控的大小、位置和叠加类型。也可以实现图像信息与下层 视频图像(针对水印)的Alpha混合以及防止图像信息与下层视频(针对 菜单和提示)的混淆。
一些实施例将用户输入传送给脚本,例如使用'eventwait'函数。事件 包括RTSP PLAY (被用于发起技巧播放(trick play)—快进(FF) /倒带 (RW)操作);RTSP OPTIONS命令(被用在一些用户播放器应用中以 实现非标准功能)以及SIP INFO/UII事件等。
在一些实施例中,系统可以被控制或接收输入或者从外部系统被定 向。这可以使用远程进程调用(RPC)到API或被暴露给那些控制实体的 被定义协议中来实现。控制可以被限制针对被鉴定或被授权的用户或设 备。控制可以改变很多可能行为的一个或若干行为,所述行为例如配置、 更新内容列表、脚本、广告、被允许用户等。
一些实施例缓存代码转换后的输出文件以便其它客户端在后续会话中 再次使用。该缓存以保持音频同步的方式被执行。 一些实施例允许在内容 被再次编码之前(原始数据)缓存内容,以允许个人化的剪辑插入,如果 控制脚本允许的话。原始剪辑和被插入剪辑都可以被缓存。
一些实施例支持在内容根据之前的请求被代码转换并缓存时访问内容
23的功能。这实现了对代码转换成果的共享。
被缓存的内容可以与相关联的元数据一起被存储 一组可以与内容一 起被存储的示例性元数据是源URL、帧大小、缓存期满、比特率和帧速率
(当RAW内容被缓存时比特率和帧速率可能不需要,因为可以由目标编
码级进行限定)。
在一些实施例中,元数据被保存到数据库,在其它情况下,元数据可 以被编码到被保存到磁盘上的对象的文件名中(以免除对内容数据库的需
要)。当条目源自web服务器时,针对每个内容条目的缓存期满规则可以 从HTTP缓存头部字段被得到。也可以忽略HTTP缓存规则。
缓存日志可以被生成,显示对被缓存对象(命中和错过)的请求、请 求时间、对象大小和传送时间。在一些实施例中还可以生成更多的缓存统 计数据,显示对象时期分布、点击率、时期分布、前100个缓存点击对 象、最小/最大/平均找寻时间、最小/最大/平均传送速率。
一些实施例由如图5C中所示的四个主要系统组件构成。这些组件可 以被置于单个服务器上或者被布置在多个服务器上以提供可定制的解决方 案。图5C示出了分解结构。这四个元件是管理元件、协议处理器、系统 控制器和媒体适配器。
管理元件(整个系统中可能只有一个管理元件)被用于收集统计数据 和事件并且还可以被用于査看和修改系统配置。
(一个或多个)协议处理器可被用于为来自客户端的请求提供服务。 多个协议处理器可以被设置在系统中,但是在大多数情况下,针对每种要 被支持的协议只需要一个协议处理器。
系统控制器可以是构成系统核心的元件,并且被用于执行针对每个客 户端请求的应用脚本。系统控制器还管理媒体处理资源(媒体适配器)之 间的负载平衡并且管理系统和应用专用的日志和CDR。
(一个或多个)媒体适配器可以是任意系统所需要的一个或多个媒体 适配器。这些媒体适配器提供低级的媒体变换和视频功能。这些元件上的 负载可以由系统控制器均匀分配。
对于小规模的服务,所有的元件可以用'一个盒子的解决方案'在单个服务器上运行。单一 IP地址被用于所有的服务(RTSP和HTTP协议处理 器、Web GUI和外部内容请求)。容量可以被限制为最大会话数目(该数 目可以根据针对媒体的代码转换要求被减少)。
对于需要比单个服务器所能够提供的容量更大的容量的较大规模的服 务,例如商业服务,系统可以基于多个服务器。这可以被布置为机架内的 服务器刀片,例如使用IBM刀片中心硬件。
一些实施例具有被用于在适配器引擎和协议处理器之间传送媒体数据 的媒体接口。在一些实施例中,该接口使用SCTP。 SCTP具有用于该接口 的特性,因为它是具有拥塞控制、消息构架(允许离散的RTP分组作为消 息被发送)和多流传送(支持在单个连接上被复用的多个消息流, 一个流 的数据丢失不会影响任何其它流)的可靠的面向连接的数据传送。在一些 情况下,SCTP优于UDP,因为UDP从本质上说是不可靠的,并且由于很 多情况下的内容源是经可靠连接被传送的,所以不能接受内容适配器可能 中断在内部被处理的媒体数据。另外,UDP本身不提供用于流控制的机 制。SCTP还可以支持多宿主(因此,来自多个IP地址的流量可以经公用 连接被传送)。
一些实施例能够实现负载平衡和监视。为了管理系统的性能, 一种机 制可以被设置,从而适配器引擎可以适当地调整其自己的负载。取决于所 需要的负载调整,这可以包括简单系统到更复杂的系统。
在一些实施例中,每个适配器引擎用处理器核的数量乘以兆赫兹再除 以可用的处理器核数(一些实施例可能把处理器核用作其他用途或者因为 许可的原因而限制它的使用)作为性能的基本度量,给出对整体性能的粗 略估计(不同的芯片类型可能需要被规范到所选择的级别,例如Intel 686)。 一些实施例被设置有最大负载参数,该参数的目的在于保持系统 不超过已知级别(例如80%)并且有效地降低可用的总MHz。
当每个请求从增加另一个会话的控制器伴随AE的确认能力到达AE 的时候(目标媒体类型是有效且被支持的),应当确认资源对于系统而言 可用。这应当首先通过对针对所有进行中的会话的所有成本计算总和并基 于目标媒体选项和,再加上基于目标媒体选项和对会话解码元素的估计
25(临时的)的新的会话的假设"成本"。
一旦会话被建立,就应当基于任何变可用的新信息来更新成本(在视 频被保存在容器文件中并且不能经由SDP读取的情况下,所述信息例如源 编解码类型、比特率、帧速率、帧大小等)。
图7A-7C是根据本发明的实施例用于通过内容适配器从元件进行获得 和检索的简化连接图。图7A表示存放和检索设备的特性不同于用户生成 的内容存放库(UGC)或者未知或者在具有不同或受控的特性(编解码或 不被信任的域)的网络中的一般情况。在这种情况下,CA在路径中并且 能够在接受和供给中进行适配/代码转换。图7B示出了示出了一种对UGG 的访问只通过一个CA被接口的情况,这个例子是这种情况,内容以一种 不兼容的格式存储在一套设备上,而CA作为这些设备的网关。图7C示 出了 UGC在获取时已经代码转换的情况。这里的示例可以是设备与UGC 存储容器格式或媒体格式不兼容并且在输入时被适配以使得它们具有所需 要的格式而可以由其它用户访问。例如,经由流或视频电话呼叫来从移动 电话将日志剪辑上传到可以使用Flash视频的基于web的内容端口,以供 所有其它的访问。
网络负载因子还可以确定使用图7A-7C中的不同布置中的一个或全部 布置。根据业务模式或者基于所期望的内容访问的可能性,可以采用不同 的策略。例如,根据用户id或类似信息确定的可能被访问的内容可以在获 取时就被进行代码转换并且准备好立即用于己知的流行张贴者,但是对于 访问期望不同样高的其他用户而言可能将不会发生代码转换。按照这种方 式,资源可以被保存。
图8A-8C是示出了根据本发明实施例的内容视频控制的位置安排的简 化体系结构图。图8A-8C示出了在实施例中,针对适配的控制可以为了不 同的目的而存在于系统内的不同位置。图8A示出了位于客户端和内容之 间的双向控制接口 。这种位置安排一般对于内容具有获取和播放接口的情 况是可行的,并且需要客户端能够与两者进行接口。上载和下载的各种特 定方面都可以在由该控制所控制的模块中。图8B示出了针对客户端所提 供的媒体和消息以及通过各种处理模块对所述媒体的适配执行的控制。图8C示出了针对来自内容提供者的媒体和消息以及媒体适配/处理的控制, 并且该控制之后是媒体、元数据/控制消息在存放到网络之前的多路复用。
图9是示出了根据本发明实施例的内容适配器的分解结构的简化体系 结构图。该图示出了在媒体适配和控制之间的负载平衡器。协议A接口和 协议B接口可以是SIP、 RTSP、 HTTP或其它基于会话的协议。该元件可 以按照与IMS条款中的MRFC类似的方式被提供。低层元件可以被看作 采用相同方式的MRFP。组件之间的控制接口可以是MSML/MSMO或者 可以是有更多限制的应用专用接口。
图10是示出了根据实施例的承担HTTP代理角色的内容适配器的分 解结构的简化体系结构图。在该实施例中,本发明被基于web的媒体服务 所使用,其中需要在上载(HTTP POST,例如博客或YouTube内容上 载)期间从宽范围的源格式和编码器设置到公用设置的转换或者用于下载 (HTTP GET)的从单一高品质源格式到宽范围的输出格式的转换。
图11是示出了根据实施例的HTTP GET方法中缓存操作之前的内容 适配的简化示图。媒体在缓存之前被转换。图12是示出了在根据本发明 实施例的HTTP GET方法中缓存操作之后的内容适配的简化示图。用户做 出对内容的请求,该请求可以包括URL中的标签以指示所希望的目标格 式或者代理可以检查与URL相关的数据是否触发了媒体转换(被请求的 内容扩展、域名、IP地址范围、浏览器类型等)。代理将在内容存储中寻 找正确的媒体存储(包括URL媒体标签),并且如果存在则将其传送回 客户端。如果URL触发或媒体标签被找到,则媒体适配器应当被使能 (数据将通过媒体转换器从代理那被重定向),(例如大小转换)然后做 出对来自源(源URL)的资料的请求。当数据被接收到时,它应当在被缓 冲(例如,逐块地(block wise))之前被传送给媒体转换器。单个连接可 以针对多个内容请求而被复用,以保持良好性能。到CA的输入数据被分 析并缓冲,直到源媒体参数(编解码、比特率、帧大小等)可被解码或确 定为止。 一旦代码转换参数已知,则媒体可以从缓冲开始被处理并且被传 送。
图13是图示出在根据本发明实施例的HTTP PUT方法中缓存操作之前的内容适配的简化示图。HTTP PUT/POST。用户(人或设备)向服务器 作出POST请求,该请求可以将标签包括在URL中以指示期望的目标格式
(例如MSMO)。代理将检查数据是否将根据规则(所请求的内容扩展、 域名、IP地址范围、浏览器类型等)来适配。如果需要媒体转换则为该流 使能媒体转换器,并且来自源(HTTP客户端)和代理的数据被重定向到 CA。当数据被接收到时,它可以在被缓冲(例如,逐块地(block wise))之前被传送给媒体转换器。输入数据被媒体转换器分析并缓冲, 直到源细节(编解码、比特率、帧大小等)己知为止,并且一旦代码转换 参数被理解,则媒体可以从缓冲和后续区块开始被处理。在数据从媒体转 换器处被传送时,数据被正常地进行代码转换并传送给服务器。
图14是根据本发明实施例的包括到内容适配器的URL重定向的简化 操作。所示滤波器的行为是其将一直缓存原始数据(而不是被滤波或代码 转换的版本)。替代方式允许系统指定缓存应当在滤波之前还是滤波之后 进行(整体而言或者按照内容类型/URL)。标准的代理服务器通常不能够 支持在同一 URL下缓存多个对象,因而如果它们要在代码转换后被存 储,则可能必须修改URL以确保多个版本被保留。
图15是根据本发明实施例的提供内容适配的内容适配器的简化连接 结构。代理可以是HTTP代理并且远程进程调用(RPC)客户端功能可以 由XML-RPC来提供。在该体系结构中,CA控制器提供针对CA的系统级 控制,包括供给、管理和控制。它包括URL分析器和重定向器功能,该 功能被用于控制哪种对象请求会被CA处理,并且与针对代理自身的接口 一起控制应将对象的数据流定向到哪里(如果它们要被处理的话)。URL 触发规则应该能够按次序被定义,并且应该包括针对应当被处理的URL 对象所要传送的目标媒体格式的定义。在这种体系结构中,CA引擎是包 含所有用于将文件从一种类型转换成另一种类型的子组件的高级元件。 Contain控制去往或者来自CA控制器的接口 。这个组件起初被开发为基于 单独的服务器的过程/应用,但是为了传送所要求的高密度数据,它可以移 植到基于DSP的平台上。单个队列被用于返回请求并且被传送给各个代码 转换对象——这些必须在输入数据的"形态"被理解的情况下被动态构建。文件打开被用来在文件从内容服务器(通过代理)被传送过来时打开文
件。通常假定文件类型的具体细节不能基于URL来确定,因此这些信息
必须通过读取文件格式(编解码类型,比特率,帧大小等)来找到。在某 些情况下文件格式是可以确定的,例如在从已知并且可信的地方返回的资 料中。文件包装提供针对目标文件格式所需要的音频和视频组件的封装。
音频Xcode提供了音频媒体代码转换器功能,而视频Xcode提供了视频媒 体代码转换器功能。媒体代码转换可以被提供为级联代码转换器(背对背 解码和编码器)或者能够在包括媒体质量和处理消耗方面在内的多个方面 提供更好性能的智能代码转换器。这些智能代码转换器在美国专利No. 6,829,579 、 No. 7,133,521和No. 7,263,481以及美国专利申请No. 10/620,329 、 No. 10/693,620 、 No. 10/642,422 、 No. 10/660,468禾卩No. 10/843,844有进一步的描述,这些专利和专利申请的公开全部无条件地通 过引用结合于此。
一些实施例对错误行为具有适应性并且支持媒体处理特征流水线,如 美国专利申请No. 10/762,829中所述,该专利申请的公开全部无条件地通 过引用结合于此。处理视频内编码帧的能力(或类似的刷新点),或者事 先知道的或者根据通道知识获得的其他的媒体显著特征,在传送给出错的 通道时能够极大的提高质量。另外,该系统能够插入额外的内编码帧,或 者在音频帧中加入冗余,或者加入来自于一个可定制视频源的额外材料或 者加入前向纠错(或者通过增加冗余或增长时间基准的FEC来实现的增强 的保护)。
对于需要很高的可用性的服务,多个单独的相同(或相似)系统可以 利用标准第4层至第7层(L4-L7)负载平衡交换机来被配置在一起。这 些系统可以被配置为活动-活动或者活动-待机的配置。这些交换机可以是 外部的或者被安置在位于刀片中心机架中的交换机槽中。利用L4-7交换机 能够超出单个服务器功能的系统调整功能。第4层交换机能够分配接受的 RTSP或HTTP请求到2个或更多个单个系统上。这些交换机还能通过向 它们发布周期的客户请求来监视系统的健康度;如果没有收到正确的响 应,交换机就会把相关的系统移出负载共享池。图16示出了这个过程。
29输入的HTTP和RTSP请求根据负载共享规则(最小负载,轮叫调度等) 被分配到可用的CA系统上。
图17、 18、 19和20示出了针对各种情形的实施例的各个组件之间的 交互。客户端、协议处理器、控制器、脚本、适配器引擎和源被示出。图 17示出了连接到HTTP源的RTSP客户端。图18示出了连接到HTTP源的 HTTP客户端。
图19示出了连接到RTSP源的RTSP客户端。在一些实施例中,适配 器引擎自动开始RTSP SETUP和PLAY来尽可能早地接收数据并且将其发 送给协议处理器(PH)进行缓冲。 一旦连接被建立,RTSP PH就缓冲所 接收到的流数据直到接收到播放请求;RTSP PH还应当等到具有足够的缓 冲数据以确保可以进行实时的重放(考虑内容长度和输入数据的传送速 率)。在一些实施例中,协议处理器应当保持SCTP套接字打开直到其被 适配器断开连接(这在拆除时会发生),以使得多个PLAY请求可以在公 用客户端连接上被调度开。
图20示出了连接到RTSP源的HTTP客户端。在一些实施例中, RTSP PH缓冲所接收到的流数据直到接收到PLAY请求;并且一直等到具 有足够满的缓冲数据以确保可以进行实时重放(考虑内容长度和输入数据 的传送速率)。
本发明还将前述模块与系统维护模块和系统扩展模块进行组合,允许 本发明的装置作为另一类似系统的冗余备份或者作为另一系统的扩展单 元。
为了执行该说明书中所提到的功能,系统的实施例包括一个或多个处 理单元(例如数字信号处理器(DSP) 、 FPGA/ASIC或通用处理器)、一
个或多个存储器、 一个或多个操作系统(允许访问不同的硬件资源)、具 有总线控制单元的总线以及资源控制单元。
之前提供对于优选实施例的描述是为了使得本领域的任何技术人员都 能够实现或使用本发明。对这些实施例的各种修改对于本领域技术人员来 说都是非常明显的,并且这里所限定的基本原理可以不需要创造力地被应 用于其它实施例。因而,本发明不希望被局限于这里所示出的实施例,而是被赋予与这里所公开的原理和新颖特征相一致的最宽的范围。例如,取 决于实施例,以上功能可以被组合或者进一步划分。某些特征也可以被添 加或删除。另外,所描述的特征的特定顺序在某些实施例中是不需要的, 但是可能在其它实施例中是很重要的。取决于实施例,这一系列过程可以 用计算机代码和/或硬件来执行。当然,本领域普通技术人员可以识别出很 多其它变形、修改和替代。
此外,还应当理解这里所描述的示例和实施例都只是为了说明的目 的,并且在所述这些内容的启发下本领域技术人员可以建议各种修改或改 变并且这些修改和改变都将被包括在本申请的精神和范围以及所附权利要 求的范围内。
权利要求
1.一种用于适配一个或多个网络中的多媒体内容的装置,该装置包括控制器模块;一个或多个网络接口模块;被耦接到所述控制器模块的一个或多个协议接口模块;被耦接到所述控制器模块的脚本解释模块;被耦接到所述控制器模块的一个或多个媒体适配模块;以及被耦接到所述控制器模块的管理接口模块。
2. 如权利要求1所述的装置,其中所述一个或多个媒体适配模块中的 一个媒体适配模块被配置为对媒体进行代码转换、速率转换、大小转换或 者滤波。
3. 如权利要求1所述的装置,其中所述一个或多个协议接口模块中的 一个协议接口模块被适配为处理超文本传输协议(HTTP)、会话发起协 议(SIP)或实时流协议(RTSP)中的一种或多种协议的会话。
4. 如权利要求1所述的装置,其中媒体作为流媒体在所述装置处被接 收并且作为下载或渐进式下载从所述装置处被提供,或者媒体作为下载或 渐进式下载在所述装置处被接收并且作为流媒体从所述装置处被提供。
5. 如权利要求1所述的装置,其中所述一个或多个协议接口模块被适 配为利用第一协议接收来自客户端的第一请求并且所述一个或多个协议接 口模块中的第 二协议接口模块被适配为利用第二协议向内容服务器发送第 二请求。
6. 如权利要求5所述的装置,其中所述第一协议选自由HTTP、 RTSP 和SIP构成的协议组,并且所述第二协议选自由HTTP、 RTSP和SIP构成的协议组。
7. 如权利要求5所述的装置,其中所述第一协议包括HTTP并且第二 协议包括RTSP,或者所述第一协议包括RTSP并且第二协议包括HTTP。
8. 如权利要求1所述的装置,其中所述脚本解释模块被编程以从数据库请求数据来通知它的决定。
9. 如权利要求1所述的装置,其中所述脚本解释模块被编程以根据客户端请求和服务器响应确定媒体适配。
10. 如权利要求1所述的装置,其中所述脚本解释模块被编程以根据 客户端请求确定目标媒体属性。
11. 如权利要求1所述的装置,其中所述脚本解释模块被编程以向客 户端提供根据来自第一源的第一媒体组和来自第二源的第二媒体组而适配 的被传送媒体组,其中大小、速率和编解码中的一个或多个属性在所述被 传送的媒体组、所述第一媒体组和所述第二媒体组之间是不同的。
12. 如权利要求1所述的装置,其中所述一个或多个媒体适配模块支 持音频、视频或元数据中的一种或多种数据。
13. 如权利要求1所述的装置,还包括被耦接到所述一个或多个媒体 适配模块的缓存模块。
14. 如权利要求1所述的装置,还包括被耦接到所述一个或多个媒体 适配模块的负载平衡模块。
15. 如权利要求14所述的装置,其中所述负载平衡模块被配置为在确 定一个或多个会话特性之前估计负载并在确定所述一个或多个会话特性之 后更新所述负载。
全文摘要
一种用于适配一个或多个网络中的媒体内容的装置包括控制器模块、一个或多个网络接口模块和被耦接到控制器模块的一个或多个协议接口模块。该装置还包括被耦接到控制器模块的脚本解释模块以及被耦接到控制器模块的一个或多个媒体适配模块。这一个或多个媒体适配模块可以支持音频、视频或元数据。该装置还包括被耦接到控制器模块的管理接口模块。媒体可以作为流媒体在所述装置处被接收并且作为下载或渐进式下载从所述装置处被提供。另外,媒体可以作为下载或渐进式下载在所述装置处被接收并且作为流媒体从所述装置处被提供。
文档编号H04L12/28GK101669328SQ200880011331
公开日2010年3月10日 申请日期2008年2月11日 优先权日2007年2月9日
发明者布若迪·肯瑞克, 戴维·杰克, 穆罕默德·瑞德, 马尔万·A·贾布里 申请人:达丽星网络有限公司