CN104604240B - 准时分布式视频高速缓存 - Google Patents

准时分布式视频高速缓存 Download PDF

Info

Publication number
CN104604240B
CN104604240B CN201380046871.0A CN201380046871A CN104604240B CN 104604240 B CN104604240 B CN 104604240B CN 201380046871 A CN201380046871 A CN 201380046871A CN 104604240 B CN104604240 B CN 104604240B
Authority
CN
China
Prior art keywords
source file
optimization
version
video
key
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
Application number
CN201380046871.0A
Other languages
English (en)
Other versions
CN104604240A (zh
Inventor
E·R·斯温森
J·海尔伯恩
S·庞布拉
R·厄利
V·阿尚斯基
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.)
Performance & Privacy Ireland Ltd
Original Assignee
Performance & Privacy Ireland Ltd
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 Performance & Privacy Ireland Ltd filed Critical Performance & Privacy Ireland Ltd
Publication of CN104604240A publication Critical patent/CN104604240A/zh
Application granted granted Critical
Publication of CN104604240B publication Critical patent/CN104604240B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • 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/10Architectures or entities
    • H04L65/1059End-user terminal functionalities specially adapted for real-time communication
    • 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/1066Session management
    • H04L65/1101Session protocols
    • 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/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2183Cache memory
    • 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
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23103Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing 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/23439Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • H04N21/2396Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests characterized by admission policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26613Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing keys in general
    • 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/64784Data processing by the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals

Abstract

一种视频优化器接收用以优化源文件和流式传输优化文件的请求。该请求可以伴随有密钥,该密钥唯一地标识待优化原始源文件和源文件的将向客户端流式传输的优化的版本。密钥在源视频文件在始发服务器上存在时唯一地标识它以防止方式修改的源视频和源文件的按照优化参数的优化的版本以保证与用户设备兼容。视频优化器响应于接收的请求来查询高速缓存数据库,该高速缓存数据库包含参考密钥和优化源文件在视频优化器的群集中的本地高速缓存之中的位置。高速缓存数据库响应指示源文件的匹配优化的版本是否存在于群集中的给定的视频优化器的本地高速缓存中。

Description

准时分布式视频高速缓存
相关申请的交叉引用
本申请要求提交于2012年7月18日的第61/673,188号美国临时申请的权益,其通过引用的方式整体并入于此。
技术领域
本发明总体上涉及改进网络上的用户体验并且更具体地涉及优化网络中的视频高速缓存。
背景技术
移动设备、比如智能电话和写字板近年来已经变得盛行。鉴于移动计算能力和深远的无线因特网接入的发展,越来越多用户在他们的移动设备上观看流式视频。经常从用户用其移动设备访问的各种源、以不同的质量、帧速率、帧大小和压缩水平流式传输这些流式视频。在许多情况下,在网络上可用的视频未被优化用于无线传输或者在移动设备上观看并且对网络条件一无所知地从源以给定的质量流式传输。例如未经优化的视频可以在计算机监视器或者电视上具有足以向用户提供良好的观看体验的质量水平。因而,未必大的带宽部分可以用来在更小部分将足以提供在移动设备的更小显示器上的等效用户观看体验时流式传输未优化的视频。
现有网络提供商或者媒体源已经尝试通过对流式视频执行视频优化来提高在视频流式传输期间的带宽使用。优化经常涉及到将源文件、比如视频转码成与移动设备或者网络提供商的系统的能力更接近地相配的格式。尽管优化确实提高带宽使用而对如在移动设备上观看的流式视频的质量影响很小,但是优化过程通常在服务器开始转码过程时引起视频流式传输和回放的延迟。这些延迟最终地引起对用户的观看体验的不利影响,这可能导致用户早期地停止视频流式传输或者切换到另一流式传输站点。
附图说明
公开的实施例具有将从具体实施方式、所附权利要求书和附图中更容易地清楚的其它优点和特征。以下简要介绍附图。
图1图示用于优化的视频高速缓存的示例通信环境的高级框图。
图2图示能够从机器可读介质读取指令并且在过程或者控制器中执行它们的示例机器的部件的一个实施例。
图3A-3D是用于向用户设备提供优化的视频的示例事件踪迹的实施例。
图4图示使用经高速缓存的首部的预测编码的一个实施例的流程图。
具体实施方式
附图和以下描述仅通过示例涉及各种实施例。应当指出,根据以下讨论,将容易地认识这里公开的结构和方法的备选实施例作为可以在未脱离这里讨论的原理时运用的可行备选。
现在将具体参照若干实施例,在附图中图示这些实施例的示例。指出无论何时可行,相似或者相同标号可以在图中被使用并且可以指示相似或者相同功能。附图仅出于示例的目的而描绘公开的系统(或者方法)的实施例。本领域技术人员将从以下描述容易地认识可以运用这里所示结构和方法的备选实施例而未脱离这里描述的原理。
概述
网络提供商和媒体源可以使用本地高速缓存作为用于提高向移动设备流式传输源文件、比如视频的质量的方法。在由视频优化器转码和优化源文件时,可以向本地高速缓存中保存源文件。本地高速缓存允许视频优化器将转码的源文件(或者源文件的优化的版本)存储短暂持续时间并且对用户的请求做出响应(例如重放视频或者在视频的时间线中跳过)而无需重新取回源文件以用于转码。因此,本地高速缓存配置避免在单个会话期间为特定用户反复地取回和转码特定文件。
然而通常在用户结束会话之后不久从本地高速缓存清除转码的文件。清除出于两个原因而发生:为了允许在为其他用户转码期间本地高速缓存其它文件并且避免违反版权。后者源于视频优化器存储(和流式传输)不再从版权所有者可用的受版权保护的文件的优化的版本。这让转码服务提供商面临不想要的义务。即使未清除高速缓存的文件,用户必须足够幸运到被路由到在潜在数以千计的视频优化器之中的已经高速缓存优化的源文件的特定视频优化器。否则,用户必须等待与先前已经从另一视频优化器流式传输视频的用户相同的转码操作。
这里公开的实施例包括一种用于监测在许多视频优化器出现的对优化的视频的本地高速缓存的高速缓存数据库。高速缓存数据库维护与在给定的优化器本地高速缓存的每个优化的视频对应的条目。又在用户请求在视频优化器优化源服务器上的给定的源文件时,高速缓存数据库能够向视频优化器提供先前已经优化并且在其本地高速缓存中存储给定的源文件的其它优化器的位置和地址。接收针对源文件的优化请求的优化器然后可以从另一优化器取回优化的文件或者将用户设备重定向至第二优化器、因此消除对于生成冗余的优化的源文件的需要。通过访问现有的优化的源文件而不是反复地转码相同源文件,需要更少视频优化器以提供资源繁重的转码操作。
在一个示例实施例中,在用户设备请求来自存储多个源文件的始发服务器的源文件时,导引设备可以检测请求并且截获针对在网络控制器处的处理的请求。网络处理器能够在网络流穿越网络时收集关于它们的数据从而将请求和其它数据重定向以优化网络中的带宽使用。在一个实施例中,网络控制器检查请求和有关流量(即网络流)以确定关于源文件、网络的状态和用户设备的信息。此外,网络控制器可以向始发服务器转发针对源文件的请求并且截获始发服务器的响应以确定源文件是否对应于视频。截获的请求和/或响应可以包含视频信息或者源文件本身的部分。
网络控制器处理信息以确定是否转码请求的源文件并且确定用于为用户设备转码源文件的优化参数。网络控制器可以生成与原始源文件和优化的源文件二者唯一地关联的标识符(ID)密钥(例如基于指定的优化参数)。网络控制器又可以将用户设备重定向到视频优化器。在一个实施例中,网络控制器在向用户设备传输的重定向请求内包括ID密钥。备选地,网络控制器可以向用户设备被重定向到的视频优化器传输ID密钥。通过发送ID密钥并且将用户设备重定向到视频优化器用于取回源视频文件,用户可以接收源文件的优化的版本而无直接输入或者甚至不知道该过程出现。
为了消除对于重新转码已经转码的源文件的需要,视频优化器可以查询它的本地高速缓存和/或高速缓存数据库,该本地高速缓存和/或高速缓存数据库存储与在向高速缓存数据库报告的视频优化器上存储的源文件的优化的版本对应的参考ID密钥。如果参考ID密钥与用于请求的源文件的ID密钥匹配,则可以向用户设备提供源文件的现有的优化的版本。重要的是,ID密钥唯一地标识源文件和优化的源文件二者。如果有对源文件的任何改变,则无参考密钥将与生成的ID密钥匹配并且将取回和转码新的源视频文件。因此,例如如果源文件的版权所有者修改源文件,则向用户设备仅提供如当前从版权所有者可用的源文件的优化的版本。将源文件的优化的版本与用于请求源文件的用户设备的指定的优化参数进行匹配保证向用户设备提供适当地优化的版本(因为可以有多于一个优化的版本、例如用于写字板显示器大小的优化的版本有别于移动电话或者3G连接速度的优化的版本有别于3G连接的优化的版本)。
在一个实施例中,先前尚未转码或者基于指定的优化参数转码源文件,因此满足用户设备的需要的、源文件的优化的版本在视频优化器中的任何视频优化器上不存在。因而,ID密钥不会与高速缓存数据库中的任何参考密钥匹配。高速缓存数据库将高速缓存未命中指示返回到用ID密钥查询高速缓存数据库的视频优化器,该高速缓存未命中指示提示视频优化器从始发服务器取回源文件并且开始转码和流式传输源文件到用户。一旦在视频优化器中高速缓存优化的源文件的至少一部分,则视频优化器可以用与优化的源文件的现在在视频优化器本地高速缓存的部分对应的条目更新高速缓存数据库。在一个实施例中,视频优化器提交从网络控制器接收的ID密钥以用于在高速缓存数据库中存储为新参考密钥,该新参考密钥唯一地标识源文件和源文件的在视频优化器的本地高速缓存中存储的优化的版本的参数。可以让用与用于源文件的相同部分的存储的参考密钥匹配的ID密钥查询高速缓存数据库的其它视频优化器参考源文件的在视频优化器的本地高速缓存中存储的现有的优化的版本而无需重新转码源文件的相同部分。
在另一示例实施例中,源文件先前已经被另一优化器转码,并且具有希望的参数的优化的版本被存储在其它优化之一的本地高速缓存中。高速缓存数据库将高速缓存命中指示发送到用ID密钥查询高速缓存数据库的视频优化器。高速缓存命中响应指示第二视频优化器具有带参考密钥的源文件的优化的版本,该参考密钥与它的本地高速缓存中的ID密钥中的指定的优化参数匹配。在一个实例中,优化器可以请求来自第二优化器的优化的源文件,该第二优化器已经本地存储源文件的优化的版本。第一优化器然后可以向用户设备转发优化的视频用于回放。在另一实例中,第一优化器可以向用户设备发送重定向。重定向使该用户设备连接到存储源文件的优化的版本的第二视频优化器。重定向可以包括第二优化器在网络上的位置和生成的ID密钥。在这一实例中,第二优化器通过向用户设备直接流式传输源文件的优化的版本来做出响应。
在一些实例中,许多用户可以频繁地请求流行的源文件。响应于对于该特定源文件的增加的需求,视频优化器可以请求复制源文件的在第二优化器上存在的优化的版本。通过在第一优化器中存储频繁地请求的源文件的优化的版本,第一优化器能够与第二优化器共享对于源文件的请求负载、因此减少第二优化器上的负担。益处是两个优化器能够赋予源文件的相同的优化的版本并且能够更快地响应针对源文件的请求而仍然处理其它源文件优化请求。
优化的视频高速缓存环境
现在参照图1,它图示用于优化的视频高速缓存的示例通信环境100的高级框图。环境100包括用户设备110A和110B(统称为用户设备110)、始发服务器170、导引设备130、网络控制器140、视频优化器150、高速缓存数据库160和网络120。网络120是在用户设备110、导引设备130和始发服务器170和/或视频优化器150之间传输数据的通信网络。在一个实施例中,网络120包括无线网络和因特网。
必须平衡希望防止资本开支超过收入的网络效率策略与来自消费者的对于日益依赖于更高数据使用的更佳用户体验的需求。如今,移动运营商正在运用多种工具以管理容量、包括数据使用上限、Wi-Fi分流和智能优化。环境100示范这样的解决方案,该解决方案向统一基础提供深入会话智能、综合服务管理和用于与任何服务赋予相配的动态可适配性。网络控制器140和视频优化器150一起递送一种世界级媒体优化解决方案,该媒体优化解决方案给无线运营商带来外科手术式容量优点以及向因特网服务提供商带来比备选解决方案更佳的峰值容量节省。
在一个实施例中,用户设备110是具有网络能力的计算设备。经常例如用户设备110是具有web浏览器和媒体显示能力的具有无线功能的移动计算设备。作为移动计算设备的用户设备110可以包括膝上型计算机、上网本计算机、写字板、智能电话或者个人数字助理(PDA)。尽管在图1中图示仅两个用户设备110A和110B,但是环境100可以包括数以千计或者数以百万计的这样的设备。Web浏览器可以是在移动设备110上运行的用于从始发服务器170取回包括web内容的源文件并且在耦合到移动设备的显示器上呈现web内容的软件应用。用户设备110访问的多媒体web内容可以包括文本、图像、音频和视频内容。源文件可以包括一个或者多个类型的多媒体web内容。多媒体内容可以由浏览器、例如HTML5兼容浏览器、插件或者单独媒体播放器回放。浏览器也可以调用在用户设备110上可用的媒体播放器或者插件并且向媒体播放器或者插件传递图像、音频和/或视频用于回放。
导引设备130可以是位于用户设备110与网络120之间的负载均衡器或者路由器。导引设备130向用户设备110提供向网络的接入并且因此提供网关,用户设备流量经过该网关向网络上流动并且反之亦然。在一个实施例中,导引设备130对经过它路由的流量进行分类以标识感兴趣的流用于在网络控制器140处进一步检查。备选地,网络控制器140与导引设备130进行对接以协调对网络流量的监测和分类、比如标识HTTP流量流中的大对象和小对象。在这一情况下,导引设备130基于用于对感兴趣的流进行分类用于进一步检查的希望的标准从网络控制器140接收指令。
然而在无线/蜂窝用户设备110侧上的信息经常在处于蜂窝网络与有线因特网之间的导引设备130不可用。例如经常没有关于与移动设备110关联的基站的标识符的信息。仅在移动设备首次附着到网络时广播基站关联信息。此外,用户设备110通常除了它们的IP地址之外未报告任何标识信息。因此,对网络流量的监测和对拥塞的检测被控制器140自动化和管理,从而可以对于终端用户的体验而优化网络而不为移动设备所知。
与监测传输和接收的每单个数据分组的常规内嵌TCP吞吐量监测设备对照,网络控制器140是与导引设备130进行对接以有选择地检查感兴趣的用户流的“带外”计算机服务器。网络控制器140还可以标识用户流(例如在感兴趣的流之中)用于优化。在一个实施例中,可以在导引设备130实施网络控制器140以监测流量。在其它实施例中,网络控制器140耦合到导引设备130并且与导引设备130通信用于流量监测和优化。在被导引设备130查询时,网络控制器140确定是否应当忽略、进一步监测或者优化给定的网络流。经常在流的开始时判决对流的优化,因为一旦非优化的内容递送已经开始就不太可能在流中间切换到优化的内容。然而网络控制器140可以确定应当优化与特定用户或者其它实体关联的现有流。又可以优化确定为与实体关联的新流(例如从媒体中的寻找请求、新媒体请求、在暂停之后恢复等产生)。网络控制器140在它的对于监测和优化的判决中使用网络状态以及历史流量数据。关于当前网络状态、比如拥塞的了解在它来到数据优化时视为关键。
在一个实施例中,网络控制器140是在用户设备110与环境100的其它部件、比如视频优化器150或者始发服务器170之间的调解器。在用户设备110传输针对视频或者其它有关源文件的请求时,请求可能被导引设备130截获,并且流被直通路由到网络控制器140用于进一步分析。在一些情况下,网络控制器140可以确定可以进一步优化请求的源文件以提高网络120的总容量。在一些实例中,控制器140可以向始发服务器170转发截获的针对源文件的请求并且截获来自始发服务器170的响应以确定关于源文件的信息和是否优化源文件。
如果网络控制器140确定应当优化请求的源文件,则网络控制器140确定用于生成的源文件的优化的版本的优化参数。优化参数指定属性、比如目标比特率、帧宽度、帧高度、采样率、音频性质等,这些属性用于转码源文件,从而它与用户设备110兼容并且满足网络120和用户设备110的可用带宽容量。网络控制器140又向视频优化器150提供优化参数并且将用户设备110重定向到视频优化器150以取回(例如根据优化参数而转码的)源文件的优化的版本。如果网络控制器140确定不优化请求的源文件,则网络控制器140可以继续监测流或者指令导引设备130不向网络控制器140直通路由流。
网络控制器140如图所示包括用于生成标识(ID)密钥的密钥生成器145,该ID密钥唯一地标识请求源文件和优化参数,这些优化参数描述视频优化器150应当如何转码用于用户设备110的源文件。为了生成用于源文件的ID密钥,密钥生成器145可以从在从设备请求110截获的请求中包含的源文件信息和/或在从始发服务器170截获的响应中包含的源文件信息确定源文件签名,该源文件信息唯一地描述请求的源文件。在一个实施例中,源文件签名可以包括原有文件或者原有文件的部分的哈希、视频的属性(例如比特率、帧宽度、帧高度、采样率、音频性质等)、原有文件的URL等。在一些实例中,可以修改URL,从而源签名的URL部分对于如下实例不变,在这些实例中,域或者网站修改URL或者在URL中添加附加部分。此外,为了生成密钥,密钥生成器145可以接收网络控制器140确定的用于生成源文件的优化的版本的优化参数。通过这些参数,生成的密钥可以用来标识源文件的在各种视频优化器150的高速缓存中存储的具体的优化的版本。在一个实施例中,生成的密钥与重定向请求一起向用户设备110传输。视频优化器150与针对源文件的重定向请求一起接收ID密钥。视频优化器150可以用ID密钥查询它的本地高速缓存155和高速缓存数据库160以确定源视频文件的优化的版本是否已经本地或者在另一视频优化器上存在。
视频优化器150是提供源文件、比如视频和图像优化的计算机服务器并且经由网络120向用户设备110递送优化的视频和图像内容。视频和图像优化是通过对视频和图像内容的转码而提供的按需服务。例如在用户设备尝试从始发服务器170取回视频时,网络控制器140可以判决流满足用于内容优化的某个标准。网络控制器140然后将用户设备110重定向到视频优化器150以取回优化的内容。视频优化器150从用户设备110或者从网络控制器140接收重定向请求中的优化参数和视频或者图像内容的位置并且从对应的始发服务器170取回视频或者图像内容以用于优化和随后向用户设备110递送。
在一个实施例中,视频优化器150从始发服务器170或者其它源直接取得源文件内容并且实时产生比特率减少的流。转码和优化的流可以暂时存储于可以称为本地高速缓存155的本地存储装置中。例如本地高速缓存155可以是以串行ATA(SATA)/串行附着SCSI(SAS)自旋或者快闪介质的形式。在一些实施例中,本地高速缓存155可以物理地位于视频优化器150内并且经由总线连接到视频优化器150系统的其它部件。在其它实施例中,本地高速缓存155可以位于视频优化器150以外并且经过网络120或者其它类型的有线/无线连接来连接到视频优化器150。由于每个视频优化器150与优化的源文件流的平均大小比较的大量存储装置,所以每个视频优化器150能够高速缓存某个数量的优化的数据。若干视频优化器150可以被组合成视频高速缓存群集,其中可以在个别视频优化器150之间共享本地高速缓存的优化的源文件。
由于视频优化器150的本地高速缓存155中的存储空间有限,所以充分地管理高速缓存155以保证源文件的更新和/或更流行的优化的版本可用于分发。视频优化器150根据以下各项中的一项或者多项考虑高速缓存的文件用于删除:最近最少使用的文件、上次访问时间、命中数目(例如总时段和上个时段)、复制请求数目(例如趋势向上)、文件大小(比更小文件更快清除更大文件以节省空间)或者先前/新近清除(例如趋势向下)。在一个实施例中,视频优化器150在长时间段内删除小组块中的高速缓存的文件以便保持对于删除操作而言必需的系统处理器负载下至最小。在一些实例中,视频优化器150也可以在删除活跃文件之前等待将访问活跃文件的所有用户重定向。一旦上个用户被重定向,可以删除活跃文件而不影响用户的流式传输体验。在一些实施例中,视频优化器150可以向高速缓存数据库160上推送所有它的高速缓存的文件用于存储。
为了更有效地管理视频优化器150的本地高速缓存155中的有限存储空间,高速缓存155可以仅存储优化的源文件的小片段或者剪辑。在一个实施例中,更小片段可以代表优化的源文件的预览。由于用户通常不观看向用户设备110流式传输的并且在用户设备110上回放的整个视频,所以在本地高速缓存155中存储整个优化的源文件是低效率存储空间使用。因此,通过仅存储源文件的一部分作为视频预览,可以在本地高速缓存中存储多得多的优化的源文件。另外,在本地高速缓存155中存储的视频预览文件可以在用户希望观看源文件的在本地高速缓存155中存储的视频预览片段以外的部分时被取回和拼接到对应的源文件的优化的部分。如果源文件的不同片段已经作为优化的视频预览文件被存储在不同视频优化器150的本地高速缓存155中,则单个视频优化器150也可以从不同本地高速缓存155取回片段并且将片段拼接在一起。在必需时转码附加片段。
在修改视频优化器150中的本地高速缓存155(例如添加、去除或者更新文件)时,视频优化器150向高速缓存数据库160发布用于更新与修改的文件关联的对应的条目的命令。在一个实施例中,命令可以包括“高速缓存添加”、“高速缓存去除”、“高速缓存取得”或者“高速缓存去除全部”。“高速缓存添加”和“高速缓存去除”用来比如在优化的源文件在本地高速缓存155中被更新/存储时或者在文件从本地高速缓存155被去除时添加或者去除高速缓存数据库160中的条目。“高速缓存去除全部”可以用来去除与特定视频优化器150关联的整个条目集合。这在视频优化器150关停或者崩溃时特别地有用,在该情况下,整个高速缓存可能丢失。“高速缓存取得”命令经常伴随有ID密钥,该ID密钥用于查询高速缓存数据库160以标识在其本地高速缓存155中存储源文件的请求的优化的版本的给定的视频优化器150或者服务器的IP地址。除了在这些实施例中呈现的命令之外还可以使用其它高速缓存命令。
在一些实施例中,本地高速缓存155也可以用于存储用于将在预测编码中使用的优化的源文件的首部。将在图4中更具体描述的首部在开始转码过程之前被创建并且包含与源文件有关的基本信息。媒体播放器分析首部文件以便能够识别和播放源文件。在首先生成优化的源文件时,视频优化器150预测最终的优化的源文件的性质。由于在转码过程之前进行预测,所以所得首部文件可能不准确。通过预测编码,视频优化器150可以在转码过程之后在本地高速缓存155中存储生成的首部并且取回存储的首部用于用来在对相同源文件的将来优化期间生成更准确的首部文件。
高速缓存数据库160通过消除对于转码另一视频优化器150先前已经优化的源文件的需要来增强视频优化器150的性能。在一个实施例中,高速缓存数据库160在它的数据库中存储源文件的本地高速缓存的优化的版本在优化群集中的位置。除了高速缓存的优化的源文件的位置之外,高速缓存数据库160也可以包含存储的参考密钥、用于每个源文件/优化的版本的上次访问时间和用于每个源文件/优化的版本的命中/请求总数。可以收集关于不同的优化的版本的信息以标识最经常向用户设备110提供的优化的版本。
高速缓存数据库160可以是集中式资源/服务器或者他可以被分布于视频优化器150本身之中。在高速缓存数据库160接收基于与优化的源文件对应的ID密钥的针对源文件的位置和源文件的用于向用户设备110发送的优化的版本的查询时,高速缓存数据库160可以搜索它的数据库以标识具有匹配参考密钥的源文件的优化的版本的位置。高速缓存数据库160也从视频优化器150接收用于更新它维护的条目的列表的命令,这些条目用于在视频优化器150群集中标识和定位优化的源文件。
公开的实施例聚焦于对源文件的优化的版本的高速缓存,因为视频流量组成所有网络流量的大约一半——并且该比例正在每年增加。因此,优化视频流量大大减少了网络中的拥塞。通过实施一种高速缓存源文件的优化的版本的高效方法,将让视频优化器免于必须转码另一视频优化器先前已经以别的方式转码的源文件。可以在转码其它请求的源文件时更高效地使用这些被解放的视频优化器,这向用户提供了更好的流式传输体验。通过在视频优化器150的本地高速缓存155中保存优化的源文件并且提供用于在各种视频优化器中搜索的高速缓存数据库,用于优化的视频高速缓存的系统通过必须主要地转码未已经具有优化的版本的源文件来使视频优化过程流水线化。高速缓存数据库也可以用来管理对源文件的多个优化的版本在整个视频优化器群集内的存储和高速缓存,从而源文件的被繁重地请求的优化的版本可以被复制到若干视频优化器上以减少向单个视频优化器路由的请求的数目。
视频优化器150、高速缓存数据库160和始发服务器170通常由可以包括参照图2更具体描述的部件和功能的一个或者多个计算机服务器形成。尽管在图1的环境100中示出每个视频优化器150、高速缓存数据库160和始发服务器170的仅一个服务器,但是不同实施例可以包括单个实体或者多个实体操作的多个web服务器和视频服务器。在其它实施例中,单个服务器也可以提供不同功能、比如作为web服务器递送web内容以及供应优化的视频内容。导引设备130、网络控制器140和用户设备110也可以包括与图2中描述的部件和功能相似的部件和功能。
计算机器架构
现在转向图2,它是图示示例机器的部件的框图,该机器能够从机器可读介质读取指令并且在处理器(或者控制器)中执行它们以实施所公开的用于按需实时网络监测和用户标识的系统。具体而言,图2示出示例形式为计算机系统200的机器的图解表示,在该计算机系统200内可以执行用于使机器执行这里讨论的方法中的任何一种或者多种方法的指令224(例如软件)。在备选实施例中,机器作为单独设备操作或者可以连接(例如联网)到其它机器。在联网部署中,机器可以在服务器-客户端网络环境中的服务器机器或者客户端机器的能力内或者作为对等(或者分布式)网络环境中的对等机器操作。
机器可以是服务器计算机、客户端计算机、个人计算机(PC)、写字板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、智能电话、web装置、网络路由器、交换机或者网桥或者能够执行指令224(依序或者以别的方式)的任何机器,这些指令指定机器将采取的动作。另外,尽管仅图示单个机器,但是也应当解读术语“机器”包括如下机器的任何汇集,这些机器个别地或者联合地执行指令224以执行这里讨论的方法中的任何一种或者多种方法。
示例计算机机器200包括配置为经由总线208相互通信的一个或者多个处理器202(例如中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、一个或者多个专用集成电路(ASIC)、一个或者多个射频集成电路(RFIC)或者这些各项的任何组合)、主存储器204和静态存储器206。计算机系统200还可以包括图形显示单元210(例如等离子体显示面板(PDP)、液晶显示器(LCD)、投影仪或者阴极射线管(CRT))。计算机系统200也可以包括也配置为经由总线208通信的字母数字输入设备212(例如键盘)、光标控制设备214(例如鼠标、跟踪球、操纵杆、运动传感器或者其它指示仪器)、存储单元216和网络接口设备220。
存储单元216包括机器可读介质222,在该机器可读介质上存储体现这里描述的方法或者功能中的任何一种或者多种方法或者功能的指令224(例如软件)。指令224(例如软件)也可以完全地或者至少部分地驻留于主存储器204内或者在计算机系统200执行这些指令期间驻留于处理器202内(例如处理器的高速缓存存储器),主存储器204和处理器202也构成机器可读介质。可以经由网络接口设备220通过网络120传输或者接收指令224(例如软件)。
尽管在一个示例实施例中示出机器可读介质222为单个介质,但是应当解读术语“机器可读介质”包括能够存储指令(例如指令224)的单个介质或者多个介质(例如集中式或者分布式数据库或者关联高速缓存和服务器)。也应当解读术语“机器可读介质”包括能够存储指令(例如指令224)的任何介质,这些指令用于由机器执行并且使机器执行这里公开的方法中的任何一种或者多种方法。术语“机器可读介质”包括但不限于形式为固态存储器、光介质和磁介质的数据贮存库。
优化的视频高速缓存
图3A-3D图示用于向用户设备提供优化的视频的示例事件踪迹。图3A具体地示出跟随有数据库查询的源文件请求的示例。图3B-D示出视频优化器可以对来自数据库的不同响应如何做出反应的各种实施例。在一些实施例中,视频优化器可以简单地转码视频本身,而在其它实施例中,视频优化器可能必须将请求重定向到其它视频优化器。示出用户设备110、网络控制器140、视频优化器150、高速缓存数据库160和始发服务器170。导引设备(在图3A-3D中未示出)可以管理跨网络120的在实体中的一个或者多个实体之间的流量流。在图3C和3D中,存在两个视频优化器150A和150B。这些视频优化器可以相互独立地操作、但是也可以共享在共享的本地高速缓存155中存储的优化的源文件。
图3A是图示用于在视频优化器处处置源视频请求的过程的示例事件踪迹。该过程包括用户设备110、网络控制器140、视频优化器150、高速缓存数据库160和始发服务器170。该过程在用户设备110生成302来自用户的针对源文件的请求时开始。例如用户可以浏览因特网站点,该因特网站点包含用户希望观看的视频。用户设备110生成302请求并且发送用以从始发服务器170取回视频源文件内容的HTTP取得视频请求304。在一个实施例中,导引设备130截获与向网络控制器140提供视频关联的请求和响应。导引设备130将视频内容请求重定向到网络控制器140,该网络控制器向始发服务器170转发修改的HTTP取得视频请求306。在修改中,网络控制器140指令始发服务器170利用用于源文件的视频信息做出响应。通过截获具有视频信息308的HTTP响应,网络控制器140可以确定是否应当向用户设备110转发HTTP重定向指令以便向视频优化器150指引用户设备110或者是否应当向用户设备110直接发送从始发服务器170取回的视频内容(即视频内容无需进一步优化)。
响应于接收到具有视频信息308的HTTP响应,网络控制器140使用HTTP取得视频304请求和HTTP响应308中的接收的信息以及关于网络的状况和用于监测流的用户设备的确定的信息以生成310ID密钥。ID密钥包括唯一地标识始发服务器170上的原始源文件的源签名和如下确定的优化参数,这些优化参数标识源文件的与用户设备兼容并且满足网络的能力的优化的版本。
网络控制器140确定用户设备110是否可以被重定向到视频优化器150以便获得源文件的可以通过转码源文件而直接生成的或者从视频优化器150的本地高速缓存155取回的优化的版本。网络控制器140确定用于HTTP响应请求的对应指令并且将HTTP重定向指令312与生成的密钥一起向用户设备110发送。在一个实施例中,HTTP重定向指令312可以是对HTTP响应请求308的重写。在其它实施例中,HTTP重定向指令312可以是向接收的HTTP响应请求308映射的指令或者对请求308的转译。在一个实施例中,网络控制器140随机地选择将用户设备110重定向到的视频优化器150。在另一实施例中,网络控制器140充当负载均衡器并且基于与网络控制器140关联的每个视频优化器的当前处理负载重定向用户设备110。例如网络控制器140监测视频优化器150工作负载并且可以将用户设备110重定向到当时具有最多可用处理容量或者最小数目的请求的视频优化器150。在接收到指令时,用户设备110向网络控制器140在它的HTTP重定向指令312中指示的视频优化器150发送HTTP取得请求和接收的密钥314。
在一个实施例中,一旦视频优化器150与关联于原有视频文件314的密钥一起接收到HTTP取得请求,视频优化器150查询高速缓存数据库160以确定优化的源文件是否存在。视频优化器150也可以确定它的本地高速缓存155是否包含源视频的优化的版本。高速缓存数据库160基于接收的密钥搜索318它的数据库以确定数据库是否包含与密钥匹配的任何参考密钥条目。在其中参考密钥条目与密钥匹配的实例中,高速缓存数据库160发送数据库答复320,该数据库答复指示源文件的优化的版本在另一视频优化器150上存在并且包括优化的源文件的位置。这称为高速缓存命中并且指示视频优化器150无需转码源文件以便向用户设备110发送源文件的优化的版本。在其中参考密钥条目都未与密钥匹配的实例中,高速缓存数据库160发送数据库答复320,该数据库答复指示源文件的请求的优化的版本未被存储在向高速缓存数据库160报告的任何视频优化器150的高速缓存中。这称为高速缓存未命中并且指示视频优化器150必须转码源文件以便向用户设备110发送优化的源文件。
图3B是图示用于响应于高速缓存未命中而向用户设备提供优化的源文件的过程的一个实施例的实例事件踪迹。如果有高速缓存未命中(例如ID密钥未与任何参考密钥匹配),则高速缓存数据库160通过发送数据库答复320来对视频优化器的查询做出响应,该数据库答复指示原始源文件的优化的版本未存在于与高速缓存数据库160关联的视频优化器150中的任何高速缓存中。响应于这一数据库答复320,视频优化器150必须转码原始源文件本身以便向用户设备提供源文件的优化的版本。视频优化器150通过向始发服务器170发送请求用于转码的原始源文件的HTTP取得视频请求322来开始转码过程。一旦视频优化器150从始发服务器170接收HTTP响应视频内容334,视频优化器150根据在ID密钥中提供的优化参数将视频转码336成用户设备110优化和可使用的格式。因此,该优化可以基于视频优化器150在用户设备110上接收的关于用户设备的规范和能力(例如屏幕大小、处理器、网络连接、存储空间、屏幕分辨率、缓冲器、高速缓存、操作系统等)以及网络性质(例如服务提供商、带宽、网络拥塞等)的信息。
在一个实施例中,视频优化器150在视频被转码时向用户设备110流式传输优化的视频以便最小化用户可能体验的延迟。在其它实施例中,优化的流338可以被视频优化器150略微地延迟,从而视频优化器150能够为在转码可能滞后时的实例构建缓冲器。在视频优化器150转码源文件的一部分时,视频优化器150向高速缓存数据库160发送数据库更新340以指示源文件的优化的版本的部分现在在视频优化器150的本地高速缓存中可用于将来媒体内容请求。数据库更新340可以包括源文件的优化的版本在本地高速缓存155中的位置、密钥和原始源文件的被转码的片段,该密钥包括从始发服务器170取回的原始源文件的源签名和源文件的优化的版本的参数。在一个实施例中,视频优化器150可以在整个视频被优化之前发送数据库更新340。因此,如果在转码过程仍然进行中之时接收另一请求,则可以向另一视频优化器150提供视频的已经转码的片段用于流式传输到另一用户设备110。响应于接收到数据库更新340,高速缓存数据库160更新342数据库条目,从而数据库条目160可以标识源文件的优化的版本的位置用于对将来数据库查询做出响应。
图3C是图示用于响应于高速缓存命中来向用户提供优化的源文件的过程的实施例的示例事件踪迹。在图3C中,两个视频优化器150A和150B存在以图示在视频优化器网络之间可能的数据传送。这些视频优化器150A、150B中的每个视频优化器与先前呈现的视频优化器150在功能上相同,但是每个视频优化器150A和150B可以让不同的优化的源文件存储于它们的本地高速缓存155中。响应于高速缓存命中(例如ID密钥与参考密钥匹配),高速缓存数据库160对第一视频优化器的查询做出响应以通过发送数据库答复320和332来标识源文件的优化的版本,该数据库答复指示原始源文件的优化的版本位于与高速缓存数据库160关联的视频优化器150B的本地高速缓存155中。
在用于处置高速缓存命中的过程350的一个实施例中,第一视频优化器150A可以从视频优化器150B取回或者流式传输源文件的优化的版本而又向用户设备110流式传输优化的源文件本身。在这一实施例中,第一视频优化器150A可以向第二视频优化器150B发送HTTP取得视频或者用于取回源文件的优化的版本的其它请求352。在接收到请求352时,第二视频优化器150B向第一视频优化器150A提供优化的流354。在一个实施例中,第一视频优化器150A可以在它向用户设备110发送优化的流356时本地高速缓存源文件的接收的优化的版本。例如视频优化器150A可以本地高速缓存频繁地请求的源文件的优化的版本。通过这一过程,第一视频优化器150A本地高速缓存优化的流356的从视频优化器150B接收的部分用于将来流式传输目的。在另一实施例中,第一视频优化器150A可以放弃高速缓存接收的优化的流354并且选择向用户设备110仅转发优化的流356。例如第一视频优化器150A可以响应于确定优化的源文件未被频繁地请求或者本地高速缓存155已经为满而不存储优化的流。可以在视频优化器150本身和/或在高速缓存数据库160个别地维护用于源文件的优化的版本的统计量,这些视频优化器和/或该高速缓存数据库可以用对查询的响应提供统计量。
在另一实施例中,第一视频优化器150A可以判决重定向用户设备110以从第二视频优化器150B取回优化的源文件而不是转发354、356优化的流。通过重定向用户设备110以从第二视频优化器150B取回优化的源文件,第一视频优化器150A释放处理器负载和网络带宽以处理其它媒体请求。第一视频优化器150A向用户设备110发送HTTP重定向指令362,该HTTP重定向指令指示希望的优化的源文件可以位于的视频优化器。用户设备110然后向在HTTP重定向指令中指示的第二视频优化器150B发送HTTP取得请求364,该HTTP取得请求是请求第二视频优化器150B流式传输请求的优化的源文件。响应于HTTP取得请求364,第二视频优化器150B向用户设备发送优化的流366。在一些实施例中,第一优化器150A生成包括生成的ID密钥的HTTP重定向,第二优化器150B使用该ID密钥以标识源文件的在它的本地高速缓存155中的优化的版本。第二优化器150B可以如先前参照图3A说明的那样生成另一数据库查询316。
在一些实例中,高速缓存命中错误可能由于各种不同原因而出现。在一个实例中,在高速缓存数据库160中存储的源签名、ID密钥或者参考条目可能与在视频优化器150中存储的源文件的优化的版本不匹配。例如高速缓存数据库160可能已经错误地保存或者破坏条目或者视频优化器150可能已经经历其中源文件的本地高速缓存的优化的版本被破坏或者删除的错误。在另一实施例中,视频优化器150可以向高速缓存数据库160发送请求删除条目的指令。与高速缓存数据库160关联的每个视频优化器150也可以周期性地同步本地高速缓存的资源与在高速缓存数据库160中存储的条目以确定是否需要从高速缓存数据库160刷新(flush)条目。
在另一实施例中,第一视频优化器150A可以被高速缓存数据库160重定向到具有某个优化的源文件的第二视频优化器150B。然而,第二视频优化器150B可能出于一些原因、比如由于服务器崩溃或者网络连接问题而不可用。第一视频优化器150A可以通过向高速缓存数据库160通知第二视频优化器150B不可用来做出响应。作为响应,高速缓存数据库160可以暂时地从它的可用服务器资源集合去除第二视频优化器150B直至第二视频优化器150B与高速缓存数据库160同步或者对来自另一视频优化器150的请求做出响应。
在一些实施例中,第一视频优化器150A可以检测到错误已经出现、比如第二视频优化器150B没有数据库160报告第二视频优化器150B所具有的优化的文件。响应于该错误,第二视频优化器150B可以比较它的当前服务器负载与第一视频优化器150A的服务器负载以确定哪个具有更多带宽。如果第一视频优化器150A比第二视频优化器150B具有更少负载,则第一视频优化器150A可以转码和优化源文件。如果第二视频优化器150B比第一视频优化器150A具有更少负载,则第二视频优化器150B可以转码和优化源文件。在一些实施例中,视频优化器150也可以比较与客户端的连接质量或者邻近作为对哪个视频优化器150转码源文件的判决因素。视频优化器150也可以向高速缓存数据库160发送数据库更新指令以更新与高速缓存的优化的源文件的位置有关的条目。
图3D是图示用于向用户设备提供优化的源文件并且响应于高速缓存命中来复制优化的源文件的过程的一个实施例的示例事件踪迹。与图3C相似,图3D包括用户设备110、网络控制器140、第一视频优化器150A、第二视频优化器150B和高速缓存数据库160。响应于第一视频优化器150A的数据库查询,高速缓存数据库160发送数据库答复320,该数据库答复指示第二视频优化器150B具有请求的优化的源文件。在一个实施例中,第一视频优化器150A可以在它的本地高速缓存155上复制第二视频优化器150B上存储的源文件的优化的版本。例如第一视频优化器150A可以确定源文件的特定优化的版本被经常请求并且如果源文件的优化的版本被本地存储和高速缓存则将节省处理时间。源文件的优化的版本可以体验高命中率从而压倒存储源文件的优化的版本的单个视频优化器150。因而,请求具有高命中率的源文件的优化的版本的另一优化器可以请求复制优化的版本用于在它的本地高速缓存155内存储以防止单个服务器被压倒。通过复制优化的源文件,视频优化器负载在向高速缓存数据库160报告的视频优化器之中平衡请求。在另一示例中,请求的优化的源文件可以仅代表原始源文件的总回放长度的片段。第一视频优化器150A可以向多个视频优化器150提交用以在转码其余未优化的片段之前收集原始源文件的尽可能多的优化的片段的请求。以下连同视频预览高速缓存一起讨论优化的源文件拼接。
在一个实施例中,第一视频优化器150A向具有源文件的希望的优化的版本的第二视频优化器150B发送HTTP取得视频请求和复制请求382。响应于该请求,第二视频优化器150向第一视频优化器150B发送优化的流384。在另一实施例中,第一视频优化器150A发送HTTP取得视频请求而不请求对源文件的优化的版本的复制。响应于该请求,第二视频优化器150B可以确定它被请求或者转码过程超负荷。第二视频优化器150B可以通过向第一视频优化器150A发送优化的流以及用以第一视频优化器150A的存储386复制的优化的视频的请求来对第一视频优化器150A做出响应。在第一视频优化器150A接收优化的流384时,它在本地高速缓存155中存储386源文件的优化的版本,同时向用户设备110发送优化的流388用于回放。由于第一视频优化器150A现在处理优化的源文件的本地高速缓存的版本,所以第一视频优化器150A向高速缓存数据库160发送用于数据库更新390的指令。响应于接收的指令,高速缓存数据库160更新392数据库以添加条目,该条目指示视频优化器150A和150B二者让源文件的具体的优化的版本被本地高速缓存。
视频预览高速缓存
优化的视频高速缓存的附加可能性是视频预览高速缓存。取代在视频优化器150本地高速缓存源文件的大量完全长度的优化的版本,可以存储甚至更大数目的、部分长度的优化的版本。因此,每个视频优化器150可以直接地开始处置更大数目的请求而无需开始转码过程或者从另一优化器流式传输优化的版本。例如,如果视频优化器150存储用户设备110请求的源文件的优化的版本的1分钟部分,则在用户在转码过程或者流式传输过程需要发生以无缝地递送流之前放弃视频(前30秒)时,无需附加处理。因此,预览高速缓存可以存储优化的版本的前30-60秒以减少在网络上使用的请求和带宽,因为大量用户未观看超过初始片段。因此,取代花费附加处理器带宽转码和存储用户经常不观看的源文件的片段,视频优化器150可以通过创建短暂的优化的视频预览来更高效地管理它的内容。更短的优化的视频也允许在视频优化器150中的相同有限存储高速缓存中存储源文件的更多优化的版本。流行文件仍然可以被存储在完全长度的优化的版本中、但是被更频繁地清除和更新以跟随用户趋势。
在一个实施例中,视频优化器150开始转码源文件并且向用户设备110流式传输优化的源文件。在用户取消用户设备110上的回放时,视频优化器150停止优化源文件并且存储已经优化的片段。视频优化器150可以用条目更新高速缓存数据库160,该条目指示优化的源文件、与原始源文件关联的密钥并且也指示视频的被优化的片段。如果以后用户请求源文件的相同片段,则高速缓存数据库160可以将请求视频优化器150重定向到包含优化的视频片段的正确本地高速缓存155。在其它实施例中,可以在各种视频优化器150之中分发源文件的优化的版本的部分。
在一些实施例中,用户可以请求源文件的尚未完全地优化的片段。在这一实施例中,视频优化器150可以确定已经优化的视频片段以便防止必须重新转码源文件的已经存在的优化的片段。在视频优化器150向用户设备流式传输优化的视频片段时,它继续监测视频转码过程是否正在迫近先前尚未优化的片段。视频优化器150可以开始转码源文件的未从任何关键帧(key frame)优化的部分并且继续转码直至它到达先前优化的视频片段的开始。在转码过程到达先前优化的视频片段的开始之前或者之时,视频优化器150请求来自片段被存储于的另一视频优化器的先前优化的视频片段。响应于请求,另一视频优化器向初始视频优化器150发送请求的优化的视频片段,该初始视频优化器拼接接收的优化的视频片段与视频优化器本身在上个关键帧转码的片段。
例如可以在视频优化器150的群集中高速缓存三个连续视频片段,每个视频优化器150保持不同片段。第一视频优化器可以流式传输来自源文件的优化的版本的存储的预览并且随后从存储的预览的上个关键帧开始取回源文件并且从上个关键帧转码源文件从而在关键帧拼接新转码的流以在用户设备110上提供无缝回放。第一视频优化器继续转码源文件并且流式传输优化的版本直至它到达在另一视频优化器上标识的优化的视频片段的开始。第一视频优化器然后可以从对应视频优化器取回已经转码的片段。第一视频优化器150可以继续请求来自其它视频优化器的片段直至用户停止观看视频或者没有优化的片段可用于源文件的一部分。在没有优化的片段可用于源文件的一部分的情况下,然后初始视频优化器150从上个优化的片段离开处转码源文件。如果希望,则视频优化器也可以本地高速缓存整个流以便使它可用于将来的优化的视频请求。
在本地高速缓存管理期间,视频优化器150可以判决仅刷新源文件的优化的版本的部分以便在存储驱动中为源文件的其它优化的版本创建空的空间。例如可以分割和处理源文件的30分钟优化的版本,从而仅保存源文件的优化的版本的第一分钟而从本地高速缓存155清除源文件的优化的版本的其余部分。本地高速缓存155清空释放大量存储空间而仍然为用户保留快速响应和初始流式传输时间、尤其是对于比其它源文件更少流行的源文件的优化的版本。响应于删除和其它高速缓存管理操作,视频优化器150向高速缓存数据库160发送数据库更新以更新在数据库中存储的条目。
预测编码改进
图4图示使用高速缓存的首部的预测编码的一个实施例的流程图。在一个实施例中,视频优化器150为包括首部的源文件执行图4中所示过程。例如可以对于MP4文件、AVI文件、MPEG文件、MOV文件、MKV文件、OGM文件和其它类型的媒体文件生成首部。为了清楚,在以下描述中参考MP4源文件和首部,但是其它类型的媒体文件也可以适用。在生成MP4源文件的优化的版本时,在开始转码过程之前基于原始源文件和/或原始源文件首部创建预测首部。预测首部包含与源文件有关的基本信息以便媒体播放器识别和播放源文件的优化的版本。例如预测首部可以包含信息、比如源简档、帧/采样率、帧类型、输出采样大小、每个输出帧的大小、使用的编码、压缩等。由于在完全地转码源文件之前创建预测首部以允许实时流式传输,所以视频优化器150必须预测用于向首部中插入的信息。作为结果,首部可以包含对于转码在转码的媒体中的帧而言必需的媒体容器大小的过度估计或者估计不足。为了补偿帧大小的估计不足,视频优化器150可以具有紧缩转码帧以减少它们的质量并且因此减少它们的大小,这可能引起源文件的优化的版本中的失真并且需要附加处理时间。为了补偿帧大小的过度估计,可以向帧添加冗余比特或者数据以填充帧以便满足预先指定的大小。因此,源文件的优化的版本可以包含过度优化的帧。
可以通过执行对转码源文件的多次通行而每次通行使用先前生成的预测首部以更准确地预测用于下一通行的新首部数据来减少失真和估计的质量的差异。视频优化器150可以通过减少一些帧中必需的填充而平滑整个优化的源文件的质量来修复首部生成中的错误。通过减少优化的源文件中的填充,视频优化器150也能够减少为了本地高速缓存优化的源文件而需要的存储空间。然而由于经常在飞行中(on-the-fly)执行视频转码和优化,所以视频对原始源文件执行多次通行是不可行的。此外,这些通行不应不必要地执行、因此可以仅在需要向用户设备110提供源文件时被执行。
在一个实施例中,优化的视频高速缓存提供一种用于改进预测编码的系统。在首次转码原始源文件时,在常规方法中生成预测首部,该方法涉及到对源文件或者源文件的小部分和/或源文件的首部使用预测算法以对源文件的输出的优化的版本的特性进行最佳猜测。预测首部可以与源文件的优化的版本一起存储于视频优化器150的高速缓存中或者具有与源文件的优化的版本对应的密钥的高速缓存数据库160中并且也可以被取回用于在改进以后首部预测时使用。可以更新在转码源文件之后存储的预测首部以包括相对于在转码期间生成的源文件的优化的版本而言的信息。例如更新的预测首部可以包括优化的版本的实际帧大小、源文件的初始帧大小、由于大小太大而需要重新转码的上个帧大小和预测首部对于源文件的优化的版本而已经被更新的次数。因此,以后转码过程与第一通行比较可以产生改进的优化和更高的质量,如果已经完成阈值数目的通行,则视频优化器150可以直接利用预测首部信息而未执行另一通行。
如图4中所示,在视频优化器150接收针对转码源文件的请求时,视频优化器150从始发服务器170取回402原始源文件并且也接收原始源文件首部。响应于接收到原始源文件首部和ID密钥,视频优化器150查询404高速缓存数据库160以确定高速缓存数据库160是否具有源文件的任何对应的先前优化的版本和首部的位置。在数据库答复中,高速缓存数据库160确定406源文件的优化的版本和关联首部是否位于另一视频优化器的本地高速缓存155中,已经高速缓存首部信息,但是源文件的请求的优化的版本未存在于任何本地高速缓存135中,或者源文件的优化的版本和关联首部二者未存在于视频优化器群集中。在后一种情况下,转码过程可以如参照图3A-D描述的那样继续而用于源文件的首部信息和/或用于第一通行的优化的版本的预测首部信息(和基于该预测首部信息的更新的首部信息)在高速缓存数据库160中被本地存储或者更新用于由视频优化器150将来使用。在一些实施例中,用于相同源文件、但是不同的优化的版本的预测首部信息可以用来辅助生成源文件的更高或者更低质量的新的优化的版本。
在其中优化的源文件和关联首部在高速缓存数据库160中和/或在另一视频优化器可用的一个实施例中,初始视频优化器150可以取回402原始源文件首部信息和/或为源文件而生成的ID密钥并且查询404高速缓存数据库160以取回源文件信息的任何先前生成的预测首部和优化的版本。如果初始视频优化器150接收源文件信息的先前生成的预测首部和优化的版本,则初始视频优化器150确定是否应当重新转码源文件的优化的版本以便在流式传输到用户设备110之前用另一通行提高优化的版本的质量或者生成(例如不同质量水平的)不同的优化的版本。
视频优化器150分析412首部和文件的属性以基于分析来生成414新的预测首部。在一个实施例中,视频优化器可以使用预测算法来分析412优化的源文件首部、源文件的优化的版本、原始源文件和/或原始源文件首部以更好地确定新预测首部中的信息。因此,利用每个后续通行,可以分析412先前生成的首部以微调新会话的预测算法以生成用于源文件的优化的版本的更准确首部。新生成的首部然后与优化的源文件430被存储并且在高速缓存数据库160中被更新用于以后的优化的视频请求和预测编码操作。为了辅助将来预测编码操作,视频优化器150可以记录关于转码过程的信息并且更新430预测首部以包括信息、比如优化的会话的实际帧大小、源文件的初始帧大小、由于太大大小而需要重新转码的上个帧大小和预测首部对于源文件的优化的版本而已经被更新的次数。
在其中不存在406先前优化的源文件首部的实例中,视频优化器150预测使用它的最佳猜测来预测422用于新的优化的源文件的属性。使用这一方法,视频优化器150将经常基于预测来产生生成424的首部的不准确性从而造成对优化的视频帧大小的过度估计或者估计不足。如先前提到的那样,视频优化器150必须减少帧的质量以补偿估计不足并且对于过度估计利用冗余比特填充帧。尽管以后通行可以减少这些错误,但是视频优化器150在流式传输操作期间执行第二通行经常是不可行的。新预测的首部与优化的源文件被存储430用于以后的优化的视频请求和预测编码操作。为了辅助将来预测编码操作,视频优化器150可以记录关于转码过程的信息并且更新430预测首部以包括信息、比如优化的版本的实际帧大小、源文件的初始帧大小和由于大小太大而需要重新编码的上个帧大小。
附加配置考虑
通过引入高速缓存数据库,公开的配置有益地允许快速地取回和向用户设备流式传输优化的源文件而无需优化器来重新转码源文件。在常规系统中,向用户设备流式传输源文件而无任何优化,这是对有限网络带宽的低效率使用,或者每当用户请求源文件时优化源文件,这是对用于每个优化器的处理容量的低效率使用。由于优化器经常分离并且相互独立地操作,所以引入高速缓存数据库允许用于确定哪个本地高速缓存包含某些优化的源文件的中央管理目录。因此可以更快地向用户提供优化的源文件而无需重新转码。
贯穿本说明书,多个实例可以实施描述为单个实例的部件、操作或者结构。虽然图示和描述一种或者多种方法的个别操作为分离操作,但是可以并行地执行个别操作中的一个或者多个操作并且未要求按照所示顺序执行操作。可以实施在示例配置中作为分离部件而呈现的结构和功能为组合的结构或者部件。相似地,可以实施作为单个部件而呈现的结果和功能为分离部件。这些和其它变化、修改、添加以及改进落入这里的主题内容的范围内。
这里描述某些实施例为包括逻辑或者多个部件、模块或者机构。模块可以构成软件模块(例如在机器可读介质中或者在传输信号中体现的代码)或者硬件模块。硬件模块是能够执行某些操作的有形单元并且可以用某种方式来配置或者布置。在示例实施例中,一个或者多个计算机系统(例如单独客户端或者服务器计算机系统)或者计算机系统的一个或者多个硬件模块(例如处理器或者处理器102组)可以由软件(例如应用或者应用部分)配置为操作用于执行如这里描述的某些操作的硬件模块。
在各种实施例中,可以机械地或者电子地实施硬件模块。例如硬件模块可以包括持久地配置(例如作为专用处理器、比如现场可编程门阵列(FPGA)或者专用集成电路(ASIC))为执行某些操作的专用电路装置或者逻辑。硬件模块也可以包括被软件暂时地配置为执行某些操作的可编程逻辑或者电路装置(例如作为包含于通用处理器或者其它可编程处理器内)。将认识用于机械地、在专用和持久地配置的电路装置中或者在暂时地配置的电路装置(例如由软件配置)的判决可以由成本和时间考虑驱动。
这里描述(如用图3A-D和图4描述)的示例方法的各种操作可以至少部分由(例如软件)暂时地配置或者持久地配置为执行相关操作的一个或者多个处理器(例如处理器202)执行。无论是暂时地还是持久地配置,这样的处理器可以构成操作用于执行一个或者多个操作或者功能的由处理器实施的模块。这里所称模块可以在一些示例实施例中包括处理器实施的模块。
在对作为位或者二进制数字信号存储于机器存储器(例如计算机存储器204)内的数据的操作的算法或者符号表示方面呈现本说明书的一些部分。这些算法或者符号表示是数据处理领域普通技术人员用来向本领域其他技术人员传达他们的工作实质的技术的示例。如这里所用,“算法”是促成所需结果的操作自一致序列或者相似处理。在本文中,算法和操作涉及到对物理数量的物理操控。通常地但是并非必需地,这样的数量可以采用能够由机器存储、访问、传送、组合、比较或者以别的方式操控的电、磁或者光信号。主要出于普遍用法的原因而使用诸如“数据”、“内容”、“位”、“值”、“元素”、“符号”、“字符”、“项”、“数”、“数值”等字眼来指代这些信号有时是便利的。然而这些字眼仅为便利标记并且将与适当物理数量关联。
除非另有具体陈述,这里使用诸如“处理”、“计算”、“运算”、“确定”、“呈现”、“显示”等字眼的讨论可以指代如下机器(例如计算机)的动作或者过程,该机器操控或者变换在一个或者多个存储器(例如易失性存储器、非易失性存储器或者其组合)、寄存器或者接收、存储、发送或者显示信息的其它机器部件内表示为物理(例如电子、磁或者光)量的数据。
如这里所用,对“一个实施例”或者“实施例”的任何引用意味着结合该实施例描述的特定元素、特征、结构或者特性被包括在至少一个实施例中。短语“在一个实施例中”出现于说明书中的各处未必都指代相同实施例。
可以使用表达“耦合”和“连接”及其派生表达来描述一些实施例。例如可以使用术语“耦合”来描述一些实施例以指示两个或者更多单元相互直接物理或者电接触。然而术语“耦合”也可以意味着两个或者更多单元未相互直接接触、但是仍然相互配合或者交互。实施例在本文中不受限制。
如这里所用,术语“包括”、“具有”或者其任何其它变化旨在于覆盖非穷举包括。例如包括要素列表的过程、方法、物品或者装置未必仅限于那些要素、但是可以包括未明确地列举的或者这样的过程、方法、物品或者装置固有的其它要素。另外除非相反明示,“或者”指代包括意义的或者而不是穷举意义的或者。例如以下各项中的任一项满足条件A或者B:A为真(或者存在)并且B为假(或者不存在)、A为假(或者不存在)并且B为真以及A和B均为真(或者存在)。
此外,对“一个/一种”的使用用来描述这里的实施例的要素和部件。这样做仅为了方便并且给出本发明的一般意义。应当解读这一描述包括一个或者至少一个,并且单数除非明显的是它另有含义则也包括多个。
在阅读本公开内容时,本领域技术人员将认识用于如下系统和过程的更多附加备选结构和功能设计,该系统和过程用于通过这里的公开的原理向交互式视频广告提供HTML铺垫。因此尽管已经图示和描述具体实施例和应用,但是将理解公开的实施例不限于这里公开的精确构造和部件。可以在这里公开的方法和装置的布置、操作和细节上做出本领域技术人员将清楚的各种修改、改变和变化而未脱离在所附权利要求中定义的精神实质和范围。

Claims (14)

1.一种用于优化的视频高速缓存的方法,包括:
由视频优化器维护高速缓存数据库,所述高速缓存数据库包括与在多个视频优化器上存储的、源文件的多个优化的版本对应的多个参考密钥,每个参考密钥指定源文件的优化的版本的参数并且包括所述源文件的标识符;
在所述视频优化器处从客户端设备接收用以优化原始源文件的请求,所述原始源文件被存储在始发服务器上并且所述请求包括密钥,所述密钥指定用于优化所述原始源文件的参数和所述原始源文件的标识符;
基于所述密钥生成向所述高速缓存数据库的查询;
从所述高速缓存数据库接收响应,所述响应指示所述密钥是否与在所述数据库中维护的参考密钥匹配;以及
响应于指示所述密钥与所述参考密钥匹配的来自所述高速缓存数据库的所述响应,向所述客户端设备发送包括所述密钥和存储与所述参考密钥相对应的所述源文件的所述优化的版本的视频优化器的地址的、针对所述客户端设备的、用以请求所述原始源文件的所述优化的版本的重定向请求。
2.根据权利要求1所述的方法,还包括,响应于指示所述密钥与所述参考密钥匹配的来自所述高速缓存数据库的所述响应:
向由所述参考密钥指定的所述视频优化器发送针对所述原始源文件的、在所述视频优化器上存储的所述优化的版本的请求。
3.根据权利要求2所述的方法,还包括:
存储接收到的、所述原始源文件的优化的版本的部分。
4.根据权利要求2所述的方法,还包括:
与针对所述原始源文件的、在由所述参考密钥指定的所述视频优化器上存储的所述优化的版本的所述请求一起发送用以在所述视频优化器上复制在所述视频优化器上存储的所述原始源文件的所述优化的版本的请求;以及
向所述高速缓存数据库发送用于响应于存储了所述原始源文件的、在所述视频优化器中存储的所述优化的版本来更新所述高速缓存数据库的指令。
5.根据权利要求4所述的方法,还包括:
查询所述始发服务器以确定在所述视频优化器上存储的所述原始源文件的所述优化的版本是否与所述原始源文件的视频长度匹配。
6.根据权利要求1所述的方法,其中所述密钥包括源签名,所述源签名是所述原始源文件的一部分的哈希。
7.根据权利要求1所述的方法,其中所述高速缓存数据库包括数据条目,所述数据条目标识存储所述原始源文件的优化的版本的多个优化服务器,所述条目通过向所述高速缓存数据库发送的、用以更新所述原始源文件的所述优化的版本被存储的位置的指令来修改。
8.根据权利要求1所述的方法,其中所述原始源文件的所存储的优化的版本包括整个所生成的优化的源文件的预定义的片段。
9.根据权利要求1所述的方法,还包括,响应于指示所述密钥不与用于所述原始源文件的优化的版本的任何参考密钥匹配的来自所述高速缓存数据库的所述响应:
向所述始发服务器发送针对所述原始源文件的请求;
从所述始发服务器流式传输所述原始源文件;
通过基于预定转码设置转码流式传输的原始源文件来生成所述原始源文件的所述优化的版本并且存储所述原始源文件的所述优化的版本;
用流发送流式传输所述原始源文件的所述优化的版本以用于在所述客户端设备上回放;以及
向所述高速缓存数据库发送用于用与在所述优化服务器处存储的所述原始源文件的所述优化的版本对应的参考密钥来更新所述高速缓存数据库的指令。
10.根据权利要求1所述的方法,其中响应于所述密钥中的所述原始源文件的所述标识符与所述参考密钥中的所述源文件的所述标识符匹配并且由所述密钥指定的所述优化参数与所述源文件的优化的版本的所述参数匹配,所述密钥与所述参考密钥匹配。
11.一种用于优化的视频高速缓存的系统,包括:
处理器,并且所述处理器被配置为:
由视频优化器维护高速缓存数据库,所述高速缓存数据库包括与在多个视频优化器上存储的、源文件的多个优化的版本对应的多个参考密钥,每个参考密钥指定源文件的优化的版本的参数并且包括所述源文件的标识符;
从客户端设备接收用以优化原始源文件的请求,所述原始源文件被存储在始发服务器上并且所述请求包括密钥,所述密钥指定用于优化所述原始源文件的参数和所述原始源文件的标识符;
基于所述密钥生成向所述高速缓存数据库的查询;
从所述高速缓存数据库接收响应,所述响应指示所述密钥是否与在所述数据库中维护的参考密钥匹配;以及
响应于指示所述密钥与所述参考密钥匹配的来自所述高速缓存数据库的所述响应,向所述客户端设备发送包括所述密钥和存储与所述参考密钥相对应的所述源文件的所述优化的版本的所述视频优化器的地址的、针对所述客户端设备的、用以请求所述原始源文件的所述优化的版本的重定向请求。
12.根据权利要求11所述的系统,其中所述处理器还被配置为,响应于指示所述密钥与所述参考密钥匹配的来自所述高速缓存数据库的所述响应:
向由所述参考密钥指定的所述视频优化器发送针对所述原始源文件的、在所述视频优化器上存储的所述优化的版本的请求。
13.根据权利要求11所述的系统,其中所述处理器还被配置为,响应于指示所述密钥不与用于所述原始源文件的优化的版本的任何参考密钥匹配:
向所述始发服务器发送针对所述原始源文件的请求;
从所述始发服务器流式传输所述原始源文件;
通过基于预定转码设置转码流式传输的原始源文件来生成所述原始源文件的所述优化的版本并且存储所述原始源文件的所述优化的版本;
用流发送流式传输所述原始源文件的所述优化的版本以用于在所述客户端设备上回放;以及
向所述高速缓存发送用于用与在所述优化服务器处存储的所述原始源文件的所述优化的版本对应的参考密钥来更新所述高速缓存数据库的指令。
14.根据权利要求11所述的系统,其中响应于所述密钥中的所述原始源文件的所述标识符与所述参考密钥中的所述源文件的所述标识符匹配并且由所述密钥指定的所述优化参数与所述源文件的优化的版本的所述参数匹配,所述密钥与所述参考密钥匹配。
CN201380046871.0A 2012-07-18 2013-07-18 准时分布式视频高速缓存 Active CN104604240B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261673188P 2012-07-18 2012-07-18
US61/673,188 2012-07-18
PCT/US2013/051126 WO2014015168A2 (en) 2012-07-18 2013-07-18 Just-in-time distributed video cache

Publications (2)

Publication Number Publication Date
CN104604240A CN104604240A (zh) 2015-05-06
CN104604240B true CN104604240B (zh) 2018-01-26

Family

ID=49947523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380046871.0A Active CN104604240B (zh) 2012-07-18 2013-07-18 准时分布式视频高速缓存

Country Status (6)

Country Link
US (3) US9154361B2 (zh)
EP (1) EP2875635B1 (zh)
JP (1) JP5961850B2 (zh)
KR (1) KR101629338B1 (zh)
CN (1) CN104604240B (zh)
WO (1) WO2014015168A2 (zh)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9819984B1 (en) 2007-03-26 2017-11-14 CSC Holdings, LLC Digital video recording with remote storage
US9094714B2 (en) 2009-05-29 2015-07-28 Cognitive Networks, Inc. Systems and methods for on-screen graphics detection
EP2706467A1 (en) * 2012-09-05 2014-03-12 Awingu Nv Method for accessing a content item in a cloud storage system, and a corresponding cloud broker, cloud cache agent and client application
EP2893687A1 (en) * 2012-09-07 2015-07-15 Nokia Solutions and Networks Oy Mechanism and apparatus to perform cooperative resource management in wireless networks
US8782285B1 (en) * 2013-12-06 2014-07-15 Limelight Networks, Inc. Lazy transcoding and re-transcoding of media objects in an online video platform
US20140115056A1 (en) * 2012-10-22 2014-04-24 Apple Inc. Book thinning
US9183049B1 (en) * 2013-01-25 2015-11-10 Amazon Technologies, Inc. Processing content using pipelines
US8813245B1 (en) 2013-01-25 2014-08-19 Amazon Technologies, Inc. Securing content using pipelines
US9219784B2 (en) 2013-03-07 2015-12-22 International Business Machines Corporation Synchronization of a server side deduplication cache with a client side deduplication cache
US9674255B1 (en) * 2014-03-26 2017-06-06 Amazon Technologies, Inc. Systems, devices and methods for presenting content
US9800904B2 (en) * 2014-05-13 2017-10-24 Piksel, Inc. Media asset duplication
US9525893B2 (en) * 2014-05-28 2016-12-20 Verizon Patent And Licensing Inc. Methods and systems for managing storage of media program copies within a network digital video recording system
CN104159249B (zh) * 2014-07-30 2018-05-18 华为技术有限公司 一种业务数据管理的方法、装置及系统
JP6331967B2 (ja) * 2014-10-27 2018-05-30 ソニー株式会社 通信装置および通信方法
US9936040B2 (en) * 2014-12-19 2018-04-03 Citrix Systems, Inc. Systems and methods for partial video caching
US10165033B2 (en) * 2014-12-30 2018-12-25 Sling Media LLC Live encoding for distribution of long tail media content
BR112017016123A2 (pt) 2015-01-30 2018-04-17 Inscape Data Inc servidor de correspondência para identificação de conteúdo de vídeo que é exibido por um sistema de televisão, método executado por computador, e produto de programa informático concretamente incorporado a um meio de armazenamento de leitura por máquina permanente de um dispositivo de informática
US20160226790A1 (en) * 2015-01-30 2016-08-04 Comcast Cable Communications, Llc Provisioning and managing resources
US20160283436A1 (en) * 2015-03-23 2016-09-29 Comcast Cable Communications, Llc Distributed microcaching for content delivery
KR101668957B1 (ko) * 2015-07-09 2016-10-24 라인 가부시키가이샤 통신 비용의 절감을 위한 컨텐츠 스트리밍 서비스 방법 및 시스템
US10080062B2 (en) 2015-07-16 2018-09-18 Inscape Data, Inc. Optimizing media fingerprint retention to improve system resource utilization
AU2016291690B2 (en) * 2015-07-16 2020-08-27 Inscape Data, Inc. Prediction of future views of video segments to optimize system resource utilization
AU2016291674B2 (en) 2015-07-16 2021-08-26 Inscape Data, Inc. Systems and methods for partitioning search indexes for improved efficiency in identifying media segments
EP3323245B1 (en) 2015-07-16 2021-08-25 Inscape Data, Inc. Detection of common media segments
CN106612456A (zh) * 2015-10-26 2017-05-03 中兴通讯股份有限公司 网络视频播放方法和系统及用户终端、家庭流服务节点
JPWO2017145781A1 (ja) * 2016-02-25 2018-10-04 日本電信電話株式会社 ペーシング制御装置、ペーシング制御方法、及びプログラム
JP6483044B2 (ja) * 2016-03-17 2019-03-13 Kddi株式会社 保持しているオブジェクトの変換を行う転送装置及びプログラム
US10225309B1 (en) 2016-03-22 2019-03-05 Amazon Technologies, Inc. Monitoring of media pipeline health using tracing
US10200428B1 (en) 2016-03-30 2019-02-05 Amazon Technologies, Inc. Unicast routing of a media stream to subscribers
CN108243116B (zh) * 2016-12-23 2021-09-14 华为技术有限公司 一种流量控制方法及交换设备
US10904329B1 (en) * 2016-12-30 2021-01-26 CSC Holdings, LLC Virtualized transcoder
EP3410728A1 (en) * 2017-05-30 2018-12-05 Vestel Elektronik Sanayi ve Ticaret A.S. Methods and apparatus for streaming data
US10742736B2 (en) 2017-12-19 2020-08-11 Western Digital Technologies, Inc. Integrated erasure coding for data storage and transmission
US11653040B2 (en) * 2018-07-05 2023-05-16 Mux, Inc. Method for audio and video just-in-time transcoding
US10649980B2 (en) * 2018-03-07 2020-05-12 Xanadu Big Data, Llc Methods and systems for resilient, durable, scalable, and consistent distributed timeline data store
US20190394512A1 (en) * 2018-06-25 2019-12-26 Verizon Digital Media Services Inc. Low Latency Video Streaming Via a Distributed Key-Value Store
US11695978B2 (en) 2018-07-05 2023-07-04 Mux, Inc. Methods for generating video-and audience-specific encoding ladders with audio and video just-in-time transcoding
US11128916B2 (en) * 2018-08-21 2021-09-21 Rovi Guides, Inc. Systems and methods for real-time adaptive bitrate transcoding and transmission of transcoded media
CN109639813B (zh) * 2018-12-24 2022-04-12 北京京东尚科信息技术有限公司 视频文件传输处理方法及装置、电子设备和存储介质
US10972761B2 (en) * 2018-12-26 2021-04-06 Purdue Research Foundation Minimizing stall duration tail probability in over-the-top streaming systems
US11037205B2 (en) 2019-01-07 2021-06-15 Alphonso Inc. Bidding agent using ad opportunity source to limit ad reach
US10803480B2 (en) 2019-01-07 2020-10-13 Alphonso Inc. Bidding agent with optimized reach limitation
US10873785B2 (en) * 2019-01-07 2020-12-22 Alphonso Inc. Content recommendation system and method-based implicit ratings
US11151609B2 (en) 2019-01-07 2021-10-19 Alphonso Inc. Closed loop attribution
CN109889919A (zh) * 2019-03-27 2019-06-14 深圳市网心科技有限公司 一种视频转码方法、装置、系统及介质
US11527266B2 (en) * 2019-04-04 2022-12-13 Wowza Media Systems, LLC Artificial intelligence analysis of multimedia content
CN110099293B (zh) * 2019-04-30 2021-06-01 广州酷狗计算机科技有限公司 播放视频的方法、装置、设备及可读存储介质
US11133037B1 (en) 2020-07-17 2021-09-28 Idomoo Ltd System and method for generating dynamic media
CN112203031B (zh) * 2020-08-12 2023-06-02 深圳市豪恩汽车电子装备股份有限公司 数字视频缓存系统及方法
CN112770132B (zh) * 2021-01-05 2023-01-24 北京东方网信科技股份有限公司 一种代理缓存中降低mp4视频出口流量的方法及系统
US11284165B1 (en) 2021-02-26 2022-03-22 CSC Holdings, LLC Copyright compliant trick playback modes in a service provider network
US20220321623A1 (en) * 2021-04-05 2022-10-06 Ademco Inc. Establishing a producer / consumer session in the cloud
US11650957B2 (en) * 2021-06-01 2023-05-16 International Business Machines Corporation Receiving at a cache node notification of changes to files in a source file system served from a cache file system at the cache node
US11645238B2 (en) 2021-06-01 2023-05-09 International Business Machines Corporation Notifying a cache file system of changes to files in a source file system served from the cache file system
US11848990B2 (en) * 2021-10-15 2023-12-19 Siden, Inc. Method and system for distributing and storing content using local clouds and network clouds

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE512880C2 (sv) * 1998-07-03 2000-05-29 Ericsson Telefon Ab L M Ett cacheservernät
US7028096B1 (en) * 1999-09-14 2006-04-11 Streaming21, Inc. Method and apparatus for caching for streaming data
US7636792B1 (en) * 2001-07-13 2009-12-22 Oracle International Corporation Methods and systems for dynamic and automatic content creation for mobile devices
US6954456B2 (en) * 2001-12-14 2005-10-11 At & T Corp. Method for content-aware redirection and content renaming
US8484282B2 (en) * 2002-03-21 2013-07-09 International Business Machines Corporation High-speed content transformation engine
US20030204602A1 (en) * 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US20040098463A1 (en) * 2002-11-19 2004-05-20 Bo Shen Transcoding-enabled caching proxy and method thereof
US7188216B1 (en) * 2002-12-13 2007-03-06 Vignette Corporation Method and system for an extensible caching framework
WO2004100010A1 (en) * 2003-04-30 2004-11-18 Iptv Systems, Llc Secure, continuous, proxy-optimized, device-to-device data download reception system and method of use
US20050165941A1 (en) * 2004-01-22 2005-07-28 Edward Eytchison Methods and apparatuses for streaming content
US20060190616A1 (en) * 2005-02-04 2006-08-24 John Mayerhofer System and method for aggregating, delivering and sharing audio content
FR2884671B1 (fr) * 2005-04-19 2007-07-27 Streamezzo Sa Procede d'optimisation de la gestion d'un cache de serveur pouvant etre consulte par des terminaux clients de caracteristiques differentes
US8181107B2 (en) * 2006-12-08 2012-05-15 Bytemobile, Inc. Content adaptation
US20100281042A1 (en) * 2007-02-09 2010-11-04 Novarra, Inc. Method and System for Transforming and Delivering Video File Content for Mobile Devices
WO2008098249A1 (en) * 2007-02-09 2008-08-14 Dilithium Networks Pty Ltd. Method and apparatus for the adaptation of multimedia content in telecommunications networks
US7962640B2 (en) * 2007-06-29 2011-06-14 The Chinese University Of Hong Kong Systems and methods for universal real-time media transcoding
US7818355B2 (en) * 2007-11-07 2010-10-19 Mills Brendon W System and method for managing content
US8145779B2 (en) * 2008-04-08 2012-03-27 Microsoft Corporation Dynamic server-side media transcoding
US8290036B2 (en) * 2008-06-11 2012-10-16 Optibase Technologies Ltd. Method, apparatus and system for concurrent processing of multiple video streams
US8706910B2 (en) * 2008-10-28 2014-04-22 Panzura, Inc. Dynamically adaptive network-based data processing system and method
JP2010273298A (ja) * 2009-05-25 2010-12-02 Broad Earth Inc コンテンツ配信システム、配信制御装置及び配信制御プログラム
CN102055964A (zh) * 2009-11-11 2011-05-11 腾讯科技(深圳)有限公司 一种多媒体文件转码方法和转码器
KR101657196B1 (ko) * 2009-12-01 2016-09-19 밴트릭스 코오퍼레이션 캐시를 이용한 효율적인 미디어 배송 시스템 및 방법
WO2011106009A1 (en) 2010-02-26 2011-09-01 Mobovivo, Inc. Intelligent optimization of video encoding during video content delivery
US9420055B2 (en) 2010-05-13 2016-08-16 Futurewei Technologies, Inc. System, apparatus for content delivery for internet traffic and methods thereof
WO2012016226A1 (en) * 2010-07-30 2012-02-02 Bytemobile, Inc. Systems and methods for video cache indexing
US8458362B2 (en) * 2010-09-30 2013-06-04 Comcast Cable Communications, Llc Delivering content in multiple formats
US8762488B2 (en) * 2010-11-18 2014-06-24 Opera Software Ireland Limited Client-selected network services
WO2012088023A2 (en) * 2010-12-20 2012-06-28 Akamai Technologies, Inc. Methods and systems for delivering content to differentiated client devices
US8639718B2 (en) * 2011-12-02 2014-01-28 Cisco Technology, Inc. Systems and methods for client transparent video readdressing

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Optimized cache management for scalable video streaming;Li et al.;《Proceedings of the 15th international conference on Multimedia. ACM, 2007》;20131230;第799-800页 *

Also Published As

Publication number Publication date
US9154361B2 (en) 2015-10-06
KR20150038170A (ko) 2015-04-08
US20180007105A1 (en) 2018-01-04
KR101629338B1 (ko) 2016-06-13
US20140025837A1 (en) 2014-01-23
US20150381677A1 (en) 2015-12-31
EP2875635A4 (en) 2016-01-20
EP2875635B1 (en) 2019-09-04
US10484442B2 (en) 2019-11-19
JP2015530781A (ja) 2015-10-15
WO2014015168A3 (en) 2014-03-27
EP2875635A2 (en) 2015-05-27
JP5961850B2 (ja) 2016-08-02
CN104604240A (zh) 2015-05-06
US9800633B2 (en) 2017-10-24
WO2014015168A2 (en) 2014-01-23

Similar Documents

Publication Publication Date Title
CN104604240B (zh) 准时分布式视频高速缓存
US11853342B2 (en) Efficient data distribution to multiple devices
US11089358B2 (en) Method of unscrambling television content on a bandwidth
US11553196B2 (en) Media storage
CN103583040A (zh) 实时视频检测器
US20210385121A1 (en) Method and system for architecture analysis of an enterprise
US10516911B1 (en) Crowd-sourced media generation
KR20140044883A (ko) 전자 프로그램 가이드를 캐싱하기 위한 시스템 및 방법
WO2017123821A1 (en) Method and pluggable system for trend-based allocation of media assets between global and local storage
US11470368B2 (en) Ascription based modeling of video delivery system data in a database
CN103986974A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20170615

Address after: Dublin, Ireland

Applicant after: Performance & Privacy Ireland Ltd

Address before: Dublin, Ireland

Applicant before: SKYFIRE LABS INC

GR01 Patent grant
GR01 Patent grant