CN111954033A - 用于减少对于流媒体内容需要的带宽的方法和系统 - Google Patents
用于减少对于流媒体内容需要的带宽的方法和系统 Download PDFInfo
- Publication number
- CN111954033A CN111954033A CN202010757018.1A CN202010757018A CN111954033A CN 111954033 A CN111954033 A CN 111954033A CN 202010757018 A CN202010757018 A CN 202010757018A CN 111954033 A CN111954033 A CN 111954033A
- Authority
- CN
- China
- Prior art keywords
- media
- item
- common
- content
- client
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 238000003860 storage Methods 0.000 claims description 46
- 238000009877 rendering Methods 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims 3
- 239000012634 fragment Substances 0.000 claims 1
- 230000008569 process Effects 0.000 description 33
- 238000004590 computer program Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000000605 extraction Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 241000283923 Marmota monax Species 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 235000014510 cooky Nutrition 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 230000001953 sensory effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000005562 fading Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000011273 social behavior Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling 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/23608—Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/75—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0277—Online advertisement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25866—Management of end-user data
- H04N21/25891—Management of end-user data being end-user preferences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44213—Monitoring of end-user related data
- H04N21/44222—Analytics of user selections, e.g. selection of programs or purchase activity
- H04N21/44224—Monitoring of user activity on external systems, e.g. Internet browsing
- H04N21/44226—Monitoring of user activity on external systems, e.g. Internet browsing on social networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/812—Monomedia components thereof involving advertisement data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N21/8586—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Social Psychology (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
用于减少对于流媒体内容需要的带宽的方法。方法包括由流媒体服务器标识多个媒体内容项目的子集,多个媒体内容项目具有公共的媒体数据的部分,并且由流媒体服务器从子集的第一媒体内容项目提取公共部分;由流媒体服务器生成包括提取的公共部分的公共媒体包,由流媒体服务器向客户端媒体设备提供公共媒体包,并且由流媒体服务器从客户端媒体设备接收对于内容的项目的请求。方法也包括从子集选择内容的项目;并且由流媒体服务器向客户端媒体设备发送公共媒体包的标识和公共部分之后的选择的内容的项目的块的标识。
Description
本申请是申请日为2016年12月30日、申请号为201680074010.7、发明名称为“用于减少对于流媒体内容需要的带宽的方法和系统”的发明专利申请的分案申请。
背景技术
内容提供者在互联网上提供许多内容的项目,诸如视频、图片、录音、文本、交互式游戏、测验、或其它这样的内容,用于消费者使用和/或购买。这样的内容可以在用户观看视频时显示,有时称为广播、流、节目、电影、馈送、或通过其它这样的名称来称呼。
发明内容
流技术使得观看点播视频而不用将副本直接下载到移动计算设备成为可能。视频包括用户重复地重流(re-stream)的公共引入场景,其导致浪费的带宽和对于移动设备的浪费的电池寿命。通过标识和存储公共引入场景,通过最小化用于流(stream)视频内容的时间用户可以具有改善的观看体验,服务器性能可以被改善,并且网络带宽使用被减少。
本文公开的一个方面是一种方法,所述方法用于减少对于流媒体内容需要的带宽,所述方法包括:由流媒体服务器标识多个媒体内容项目的子集,所述多个媒体内容项目具有公共的媒体数据的部分;由流媒体服务器从子集的第一媒体内容项目提取公共部分;由流媒体服务器生成包括提取的公共部分的公共媒体包;由流媒体服务器向客户端媒体设备提供公共媒体包;由流媒体服务器从客户端媒体设备接收对于内容的项目的请求;由流媒体服务器从多个媒体内容项目的子集选择内容的项目;并且由流媒体服务器向客户端媒体设备发送公共媒体包的标识和公共部分之后的选择的内容的项目的块的标识,以触发客户端媒体设备渲染(render)先前提供的公共媒体包并且请求选择的内容的项目的后续块。
在一些实施方式中,方法包括由流媒体服务器从客户端媒体设备接收对于内容的项目的第二请求;由流媒体服务器从多个媒体内容项目的子集选择第二内容的项目;并且由流媒体服务器向客户端媒体设备发送公共媒体包的标识和公共部分之后的选择的第二内容的项目的块的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求选择的第二内容的项目的后续块。在一些实施方式中,标识具有媒体的公共部分的多个媒体内容项目的子集进一步包括将多个媒体内容项目的第一媒体内容项目的部分与多个媒体内容项目的第二媒体内容项目的对应部分比较;并且响应于比较指示匹配,将第一媒体内容项目和第二媒体内容项目添加到子集。在一些实施方式中,生成公共媒体包进一步包括生成公共媒体标识符和包括提取的公共部分的媒体有效载荷。在一些实施方式中,发送公共媒体包的标识和选择的内容的项目的块的标识进一步包括发送清单,所述清单包括公共媒体包的客户端媒体设备的缓存中的地址、和内容服务器处的选择的内容的项目的块的地址。在一些实施方式中,方法包括在对于后续块的请求的接收之前,由流媒体服务器发送用于由客户端媒体设备渲染的选择的内容的项目的后续块。在一些实施方式中,方法包括由流媒体服务器向多个媒体内容项目的子集中的每个内容的项目分配第一预定的质量分数;并且由流媒体服务器向多个媒体内容项目的第二、不重叠子集中的每个内容的项目分配第二预定的质量分数,第二质量分数低于第一质量分数。在一些实施方式中,发送公共媒体包的标识和选择的内容的项目的块的标识进一步包括发送用于客户端基于选择的内容的项目的后续块的特性修改公共媒体包的指令。
本文公开的另一方面是系统,所述系统用于减少对于流媒体内容需要的带宽,系统包括:计算设备,所述计算设备包括经由网络与客户端媒体设备和存储设备通信的流媒体服务器、视频分离器、和视频编码器,存储设备存储多个媒体内容项目;其中流媒体服务器包括电路,所述电路被配置为:标识具有公共的媒体数据的部分的、存储在存储设备中的多个媒体内容项目的子集;其中视频分离器包括电路,所述电路被配置为:从子集的第一媒体内容项目提取公共部分;其中视频编码器包括电路,所述电路被配置为:生成包括提取的公共部分的公共媒体包;其中流媒体服务器的电路进一步被配置为:经由网络向客户端媒体设备提供公共媒体包,从客户端媒体设备接收对于内容的项目的请求,从多个媒体内容项目的子集选择内容的项目,并且向客户端媒体设备发送公共媒体包的标识和公共部分之后的选择的内容的项目的块的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求选择的内容的项目的后续块。
在一些实施方式中,流媒体服务器的电路进一步被配置为:从客户端媒体设备接收对于内容的项目的第二请求;从多个媒体内容项目的子集选择第二内容的项目;并且向客户端媒体设备发送公共媒体包的标识和公共部分之后的选择的第二内容的项目的块的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求选择的第二内容的项目的后续块。在一些实施方式中,流媒体服务器的电路进一步被配置为:标识具有媒体的公共部分的多个媒体内容项目的子集进一步包括将多个媒体内容项目的第一媒体内容项目的部分与多个媒体内容项目的第二媒体内容项目的对应部分比较;并且响应于比较指示匹配,将第一媒体内容项目和第二媒体内容项目添加到子集。在一些实施方式中,流媒体服务器的电路被进一步配置为:生成公共媒体包进一步包括生成公共媒体标识符和包括提取的公共部分的媒体有效载荷。在一些实施方式中,流媒体服务器的电路进一步被配置为:发送公共媒体包的标识和选择的内容的项目的块的标识进一步包括发送清单,所述清单包括公共媒体包的客户端媒体设备的缓存中的地址、和内容服务器处的选择的内容的项目的块的地址。在一些实施方式中,流媒体服务器的电路被进一步配置为:在对于后续块的请求的接收之前,由流媒体服务器发送用于由客户端媒体设备渲染的选择的内容的项目的后续块。在一些实施方式中,流媒体服务器的电路进一步被配置为:由流媒体服务器向多个媒体内容项目的子集中的每个内容的项目分配第一预定的质量分数;并且由流媒体服务器向多个媒体内容项目的第二、不重叠子集中的每个内容的项目分配第二预定的质量分数,第二质量分数低于第一质量分数。在一些实施方式中,流媒体服务器的电路被进一步配置为:发送公共媒体包的标识和选择的内容的项目的块的标识进一步包括发送用于客户端基于选择的内容的项目的后续块的特性修改公共媒体包的指令。
本文公开的另一方面是一种方法,所述方法用于减少对于流媒体内容需要的带宽,方法包括:由客户端媒体设备确定公共媒体包未被存储在客户端媒体设备上;公共媒体包包括公共媒体包的标识符和从多个媒体内容项目提取的公共部分;由客户端媒体设备从流媒体服务器设备接收公共媒体包;由客户端媒体设备从流媒体服务器请求内容的项目;由客户端媒体设备从流媒体服务器接收公共媒体包的标识符和从多个媒体内容项目选择的第一媒体内容项目的后续块的标识;由客户端媒体设备请求第一媒体内容项目的后续块;由客户端媒体设备接收第一媒体内容项目的后续块;并且由客户端媒体设备顺序地渲染先前提供的提取的公共部分和第一媒体内容项目的后续块。
在一些实施方式中,方法包括:由客户端媒体设备从流媒体服务器请求第二内容的项目;由客户端媒体设备从流媒体服务器接收公共媒体包的标识符和从多个媒体内容项目选择的第二媒体内容项目的后续块的标识;由客户端媒体设备请求第二媒体内容项目的后续块;由客户端媒体设备接收第二媒体内容项目的后续块;并且由客户端媒体设备顺序地渲染先前提供的提取的公共部分和第二媒体内容项目的后续块。在一些实施方式中,接收公共媒体包进一步包括接收用于客户端媒体设备基于接收的、选择的内容的项目的后续块的特性修改提取的公共部分的指令。在一些实施方式中,接收第一媒体内容项目的后续块进一步包括在渲染先前提供的提取的公共部分的同时接收后续块。
另一方面,本公开指向客户端媒体设备,所述客户端媒体设备被配置为执行一种方法,所述方法包括:确定公共媒体包未被存储在客户端媒体设备上,其中公共媒体包包括公共媒体包的标识符和从多个媒体内容项目提取的公共部分;由客户端媒体设备从流媒体服务器设备接收公共媒体包;由客户端媒体设备从流媒体服务器请求内容的项目;由客户端媒体设备从流媒体服务器接收公共媒体包的标识符和从多个媒体内容项目选择的第一媒体内容项目的后续块的标识;由客户端媒体设备请求第一媒体内容项目的后续块;由客户端媒体设备接收第一媒体内容项目的后续块;并且由客户端媒体设备顺序地渲染先前提供的提取的公共部分和第一媒体内容项目的后续块。
另一方面,本公开指向一种系统,所述系统包括:服务器,其被配置为执行根据本文描述的任何方面或实施方式的方法。在一些实施方式中,系统可以包括具有存储的指令的计算机可读介质,所述指令当由服务器运行时使得服务器执行包括根据本文描述的任何方面或实施方式的方法的操作。另一方面,本公开指向一种系统,所述系统包括:计算设备,所述计算设备包括经由网络与客户端媒体设备和存储设备通信的流媒体服务器、视频分离器、和视频编码器,存储设备存储多个媒体内容项目;其中流媒体服务器包括电路,所述电路被配置为执行根据本文描述的任何方面或实施方式的方法。
另一方面,本公开指向包括指令的计算机程序产品,所述指令当程序由计算机运行时,使得计算机实行根据本文定义的任何方面或实施方式的方法。
另一方面,本公开指向具有存储的指令的计算机可读介质,所述指令当由服务器运行时,使得服务器执行包括根据本文定义的任何方面或实施方式的方法的操作。
本文公开的另一方面是一种用于减少对于流媒体内容需要的带宽的方法,包括:由流媒体服务器通过如下步骤标识具有公共的媒体数据的部分的多个媒体内容项目的子集,所述步骤包括:将多个媒体内容项目的第一媒体内容项目的部分与多个媒体内容项目的第二媒体内容项目的对应部分比较;以及响应于比较指示匹配,将第一媒体内容项目和第二媒体内容项目添加到所述子集;由流媒体服务器从所述子集的第一媒体内容项目提取公共部分;由流媒体服务器生成包括所提取的公共部分的公共媒体包;由流媒体服务器向客户端媒体设备提供所述公共媒体包;由流媒体服务器从客户端媒体设备接收对于内容的项目的请求;由流媒体服务器从多个媒体内容项目的所述子集选择内容的项目;以及由流媒体服务器向客户端媒体设备发送所述公共媒体包的标识和所述公共部分之后的所选择的内容的项目的块的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求所选择的内容的项目的后续块。
本文公开的另一方面是一种用于减少对于流媒体内容需要的带宽的方法,包括:由流媒体服务器标识具有公共的媒体数据的部分的多个媒体内容项目的子集;由流媒体服务器向多个媒体内容项目的所述子集中的每个内容的项目分配第一预定的质量分数;由流媒体服务器向多个媒体内容项目的第二、不重叠子集中的每个内容的项目分配第二预定的质量分数,第二质量分数低于第一质量分数;由流媒体服务器从所述子集的第一媒体内容项目提取公共部分;由流媒体服务器生成包括所提取的公共部分的公共媒体包;由流媒体服务器向客户端媒体设备提供所述公共媒体包;由流媒体服务器从客户端媒体设备接收对于内容的项目的请求;由流媒体服务器从多个媒体内容项目的所述子集选择内容的项目;以及由流媒体服务器向客户端媒体设备发送所述公共媒体包的标识和所述公共部分之后的所选择的内容的项目的块的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求所选择的内容的项目的后续块。
本文公开的另一方面是一种用于减少对于流媒体内容需要的带宽的系统,包括:计算设备,其包括流媒体服务器、视频分离器和视频编码器,经由网络与客户端媒体设备和存储设备通信,所述存储设备存储多个媒体内容项目;其中,所述流媒体服务器包括电路,所述电路被配置为:通过如下步骤标识具有公共的媒体数据的部分的、存储在存储设备中的多个媒体内容项目的子集,所述步骤包括:将多个媒体内容项目的第一媒体内容项目的部分与多个媒体内容项目的第二媒体内容项目的对应部分比较;以及响应于比较指示匹配,将第一媒体内容项目和第二媒体内容项目添加到所述子集;其中,所述视频分离器包括电路,所述电路被配置为:从所述子集的第一媒体内容项目提取公共部分;其中,所述视频编码器包括电路,所述电路被配置为:生成包括所提取的公共部分的公共媒体包;其中,所述流媒体服务器的电路进一步被配置为:经由网络向客户端媒体设备提供公共媒体包,从客户端媒体设备接收对于内容的项目的请求,从多个媒体内容项目的所述子集选择内容的项目,以及向客户端媒体设备发送所述公共媒体包的标识和所述公共部分之后的所选择的内容的项目的块的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求所选择的内容的项目的后续块。
本文公开的另一方面是一种用于减少对于流媒体内容需要的带宽的方法,包括:由客户端媒体设备确定公共媒体包未被存储在客户端媒体设备上,所述公共媒体包包括公共媒体包的标识符和从多个媒体内容项目提取的公共部分;由客户端媒体设备从流媒体服务器设备接收所述公共媒体包,所述公共媒体包由流媒体服务器设备响应于多个媒体内容项目的第一媒体内容项目的部分与多个媒体内容项目的第二媒体内容项目的对应部分之间的比较指示匹配,并且将第一媒体内容项目和第二媒体内容项目添加到多个媒体内容项目的子集而生成;由客户端媒体设备从流媒体服务器请求内容的项目;由客户端媒体设备从流媒体服务器接收所述公共媒体包的标识符和从多个媒体内容项目选择的第一媒体内容项目的后续块的标识;由客户端媒体设备请求第一媒体内容项目的后续块;由客户端媒体设备接收第一媒体内容项目的后续块;以及由客户端媒体设备顺序地渲染先前提供的所提取的公共部分和第一媒体内容项目的后续块。
本文公开的另一方面是一种用于减少对于流媒体内容需要的带宽的方法,包括:由流媒体服务器标识具有公共的媒体数据的部分的多个媒体内容项目的子集;由流媒体服务器从所述子集的第一媒体内容项目提取公共部分;由流媒体服务器生成包括所提取的公共部分的公共媒体包;由流媒体服务器向客户端媒体设备提供所述公共媒体包;由流媒体服务器从客户端媒体设备接收对于内容的项目的请求;由流媒体服务器从多个媒体内容项目的所述子集选择内容的项目;以及由流媒体服务器向客户端媒体设备发送所述公共媒体包的标识和所述公共部分之后的所选择的内容的项目的片段的标识,触发客户端媒体设备渲染先前提供的公共媒体包并且请求所选择的内容的项目的后续片段。
本文公开的另一方面是一种用于减少对于流媒体内容需要的带宽的系统,包括:计算设备,其包括流媒体服务器、视频分离器和视频编码器,经由网络与客户端媒体设备和存储设备通信,所述存储设备存储多个媒体内容项目;其中,所述流媒体服务器包括电路,所述电路被配置为:标识具有公共的媒体数据的部分的、存储在存储设备中的多个媒体内容项目的子集;其中,所述视频分离器包括电路,所述电路被配置为:从所述子集的第一媒体内容项目提取公共部分;其中,所述视频编码器包括电路,所述电路被配置为:生成包括所提取的公共部分的公共媒体包;其中,所述流媒体服务器的电路进一步被配置为:经由网络向客户端媒体设备提供公共媒体包,从客户端媒体设备接收对于内容的项目的请求,从多个媒体内容项目的所述子集选择内容的项目,以及向客户端媒体设备发送所述公共媒体包的标识和所述公共部分之后的所选择的内容的项目的片段的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求所选择的内容的项目的后续片段。
本文公开的另一方面是一种用于减少对于流媒体内容需要的带宽的方法,包括:由客户端媒体设备确定公共媒体包未被存储在客户端媒体设备上;所述公共媒体包包括公共媒体包的标识符和从多个媒体内容项目提取的公共部分;由客户端媒体设备从流媒体服务器设备接收所述公共媒体包;由客户端媒体设备从流媒体服务器请求内容的项目;由客户端媒体设备从流媒体服务器接收所述公共媒体包的标识符和从多个媒体内容项目选择的第一媒体内容项目的后续片段的标识;由客户端媒体设备请求第一媒体内容项目的后续片段;由客户端媒体设备接收第一媒体内容项目的后续片段;以及由客户端媒体设备顺序地渲染先前提供的所提取的公共部分和第一媒体内容项目的后续片段。
附图说明
在附图和以下描述中阐述了一个或多个实施方式的细节。从说明书、附图、和权利要求,本公开的其它特征、方面、和优点将变得显而易见,其中:
图1是根据一个实施方式的时间线上的预取视频的回放接着是流视频的回放的图;
图2是用于减少对于流媒体内容到客户端设备需要的带宽的示例环境的框图;
图3A是根据一个实施方式的客户端设备的框图;
图3B是根据一个实施方式的媒体内容服务器的框图;
图4是用于减少对于流媒体内容到客户端设备需要的带宽的示例过程400的一个实施方式中由服务器采取的步骤的流程图;并且
图5是用于减少对于流媒体内容到客户端设备需要的带宽的示例过程500的一个实施方式中由服务器和客户端设备采取的步骤的流程图。
各种附图中相似的参考标号和标记指示相似的元件。应该理解的是,参考本发明的一个方面或实施方式描述的特征可以并入到另一方面或实施方式中。
具体实施方式
许多媒体内容的项目(诸如视频、播客、音乐、或其它录制内容)在回放的前几秒内具有相同的内容。例如,视频可以显示制作品牌、版权声明、来自标准评级机构(在电影预告片的情况下)的批准消息、或其它公共开场内容。除了会消耗客户端的设备上额外的电池寿命和存储使用之外,由客户端下载这些引入场景中的每一个将延迟由客户端请求的媒体内容的其余部分的下载。专注于整体文件的缓存系统没有解决这个问题,因为媒体内容的每个项目的前几秒之后的剩余内容可以不同。
因此,本公开指向系统和方法,所述系统和方法用于降低对于流或下载到客户端设备的媒体内容的递送或加载时间,和/或减少将媒体内容流或下载到客户端设备所要求的带宽,因此减少要求的网络资源和/或减少或消除与这些引入场景的下载相关联的迟延时间,因此来改善用户的体验。
图1是描绘具有公共或共享引入顺序的媒体内容的两个时间线的图示。本文讨论的系统可以标识和提取类似的引入序列并且预取引入序列并且将引入序列存储在客户端设备上,在一些实施方式中,这可以在客户端请求媒体之前完成。当客户端然后请求媒体内容时,客户端可以从本地存储检索并显示预取的引入内容或公共内容,而客户端从服务器流(并缓冲)或者下载剩余内容。在一些实施方式中,这甚至可以在服务器从具有公共引入的多个媒体内容项目选择哪些内容将递送给客户端之前完成。例如,图1示出了两个不同的流视频的回放,其中每个视频之前是显示用于流内容(例如,PG)的标准板评级的相同的5秒引入场景。在客户端设备在时间线的时间B处开始请求和缓冲流视频时,客户端设备可以开始预取引入内容的回放。结果,客户端不需要重新下载先前在客户端设备上检索和/或查看的相同引入内容。在一些实施方式中,缓存的引入内容在内容选择拍卖系统中被赋予更高质量分数,这增加了具有公共或共享引入序列的内容项目被显示的机会。
本系统和方法也涵盖流媒体项目在引入顺序期间具有相同视觉内容但具有不同音频的实例。在这样的实施方式中,系统可以连同来自服务器的第一响应中提供的音频样本一起显示预取的视觉内容,减少对于第一响应需要的带宽。在一些实施方式中,服务器可以提供用于修改预取视频数据的指令,从而客户端可以无缝地转换到数据的后续部分(例如通过渐变到黑色或不同颜色,通过显示预定帧等)。
详细地说,图1是根据一个实施方式的时间线100、120上的预取引入序列的回放接着是流媒体的剩余部分的回放的图示。时间线100、120表示带有具有公共引入序列的不同内容的选择和呈现的替代时间线,并且可以一般地称为时间线100。时间线100可以包括客户端设备上使用视频播放器102的具有文件名104a的预取视频110a的回放。时间线120可以包括客户端设备上使用视频播放器103的具有文件名104c的预取视频110c的回放。如所示,时间线100和时间线120显示相同预取视频(例如,cached_intro_0058.mpeg)。在一些实施方式中,视频播放器102和视频播放器103是相同视频媒体播放器,诸如网络浏览器中的嵌入式视频播放器、视频播放器应用、或其它这样的媒体界面。虽然每个文件名都以.mpeg扩展名示出,但是媒体有效载荷可以以任何视频格式(例如3g2、3gp、avi、flv、mov、MPEG-1、MPEG-2、MPEG-4、mpg)、音频格式(例如MP3)、任何存档格式(例如ZIP)、或任何其它媒体容器格式存储。
预取视频的视频回放具有开始和结束两者。时间线100上的开始106a和时间线120上的开始106c两者对应于它们各自时间线上的时间A,而时间线100上的结束108a和时间线120上的结束108c对应于它们各自时间线上的时间B。每个开始(例如00:00:00)和结束(例如00:00:05)在示出的示例中使用小时:分钟:秒的时间格式。回放的持续时间可以表示每个时间线上的一对开始点与结束点之间的时间差。虽然以5秒的持续时间示出,但是在许多实施方式中,预取视频可以具有不同回放时间,诸如1秒、30秒、1分钟、1小时、或视频的回放时间的任何其它持续时间。
另外,每个时间线可以包括额外流视频内容的回放。如所示,时间线100包括客户端设备上使用视频播放器102的具有文件名104b(例如www.url/airplane_landing.html)的流视频110b的回放。时间线120包括相同客户端设备上使用视频播放器103的具有文件名104d(例如www.url/ad_0102.html)的流视频110d的回放。在一些实施方式中,视频播放器102和视频播放器103是相同视频媒体播放器。
类似于预取视频的回放,流视频的回放也具有开始和结束两者。时间线100上的开始106b和时间线120上的开始106d两者对应于它们各自时间线上的时间B,而时间线100上的结束108b和时间线120上的结束108d对应于它们各自时间线上的时间C。虽然以特定持续时间示出,但是在许多实施方式中,流视频内容可以具有不同回放时间,诸如1秒、30秒、1分钟、1小时、或视频的回放时间的任何其它持续时间。
流媒体可以使用任何协议被递送到客户端,诸如数据报协议(UDP(User DatagramProtocol,用户数据报协议))、实时流协议(real time streaming protocol,RTSP)、实时传输协议(real-time transport protocol,RTP)、实时传输控制协议(real-timetransport control protocol,RTCP)、HTTP(Hyper Text Transport Protocol,超文本传输协议)协议、TCP(Transmission Control Protocol,传输控制协议)、单播、多播、IP多播、对等。在一些实施方式中,流视频内容在显示在视频播放器上之前首先下载到客户端。例如,响应于接收请求的内容,客户端可以首先将流内容下载到设备内部的存储储存器(memory storage)。在一个实施方式中,客户端设备可以将流内容下载到与设备通信的数据库(例如,RAM(random access memory,随机存取存储器)、ROM(read only memory,只读存储器)、存储卡、内部或者外部硬盘驱动器、USB(Universal Serial Bus,通用串行总线)闪存驱动器、数据库)。流内容可以以任何视频格式(例如3g2、3gp、avi、flv、mov、mpeg-1、mpeg-2、mpeg-4、mpg)、任何音频格式(例如mp3)、任何存档格式(例如zip)、或任何其它已知的或后来发现的媒体容器格式保存。一旦保存或下载,客户端设备可以使用客户端设备的视频播放器渲染保存的内容。
在由客户端设备对于流内容的请求之前,客户端设备可以具有预先缓存的公共媒体包,公共媒体包包括媒体有效载荷(例如引入内容)和公共媒体标识符(例如,存储在客户端设备上的媒体有效载荷的地址)。在一些实施方式中,客户端设备可以确定与请求的流内容相关联的公共媒体包先前尚未被客户端设备接收和存储。因此,在这种情况下,客户端设备可以向媒体服务器传送对于公共媒体包的副本的请求。在其它实施方式中,媒体服务器可以在没有接收客户端的请求的情况下,先前已经将公共媒体包发送或推送到包括该客户端设备的一个或多个媒体设备。公共媒体包的推送可以基于一个或多个触发事件,诸如对于公共媒体包的修改(例如更新)、时间事件(例如,一天、一周、一月、一年中的特定时间或任何其它时间组合)、日历事件、对描述用户的兴趣的文件的更新(例如,位于客户端设备上的cookie文件示出客户现在对帆船有兴趣)、或由用户做出的搜索请求。
在一些实施方式中,客户端设备可以在彼此之间共享和传递公共媒体包。例如,如果公共媒体包当前不被缓存在客户端设备上,则请求流内容的第一客户端设备可以从媒体服务器请求公共媒体包,所述流内容要求公共媒体包的缓存副本以便显示引入内容。在一些实施方式中,客户端设备可以反而从与第一客户端设备相关联的第二客户端设备接收公共媒体包,而不是从媒体内容服务器请求。例如,用户可能具有智能电话和台式计算机。台式计算机可能已经预取了与电影相关联的公共媒体包的副本。因此,当台式计算机接收公共媒体包时,其可以然后响应于来自移动电话的请求将公共媒体包传送到移动电话。因此,如果用户决定在台式计算机上观看电影的前半部分并且在移动电话上观看后半部分,则当用户在移动电话上观看时将不必等待下载公共媒体包。在一些实施方式中,即使没有来自移动电话的请求,台式计算机也与移动电话共享公共媒体包。
仍然参考图1,一旦引入内容结束,就会显示流视频。为了确保两个视频的这种无缝显示,流视频110b可能需要在预取视频110a的视频回放的开始之前在客户端设备上被缓冲某一时间量。例如,客户端设备可以请求电影。在向媒体服务器传送对于接收电影的请求之后,客户端设备可以确定包含对于电影的3秒引入场景的公共媒体包已经被预取并且缓存在其内部存储器上。然而,如果电影的递送过于延迟(例如,由于很差的网络条件、由媒体服务器由于许可或其它问题的有意或无意的延迟),则然后在缓冲电影之前显示3秒引入场景将阻止两个视频的无缝显示。
流视频可以包括一个或多个剪辑、电影、影片、电视剧集或系列、商业广告、用户创建的内容、纪录片、音乐剧、多媒体流、或其它内容。因此,流视频(例如,流视频110b、流视频110d)可以与视频内容或节目的任何一个或任何组合相关联。
图2是用于降低传递时间和/或减少对于流(或加载)媒体内容到客户端设备需要的带宽的示例环境200的框图。环境200包括媒体内容服务器206,媒体内容服务器206提供流多媒体内容(例如,视频、影片),包括提供与流多媒体内容相关的公共媒体包。示例环境200包括存储设备,诸如多媒体内容储存器232,其存储由媒体内容服务器206从网络202接收或收集的多媒体内容、以及由媒体内容服务器206生成的公共媒体包。示例环境200可以包括网络202,例如局域网(local area network,LAN)、广域网(wide area network,WAN)、互联网、或者这些或其它网络的组合,其连接客户端设备204与媒体内容服务器206。环境200可以包括数千个客户端设备204。尽管未示出,但是在许多实施方式中,网络202可以包括一个或多个中间设备,包括网关、路由器、防火墙、交换机、网络加速器、WiFi接入点或热点、或其它设备。
客户端设备204是在用户的控制之下并且能够通过网络202请求和接收资源和内容的项目的电子设备。示例客户端设备204包括个人计算机、移动通信设备(例如,智能手机或平板计算机)、以及能够通过网络202传送和接收数据的其它设备。客户端设备204典型地包括用户应用,例如网页浏览器或媒体播放器应用,以促进通过网络202的数据的传送和接收。
图3A是客户端的客户端设备300(诸如客户端设备204)的一个实施方式的框图。客户端设备300可以是被配置为经由网络通信的任何数量的不同类型的用户电子设备,包括但不限于笔记本计算机、台式计算机、平板计算机、智能电话、数字录像机、电视机顶盒、视频游戏机、或任何其它类型和形式的计算设备或设备的组合。在一些实施方式中,客户端设备300的类型可以被分类为移动设备、台式设备、或旨在保持固定或被配置为主要经由局域网访问网络的设备、或者诸如媒体消费设备的另一类电子设备。
在许多实施方式中,客户端设备300包括处理器302和存储器304。存储器304可以存储机器指令,机器指令当由处理器302运行时使得处理器302执行本文描述的操作中的一个或多个。处理器302可以包括微处理器、ASIC(Application Specific IntegratedCircuit,特定用途集成电路)、FPGA(Field Programmable Gate Array,现场可编程门阵列)等、或其组合。在许多实施方式中,处理器302可以是多核处理器或处理器阵列。存储器304可以包括但不限于能够向处理器302提供程序指令的电子、光学、磁性、或任何其它存储设备。存储器304可以包括软盘、CD-ROM(Compact Disc Read Only Memory,只读光盘驱动器)、DVD(Digital Video Disk,数字化视频光盘)、磁盘、存储器芯片、ROM、RAM、EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦除可编程只读存储器)、EPROM(Electrically Programmable Read-Only-Memory,电可编程只读存储器)、闪存、光学介质、或处理器302能够从其读取指令的任何其它合适的存储器。指令可以包括来自任何合适的计算机编程语言(诸如但不限于C、C++、C#、Java、JavaScript、Perl、HTML、XML、Python、和Visual Basic)的代码。
客户端设备300可以包括一个或多个网络接口306。网络接口306可以包括任何类型和形式的接口,包括以太网,其包括10Base T、100Base T、或1000Base T(“千兆”);802.11无线的任何种类,诸如802.11a、802.11b、802.11g、802.11n、或802.11ac;蜂窝,包括CDMA(Code Division Multiple Access,码分多址)、LTE(Long Term Evolution,长期演进)、3G、或4G蜂窝;蓝牙或其它短程无线连接;或者用于与网络或其它计算设备进行通信的这些或其它接口的任何组合。在许多实施方式中,客户端设备300可以包括不同类型的多个网络接口306,允许经由不同的子网连接到各种网络,诸如局域网或包括互联网的广域网。
客户端设备300可以包括一个或多个用户接口或输入/输出设备308。用户接口设备308可以是通过生成传感信息(例如,显示器上的可视化、一个或多个声音、触觉反馈等)向用户传达数据和/或将从用户接收的传感信息转换成电子信号(例如,键盘、鼠标、定点设备、触摸屏幕显示器、麦克风等)的任何电子设备。根据各种实施方式,一个或多个用户接口设备可以位于客户端设备300的外壳内部,诸如内置显示器、触摸屏幕、麦克风等,或位于客户端设备300的外壳外部,诸如连接到客户端设备300的监视器、连接到客户端设备300的扬声器等。
客户端设备300可以在存储器304中包括应用310,或者可以用处理器302运行应用310。应用310可以是用于接收内容和用于发送响应、命令、或其它数据的应用、小应用、脚本、服务、守护进程、例程、或其它可运行逻辑。在一个实施方式中,应用310可以是网页浏览器,而在另一实施方式中,应用310可以是媒体呈现应用。应用310可以包括用于显示经由网络接口306接收的和/或由处理器302本地生成的内容的功能和用于发送经由用户接口设备308接收的交互(诸如对于网站的请求、调查响应选项的选择、输入文本串等)的功能。
在一些实施方式中,应用310可以包括收集代理312。收集代理312可以包括用于收集由应用310处理的数据和/或监测用户与接口308的交互的应用插件、应用扩展、子例程、浏览器工具栏、守护进程、或其它可运行逻辑。在其它实施方式中,收集代理312可以是与应用310分离但被配置用于拦截和/或收集由应用310处理的数据的单独的应用、服务、守护进程、例程、或其它可运行逻辑,诸如屏幕截取器、数据包拦截器、API挂接过程、或其它这样的应用。
收集代理312可以被配置用于拦截或接收经由用户接口设备308输入的数据,包括鼠标点击、滚轮移动、手势(诸如划动、捏、或触摸)、或者任何其它这样的交互;以及由应用310接收和处理的数据,包括显示的内容或播放的媒体、开始时间、结束时间、和回放的持续时间,以及与回放控制的交互,包括暂停、重置或重启、快进、静音、或任何其它这样的交互。除了其关联的公共媒体包之外,收集代理312还可以标识由客户端设备接收的流多媒体内容,诸如电视节目、电影、歌曲、音乐视频、或其它这样的内容。内容可以基于标识符标签标识,包括ID3标签或其它这样的元数据、统一资源定位符(uniform resource locator,URL)或统一资源标识符(uniform resource identifier,URI)、文件名、标目、标题、或伴随内容的任何其它类型和形式的数据。收集代理312可以标识或追踪多媒体内容的回放或观看持续时间或累积回放次数。
客户端设备300可以包括设备标识符314或者以设备标识符314标识。设备标识符314可以包括任何类型和形式的标识,包括但不限于MAC地址、文本和/或标号数据串、用户名、密码公钥、cookie、设备序列号、用户简档数据、网络地址、或可以用于从其它客户端设备300区分客户端设备300的任何其它这样的标识符。在一些实施方式中,设备标识符314可以与一个或多个其它设备标识符314相关联(例如,用于移动设备的设备标识符、用于家庭计算机的设备标识符等)。在许多实施方式中,为了保护隐私,设备标识符314可以密码地生成、加密、或以其它方式模糊。在一些实施方式中,客户端设备300可以包括可以与设备标识符314类似但是更频繁地生成(诸如每小时、每天、在应用310的激活时、或任何其它这样的时段)的会话标识符316。会话标识符316可以由客户端设备300生成或从服务器、内容提供者、或其它设备接收。会话标识符316可以代替设备标识符314使用以增加匿名性,或者可以与设备标识符314一起使用以从另一会话的那些交互区分一个会话的交互。会话可以包括对于多媒体内容(例如,流内容媒体、公共媒体包)的一个或多个请求,并且每个会话可以包括与每个会话相关联的时间和/或日期记录。
收集代理312可以被配置为向数据库(例如,多媒体内容储存器232)递送设备标识符314、会话标识符316、和由收集代理312收集的任何数据。这样的数据的副本在数据库中的存储具有以下优点:在客户端设备204与网络(例如,网络202)断开连接、正在恶劣的信号环境(例如衰落)中发送或接收数据、或者断电的情况下,可以访问媒体内容服务器(例如,媒体内容服务器318)。
现在参照图3B,是根据一个实施方式的媒体内容服务器318的框图,诸如图2的媒体内容服务器206。与客户端设备300一样,媒体内容服务器318可以包括一个或多个处理器302、存储器304、网络接口306、和用户接口308。在被称为无头服务器的一些实施方式中,媒体内容服务器318可以不包括用户接口308,但是可以经由网络用用户接口308与客户端设备300通信。存储器204可以包括公共媒体包储存器330,其存储由提取器/生成器引擎336提取并生成的公共媒体包。在一些实施方式中,存储器304可以存储一个或多个应用310(未示出)用于由媒体内容服务器318的处理器302运行,包括FTP服务器、web服务器、邮件服务器、文件共享服务器、对等服务器、或用于递送存储在多媒体内容储存器232和公共媒体包储存器330中的内容的其它这样的应用。
媒体内容服务器318可以包括内容选择引擎324。内容选择引擎324可以包括用于响应于来自包括一个或多个标识符的客户端设备300的请求从多媒体内容储存器232选择内容的应用、服务、例程、服务器、守护进程、或其它可运行逻辑。由客户端设备300对于多媒体内容(例如流多媒体内容)或公共媒体包(例如引入多媒体内容)的请求可以包括设备标识符(例如设备标识符314)、会话标识符(例如会话标识符316)、请求日期和时间、关键字、流派、类型、创建者、创建日期、未观看标志、或任何其它类型和形式的标识或特性。内容选择引擎324可以标识匹配请求中的特性或标识符的、多媒体内容储存器232中的多媒体内容的一个或多个项目。另外,内容选择引擎324可以标识与请求的多媒体内容相关联的、多媒体内容储存器232中的公共媒体包。内容选择引擎324然后将选择的多媒体内容和公共媒体包递送到内容递送引擎328以递送到客户端设备300。在一些实施方式中,内容选择引擎324可以限制选择的多媒体内容的项目的数量,返回10、20、50、或任何其它预定数量的项目。
内容管理服务器318可以包括内容递送引擎328。内容递送引擎328可以包括用于响应于来自包括一个或多个标识符的客户端设备300的请求从多媒体内容储存器232选择多媒体内容和公共媒体包的应用、服务、例程、服务器、守护进程、或其它可运行逻辑。在一些实施方式中,内容递送引擎328可以从内容选择引擎324接收一个或多个内容的项目或公共媒体包,并将每个递送到一个或多个客户端设备。在其它实施方式中,内容递送引擎328可以从内容选择引擎324接收一个或多个内容项目的列表,并且将列表递送到一个或多个客户端设备。在其它实施方式中,内容递送引擎328将从数据库(诸如多媒体内容储存器232)检索在列表上找到的一个或多个内容项目,并且将一个或多个项目递送到一个或多个客户端设备。在一些实施方式中,内容递送引擎328将会将计算机代码(例如,C、C++、TCL、PERL、VBA、HTML、Hyperscript、VBscript、Flash等)插入到赞助内容的一个或多个项目中,赞助内容的一个或多个项目使得客户端设备上的浏览器导航到编码到赞助内容中的资源定位。
媒体内容服务器318可以包括标识符引擎332。标识符引擎332可以包括用于标识具有公共的一部分媒体数据的、多媒体内容储存器232中多个媒体内容项目的子集的应用、服务、例程、服务器、守护进程、或其它可运行逻辑。在一些实施方式中,如下所述,标识符引擎332可以通过运行图4中示出的过程400标识媒体项目的一个或多个子集。标识符引擎332可以通过从多媒体内容储存器232选择尚未分配到子组的第一内容的项目和分配到子组的第二内容的项目而开始。标识符引擎332然后继续比较存在于第一内容的项目的特定部分的时间或“时隙”中的多媒体内容与第二内容的项目的特定时隙(例如对应的帧、秒、分钟、或任何其它这样的持续时间,本文一般称为时隙)。在一些实施方式中,比较相同时隙,而在其它实施方式中,第一项目的第一时隙或部分可以与跨越第二项目的持续时间或者在一范围内(例如加上或减去10秒)移动的滑动窗口中的部分进行比较。另外,比较是基于内容的项目的视频信息和音频信息两者进行。在其它实施方式中,比较是基于视频内容或音频内容中的任一个进行。
多媒体内容可以使用各种不同的技术比较。例如,在一个实施方式中,标识符引擎332可以对第一媒体项目的一个时隙内发生的多媒体内容执行密码散列函数(例如,MD5)以计算第一散列值。标识符引擎332可以对第二媒体项目的一个时隙内发生的多媒体内容执行相同的密码散列函数以计算第二散列值。标识符引擎332可以然后比较第一散列值与第二散列值。如果散列值匹配,则然后多媒体内容的两个比较的时隙相等。
在一些实施方式中,比较相同的时隙索引。例如,第一媒体项目的第一时隙(例如,前1秒、前2秒、前3秒)可以与第二媒体项目的第一时隙比较。在一些实施方式中,比较不同的时隙索引,可能以便考虑被比较的视频之间的相位或时间偏移。例如,假定第一个媒体项目包含1秒的空白素材(footage),接着是5秒的公共素材,以及然后是30秒的短长度电影,并且第二媒体项目包含5秒的公共素材,接着是2小时的长长度电源,如果每个时隙是1秒长,则然后标识符引擎332可以比较第一媒体项目的第二时隙(例如,00:00:01至00:00:02)的散列与第二媒体项目的第一时隙(例如00:00:00至00:00:01)的散列。在许多实施方式中,可以迭代地执行此比较:第一媒体项目的第一时隙(例如,帧、秒、10秒等)可以与第二媒体项目的对应第一时隙比较;然后是下一时隙;然后是第三时隙;等等。在一些实施方式中,比较可以使用不重叠窗口(例如,比较一帧与第一帧、第二帧、第三帧等),而在其它实施方式中,比较可以使用重叠窗口(例如,比较五秒部分与第二媒体项目的1-5秒、然后2-6秒、然后3-7秒等)。在许多实施方式中,比较可以在视觉内容其整体上执行,而在其它实施方式中,比较可以在内容的子集上执行。在一些这样的实施方式中,标识符引擎332可以比较每个媒体项目的空间部分的散列值。例如,标识符引擎332可以比较从每个媒体项目的帧的第一宏块(例如(例如,8×8或16×16像素区域)、或每个时隙的上半部、每个时隙的中间半部、或每个时隙的下半部计算的散列值。在一些实施方式中,标识符引擎332可以比较每个媒体项目的像素,例如,像素到像素。在一些实施方式中,标识符引擎332可以将第一媒体项目中的一组像素与第二媒体项目中的一组像素比较。在另一实施方式中,标识符引擎332可以将视频的帧的平均值(例如平均颜色值、平均亮度等)与第二媒体项目的视频的另一帧的平均比较。在进一步的实施方式中,仅当平均值匹配时,则然后标识符引擎332可以执行每个帧的更详细的比较(例如宏块到宏块、像素到像素等)。在不同的进一步的实施方式中,标识符引擎可以将帧的连续平均值与第二媒体项目的帧的对应平均值比较。例如,如果五个连续帧的平均亮度是[0.3、0.4、0.7、0.6、0.2],则标识符引擎332可以标识第二媒体项目的帧的类似序列。在其它实施方式中,标识符引擎332可以将第一媒体项目的音频与第二媒体项目的对应音频比较,或者可以比较嵌入式数据,诸如包括在第一媒体项目的消隐间隔中的隐藏字幕数据与包括在第二媒体项目的消隐间隔中的对应隐藏字幕数据。
如果比较是匹配,则标识符引擎332计算并记录第二内容的项目中与从相同子组选择的第三内容的项目的时隙匹配的时隙的数量。例如,在标识符引擎332发现第一内容的项目(未分配到子组)的前3秒与第二内容的项目(分配到子组)的前3秒之间的匹配之后,标识符引擎332必须然后确定第一内容的项目的什么剩余部分必须匹配第二内容的项目以便添加到子组。为了做出此确定,标识符引擎332必须比较第二内容的项目(分配到子组)与也分配到相同组的另一内容的项目。从该比较,标识符引擎332可以确定超出前3秒,子组的成员的每个项目与彼此公共具有的内容的秒数。例如,第二内容的项目可以与相同子组中的内容的其它项目具有公共的15秒。因此,标识符引擎332必须然后在许可对于子组的成员资格之前,验证在第一内容的项目与第二内容的项目之间匹配的时隙的数量(例如,1时隙或3秒)至少等于记录的计数(例如5个时隙或15秒)。
在一些实施方式中,如果子组的每个成员与彼此公共具有的时隙的总数量在子组内相关联的索引中被标识,则标识符引擎332可以跳过对时隙的数量计数的步骤。例如,子组可以具有指示子组的5个成员具有3个公共的时隙的索引,其中每个时隙被定义为15秒的时间段。时隙可以是任何长度或持续时间,诸如一帧、5帧、10帧、一秒、五秒、十五秒、一分钟、或任何其它长度。其它实施方式中,子组总是可以由时间的最大公共部分(例如30秒、45秒等)标识,并且因此可以具有单个、更大的时隙。时隙可以因此表示文件框或块、或者完整场景、序列、引入部分、或者其它媒体段。块例如可以包括存储在客户端设备300上的5秒剪辑的视频的文件地址(例如,C:\movie_rating_PG.mpg或/localhost/media/movie_rating_PG.mpg),显示内容的选择的项目(例如,称为“土拨鼠周”的电影)的评级。在另一示例中,块的标识可以是到网络位置的地址,诸如URL(例如,www.example.com/groundhogs_week.mpg),其中客户端设备300在用视频播放器渲染之前能够通过直接地将内容流到客户端设备300上的视频播放器,或者直接地将内容下载到客户端设备300上的存储位置,来访问选择的内容的项目。
如果内容的项目通过验证阶段,则然后将其添加到第二内容的项目为其成员的相同子组。标识符引擎332然后对多媒体内容储存器232中的下一内容的项目继续该过程,直到已经扫描了未分配到子组的所有内容的项目。
内容管理服务器318可以包括提取器/生成器引擎336。提取器/生成器引擎336可以包括用于从内容的项目提取公共部分的应用、服务、例程、服务器、守护进程、或其它可运行逻辑,如由标识符引擎332标识的。在一个实施方式中,如上所述,公共部分被标识为等于由标识符引擎332为每个内容的项目记录的时隙计数的时隙数量中包含的部分。
另外,提取器/生成器引擎336可以生成包括公共媒体标识符和媒体有效载荷的公共媒体包。在一个实施方式中,公共媒体标识符可以包括到位于客户端设备上或与客户端设备通信的存储空间的地址(例如,C:\filename.mpeg)。在其它实施方式中,公共媒体标识符是到网络位置的地址(例如,URL)。媒体有效载荷包括提取的公共部分,其可以被转换成任何视频格式(例如,3g2、3gp、avi、flv、mov、mpeg-1、mpeg-2、mpeg-4、mpg)、任何音频文件格式(例如mp3)、任何存档格式(例如zip)、或任何其它已知的或以后发现的媒体容器格式。提取器/生成器引擎336将公共媒体包存储在诸如媒体包储存器334的数据库中。
在一些实施方式中,媒体内容服务器318可以运行支付引擎334。支付引擎334可以包括用于响应于检测的与第一内容的项目的交互,将第一内容的项目的创建者、发布者、分布者、或赞助者与插入到列表中的支付的第二内容的项目相关联的应用、服务、服务器、守护进程、例程、或其它可运行逻辑。支付引擎334可以向吸引观众的流行的第一内容的项目的创建者提供从支付的/赞助的内容(诸如广告)的创建者或发布者分享的收益,和/或向第三方支付系统指示以提供对于这样的交互的支付和/或收益共享。在一些实施方式中,支付引擎334可以维护对哪些内容的项目被插入到视频中和/或与视频相关联、被交互的内容的项目、与项目交互的客户端的设备标识符、被提供用于包括在显示的列表中的第二内容的项目、第二内容的项目是否与之交互的标识等的记录或日志。支付引擎334可以将回放的持续时间或观看时间与货币化阈值比较,以确定内容的项目是否被观看足够量的时间以向支付的内容的创作者或发布者收费。
图4是用于减少对于将媒体内容流到客户端设备需要的带宽的示例过程400的一个实施方式中由服务器采取的步骤的流程图。在一些实施方式中,过程400可以由例如媒体内容服务器318执行。过程400可以包括标识阶段(步骤402-450)和提取/生成阶段(步骤454-458)。每一步骤可以重新排序、添加、或移除。
在过程400的标识阶段的一个实施方式中,诸如i、j、k、和Next_SG的计数器每个被初始化为零(步骤402)。媒体内容服务器318可以选择尚未分配到多个媒体内容项目的子组或子集的媒体项目。子组可以包括已经被标识为具有公共部分的媒体的项目。多个子组可以存在(例如,具有第一公共引入的项目、具有诸如免责声明或信用的公共结束的项目等),并且项目可以被包括在多个子组中。计算存储在数据库中的子组的总数量并记录到count_SG(步骤404)。从数据库检索媒体项目(i),即媒体项目的阵列的元素(步骤406)。如果媒体项目(i)已经与子组相关联(步骤408),则然后计数器i增加1(步骤410),并且过程返回到步骤406,以重复。然而,如果媒体项目(i)不与子组相关联(步骤408),则然后媒体内容服务器318继续选择第二媒体项目,但是第二媒体项目是尚未分配到子组的一个。例如,从数据库检索媒体项目(j),即媒体项目的阵列的元素(步骤412)。如果媒体项目(j)未与子组相关联或已被标记为从将来的扫描中漏掉(步骤414),则计数器j增加1(步骤416),并且过程返回到步骤412以重复。因此,系统可以迭代地遍历数据库以选择尚未在子组内被标识的媒体项目。在其它实施方式中,诸如在项目被包括在多个子组中的情况下,可以跳过步骤408-410。
继续过程400,如果媒体项目(j)既与子组关联又未被标记(步骤414),则媒体内容服务器318标记子组以从未来的扫描中漏掉它(步骤418)并将媒体项目(i)的时隙(k)与媒体项目(j)的时隙(k)比较(步骤420)。换句话说,在步骤420处,媒体内容服务器318比较两个视频中的每一个的回放中的相同时间点的窗口。这个称为时隙的时间的窗口可以以秒、分钟、小时或时间增量的任何其它组合分离。时隙可以是任何长度或持续时间,诸如一帧、5帧、10帧、一秒、五秒、十五秒、一分钟、或任何其它长度。如果未找到匹配(步骤422),则然后计数器j增加1(步骤416),并且过程返回到步骤412,以重复。然而,如果在步骤422处发现匹配,则然后媒体内容服务器318验证媒体项目(i)应该被添加到标识的子组。在一个实施例中,验证可以包括对媒体项目(i)与媒体项目(j)公共具有媒体项目(j)与子组的所有其它成员公共具有的、相同数量的时隙的确定。
仍然参考图4,媒体内容服务器318通过计数每个媒体项目(来自步骤414处标识的子组)与彼此公共具有的时隙(例如,帧、秒等)的总数量开始验证过程。例如,诸如count_TS的计数器被初始化为零(步骤424),并且媒体内容服务器318从相同子组检索第二媒体项目(步骤426)。媒体内容服务器318比较媒体项目(j)的时隙(k)与第二媒体项目的相同时隙(步骤428)。如果发现匹配(步骤430),则然后count_TS(步骤432)和计数器k(步骤434)两者每个增加1。然而,如果在步骤430处未找到匹配,则然后计数器k被初始化为零(步骤436),并且媒体内容服务器318继续比较媒体项目(i)的时隙(k)与媒体项目(j)的相同时隙(步骤438)。
从步骤438处的比较,如果没有找到匹配(步骤440),则然后计数器Next_SG增加1(步骤446),并且媒体内容服务器318确定数据库中是否剩余任何其它子组(步骤448)。如果所有子组已经被扫描,则然后媒体内容服务器318将计数器i增加1(步骤460)并且前进到步骤406,以对于下一媒体项目(i)重复该过程。否则,在这一点处,媒体内容服务器318已经确定媒体项目(i)不应该被添加到比较的媒体项目(j)的子组中并且;因此应该检索下一媒体项目(j)(步骤412)并重复该过程。
返回到步骤440,如果媒体项目(i)的时隙(k)匹配媒体项目(j)的相同时隙,则然后媒体内容服务器318继续在步骤440、442、和444处检查所有剩余时隙。如果媒体项目(i)与媒体项目(j)公共具有等于媒体项目(j)与子组的其它媒体项目公共具有的时隙的数量的数量的时隙,则然后媒体内容服务器318已经成功标识应该被添加到子组的至少一个媒体项目(例如,媒体项目(i))。因此,媒体内容服务器318继续将媒体项目(i)添加到子组(步骤450)。
在步骤452处,媒体内容服务器318从媒体项目(i)提取公共部分。在一些实施例中,公共部分的提取包括记录从时隙(0)到时隙(count_TS)的媒体内容项目(i)的回放,其中count_TS先前在步骤428、430、432、和434中计算。这个提取的部分可以然后暂时地(例如,在RAM中)或永久地(例如,在ROM中、在数据库中,作为存储在数据库中的平面文件)存储。
在一些实施例中,公共部分可以不在媒体项目的开始处开始,并且因此k可以等于或大于0。这样的情景可以发生在媒体项目(i)包括多于一个引入场景。例如,请求的视频内容可以是关于超级英雄的电影。电影的制作公司可能已经选择了多于一个视频剪辑以放映电影,诸如关于赛车电影的30秒预告片、关于汽车保险的30秒广告片、来自电影院的请求观众成员在他们的手机上禁用铃声的15秒消息、和来自评级机构的5秒批准消息(例如,PG评级)。在提供的示例中,媒体项目(i)的与媒体项目(j)的特定部分公共的部分可以在时隙1处开始并且在时隙3处结束(例如从00:30到1:15)。应该认识到,公共部分可以发生在媒体(i)中的任何时间点和媒体(j)中的任何时间点。
虽然,过程400描述了从媒体项目(i)的单个引入场景的提取过程,但是其它实施例可以包括如前述示例中描述的多个引入场景的标识和提取。类似地,虽然作为引入场景讨论,但是在许多实施方式中,标识的公共媒体部分可以发生在不同媒体项目的中间或结尾处(例如,中场休息片段、信用、免责声明、条款表等)。
在过程400的提取/生成阶段,媒体内容服务器318生成公共媒体包(步骤454)。在一些实施例中,公共媒体包包括公共媒体标识符和媒体有效载荷,其包括如上所述的提取的公共部分。公共媒体标识符可以包括到位于客户端设备上的存储空间的地址(例如,C:\filename.mpeg或http://localhost/media/filename.mpeg)或到从其可以初始获得公共媒体包的网络位置的地址(例如,URL)。在其它实施方式中,地址仅是公共媒体包的文件名(例如,filename.mpeg)。媒体有效载荷可以以任何视频格式(例如3g2、3gp、avi、flv、mov、mpeg-1、mpeg-2、mpeg-4、mpg)、任何音频文件格式(例如mp3)、任何存档格式(例如,zip)、或任何其它已知的或以后发现的媒体容器格式存储。
在步骤454处,媒体内容服务器318将公共媒体包存储在数据库中并清除为子组设置的任何标志(步骤458)。媒体内容服务器318可以将计数器i增加1(步骤460)并且从数据库检索下一媒体项目(i)(步骤406),以在一些实施方式中重复整个过程。
图5是在用于减少对于流媒体内容到客户端设备需要的带宽的示例过程500的一个实施方式中由服务器和客户端设备采取的步骤的流程图。过程500包括内容递送阶段,其中内容从服务器(流程图的左侧)递送并且由客户端设备(流程图的右侧)接收。在一些实施方式中,过程500可以由例如媒体内容服务器318和客户端设备300执行。过程500的每个步骤可以被重新排序、添加、或者移除。
客户端设备300通过请求内容的项目开始过程500(步骤502)。内容的项目可以是包括多媒体内容(例如,影片、视频、漫画、电影、流视频)或赞助的内容(图片或多媒体形式的广告)的任何类型的内容。例如,客户端设备可以请求电影,或者在一些实施方式中,请求可以针对包含一起串连成单个文件的多媒体内容的多个项目的视频,诸如第一电影和第二电影。另外,视频可以以生产品牌(例如,符号)、版权免责声明、来自评级委员会的批准消息(例如,PG评级符号)、其它公共开放内容(例如,公开服务通告)的显示开始。例如,电影可以以关于电影“土拨鼠周”的30秒预告片开始。多媒体内容的每个剪辑可以有任何持续时间,诸如以秒、分钟、小时、或天。
媒体内容服务器318接收对于多媒体内容的请求(步骤504)并且继续从数据库中的多个媒体内容项目的子组或子集选择请求的项目(步骤506)。在一个实施方式中,数据库可以被包含在媒体内容服务器318内或者它可以位于与媒体内容服务器318通信的任何其它数据库中。另外,如图4中示出,多个媒体内容项目的每个子组可以先前由过程400构建。
仍然参考图5,媒体内容服务器318递送或发送公共媒体包的标识和公共媒体包之后的选择的内容的项目的部分、片段、或块(通常被称为“块”)的标识(步骤508)。例如,公共媒体包的标识可以包括存储在客户端设备300上的5秒剪辑的文件地址(例如,C:\movie_rating_PG.mpg或/localhost/media/movie_rating_PG.mpg),显示选择的内容的项目(例如,称为“土拨鼠周”的电影)的评级。在另一示例中,块的标识可以是到网络位置的地址,诸如URL(例如www.example.com/groundhogs_week.mpg),其中客户端设备300在用视频播放器渲染之前能够通过直接地流内容到客户端设备300上的视频播放器,或者直接地将内容下载到客户端设备300上的存储位置来访问选择的内容的项目。在一个实施方式中,项目可以通过有线或无线信道(红外线、蓝牙、WIFI、蜂窝网络、或任何其它移动通信信道)递送。在许多实施方式中,公共媒体包和内容的部分或(多个)块的标识可以作为内容项目的块的清单或列表递送。例如,清单可以包括包括关于内容项目的元数据(例如标题、艺术家、发布者、流派、大小、总持续时间等)的XML文件或类似文件,并且可以包括内容项目的每个块的URL(例如[address]/content_chunkl.mpg、[address]/content_chunk2.mpg等)。客户端设备可以依次检索块中的每一个并且缓冲和/或回放媒体的块。块URL中的一个或多个可以用存储在客户端设备上的公共媒体包的标识符替换,从而当检索和播放块时,客户端的媒体播放器可以从本地地址检索公共媒体包而不是从外部设备重新检索包。
由媒体内容服务器318的发送由客户端设备300接收,其提示客户端设备300询问公共媒体包是否已经存储在客户端设备300上(步骤512)。例如,媒体内容服务器318可能先前已经将公共媒体包发送或推送到包括客户端设备300的一个或多个客户端设备,而没有接收由客户端设备300的请求。公共媒体包的推送可以基于一个或多个触发事件,诸如对于公共媒体包的修改(例如,更新)、时间事件(例如,一天、一周、一月、一年中的特定时间,或任何其它时间组合)、日历事件、对于描述用户的兴趣的文件的更新(例如,位于客户端设备上的cookie文件示出客户现在对帆船有兴趣)、或由用户做出的搜索请求。在其它实施方式中,客户端可能先前已经检索了公共媒体包,诸如在对不同内容项目的流期间。在步骤512处,如果公共媒体包被确定为先前没有被接收和存储,则客户端设备300向媒体内容服务器318传送对于公共媒体包的副本的请求(步骤514)。在一个这样的实施方式中,清单可以包括公共媒体包的本地地址和替代地址两者,从而应用可以尝试本地检索公共媒体包,并且在失败时可以从替代的、外部的地址请求包。
在接收请求(步骤516)时,媒体内容服务器318从数据库选择公共媒体包(步骤618),并且将公共媒体包发送到客户端设备300(步骤520)。在接收公共媒体包(步骤522)之后,客户端设备300继续以下详细描述的步骤524。
参考回到步骤512,如果客户端设备300已经将公共媒体包的副本本地存储,则然后客户端设备300可以继续请求第一媒体内容项目的后续块(步骤524)。例如,客户端设备300可能已经请求(在步骤502处)2小时电影“土拨鼠周”,电影“土拨鼠周”可以以显示电影评级为PG(要求父母指导)的5秒引入剪辑开始。因此,在这个示例中,请求的内容的项目具有2小时5秒的持续时间。在一个这样的实施方式中,在接收请求时,媒体内容服务器318向客户端设备300提供2小时电影的URL,而没有开始的5秒引入电影评级剪辑。在其它实施方式中,诸如利用流媒体,如以上讨论的,媒体内容服务器可以为电影提供清单,所述电影包括用于一个或多个公共媒体包的一个或多个块URL和地址或标识符,诸如用于5秒引入电影评级剪辑的标识符和用于两小时电影的块的一个或多个URL。在一些实施例中,请求用于内容流到客户端设备300上的视频播放器(例如,视频播放器102)或是将内容下载并存储在客户端设备300上的请求。
在接收请求(步骤526)时,媒体内容服务器318向客户端设备300发送选择的内容的项目的后续部分或块(步骤520)。如先前讨论的,递送的内容的形式基于请求类型(即,流与下载)。在流内容的情况下,在视频播放器102上的视频回放的开始之前,后续块可能需要缓冲在客户端设备上,以确保公共媒体包和后续块两者的无缝渲染。例如,在“土拨鼠周”电影的足够后续块缓冲在客户端设备300上之前,如果视频播放器102开始PG电影评级的5秒剪辑的回放,则视频播放器102可能无法在5秒PG电影评级的结束处或接近结束处显示“土拨鼠周”的开始。因此,在一些实施方式中,后续块的大小和网络之上的发送速率(从服务器到客户端设备)两者可以帮助确定客户端设备300何时已经接收足够的后续块用于客户端设备300的无缝视频回放体验。
因此,客户端设备300可以计算缓冲的内容的大小,和/或测量缓冲或发送速率(步骤532)。如果客户端设备300基于这两个参数确定如果视频回放在这个时间点开始则视频回放可能不是无缝的,则过程500可以返回到步骤532,以重复。否则,客户端设备300可以开始先前提取的公共部分(例如,5秒电影评级剪辑)的渲染(步骤536),接着是序列中第一媒体内容项目的后续块的无缝渲染(步骤538)。
在一些实施方式中,客户端设备300可以请求多于一个后续块,诸如电影的第一个十秒段和第二个十秒段(两个段都是公共引入段之后)。块可以由相同媒体服务器或不同媒体服务器递送,允许必要时的负载平衡和请求分布。
因此,过程500确定是否必须请求额外的后续块(步骤540)。如果是这样,则过程500返回到步骤512,以重复该过程。否则,过程500在步骤542处结束。
关于以上描述,可以向用户提供控制,以允许用户关于是否以及何时本文描述的系统、程序或特征可以启用用户信息(例如,关于用户的社交网络、社交行为或活动、职业、用户的偏好、或用户的当前位置的信息)的收集,以及是否用户被传送来自服务器的内容或通信两者做出选择。另外,某些数据在存储或使用之前可以以一种或多种方式处理,从而移除个人可标识信息。例如,可以处理用户的身份,从而不能针对用户确定个人可标识信息,或者可以在获得位置信息(例如城市、ZIP码、或州级)的情况下将用户的地理位置一般化,从而不能确定用户的特定位置。因此,用户可以具有对收集关于用户的什么信息、如何使用该信息、和向用户提供什么信息的控制。在许多实施方式中,收集的关于用户的数据可以匿名或消歧以保护隐私。在许多实施方式中(其中关于客户端设备的用户的个人信息可以被收集用于测量或用于选择第三方内容),可以向用户提供用于控制可能收集个人信息(例如,关于用户的社交网络、社交行为或活动、用户的偏好、或用户的当前位置的信息)的程序或特征是否这样做的机会,或用于控制是否或如何将测量数据发送到内容媒体服务器的机会。另外,在由观众测量服务器存储或使用之前,某些数据可以以一种或多种方式处理,从而当生成参数(例如人口统计参数)时移除个人可标识信息。
在本说明书中描述的主题和操作的实施方式能够在数字电子电路中或者在计算机软件、固件、或硬件中实施,包括在本说明书中公开的结构及它们的结构等同物、或者它们的一个或多个的组合。本说明书中描述的主题的实施方式能够被实施为一个或多个计算机程序(即计算机程序指令的一个或多个模块)、被编码在用于由数据处理装置运行或用于控制数据处理装置的操作的一个或多个计算机存储介质上。可替代地或额外地,程序指令能够编码在人工生成的传播信号上,例如机器生成的电、光、或电磁信号,其被生成以编码用于由数据处理装置的运行的、用于向合适的接收器装置的发送的信息。计算机存储介质能够是计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或者它们中的一个或多个的组合,或者可以被包括在其中。此外,尽管计算机存储介质不是传播信号,但是计算机存储介质能够是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质也能够是一个或多个分离的组件或介质(例如,多个CD、磁盘、或其它存储设备),或被包括在其中。因此,计算机存储介质可以是有形的。
本说明书中描述的操作能够实施为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其它源接收的数据执行的操作。
术语“客户端”或“服务器”包括用于处理数据的各种装置、设备、和机器,包括可编程处理器、计算机、片上系统、或前述的多个或组合。装置能够包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置也能够包括为涉及的计算机程序创建运行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机、或它们的一个或多个的组合的代码。装置和运行环境能够实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
计算机程序(也被称为程序、软件、软件应用、脚本、或代码)能够用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且它可以以任何形式部署,包括作为独立程序或作为适合用于计算环境中的使用的模块、组件、子例程、对象、或其它单元。计算机程序可以(但不需要)对应于文件系统中的文件。程序能够存储在持有其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的部分中、专用于涉及的程序的单个文件中、或者多个协调文件(例如,存储一个或多个模块、子程序、或代码的部分的文件)中。计算机程序能够部署为在一台计算机或位于一个站点或跨越多个站点分布并且由通信网络互连的多台计算机上运行。
本说明书中描述的过程和逻辑流程能够由一个或多个可编程处理器执行,所述一个或多个可编程处理器运行一个或多个计算机程序以通过对输入数据操作并生成输出而执行动作。过程和逻辑流程也能够由、并且装置也能够实施为专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行。
适合用于计算机程序的运行的处理器包括通用和专用微处理器两者、以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机也将包括用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘、或光盘),或者可操作地耦合以从所述一个或多个大容量存储设备接收数据或向其传递数据或两者。然而,计算机不需要具有这样的设备。此外,能够将计算机嵌入另一设备中,例如移动电话、个人数字助理(personal digitalassistant,PDA)、移动音频或视频播放器、游戏机、全球定位系统(Global PositioningSystem,GPS)接收器、或便携式存储设备(例如,通用串行总线(USB)闪存驱动器),仅举几例。适合用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储设备,包括半导体存储设备(例如EPROM、EEPROM)、和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器能够由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施方式能够在具有显示设备(例如CRT(cathode ray tube,阴极射线管)、LCD(liquid crystal display,液晶显示器)、OLED(organic light emitting Diode,有机发光二极管)、TFT(thin-film transistor,薄膜晶体管)、等离子体、其它柔性配置、或用于向用户显示信息的任何其它监测器)、和用户能够通过它们向计算机提供输入的键盘、指点设备(例如鼠标、跟踪球等)、或触摸屏幕、触摸板等的计算机上实施。其它种类的设备也能够用于提供与用户的交互;提供给用户的反馈能够是任何形式的感官反馈,例如视觉反馈、听觉反馈、或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音、或触觉输入。另外,计算机能够通过向由用户使用的设备传送文档和从该设备接收文档而与用户交互;例如,通过响应于从网络浏览器接收的请求,将网页传送到用户的客户端设备上的网络浏览器。
本说明书中描述的主题的实施方式能够在计算系统中实施,所述计算系统包括后端组件(例如作为数据服务器)、或者包括中间件组件(例如应用服务器)、或者包括前端组件(例如客户端计算机,所述客户端计算机具有用户能够通过其与本说明书中描述的主题的实施方式交互的图形用户界面或网络浏览器)、或者一个或多个这样的后端、中间件、或前端组件的任何组合。系统的组件能够由数字数据通信的任何形式或介质(例如通信网络)互连。通信网络能够包括局域网(“LAN”)、广域网(“WAN”)、互联网络(例如,因特网)、和对等网络(例如,自组的对等网络)的各种组合。
本文公开的特征可以在智能电视模块(或者连接的电视模块、混合电视模块等)上实施,所述智能电视模块可以包括处理电路,所述处理电路被配置为将互联网连接性与更传统的电视节目源(例如,经由电缆、卫星、空中接收,或其它信号)集成。接收内容并向观众测量服务和/或面板提供者提供中继坪、标识符、或其它数据的客户端设备可以是智能电视模块。智能电视模块可以物理地并入到电视机中或者可以包括分离设备(诸如机顶盒、蓝光或其它数字媒体播放器、游戏机、酒店电视系统、和其它伴随设备)。智能电视模块可以被配置为允许观众搜索和查找网络上、本地电缆TV信道上、卫星TV信道上、或者存储在本地硬盘驱动上的视频、电影、照片、和其它内容。机顶盒(set-top box,STB)或机顶单元(set-topunit,STU)可以包括信息家电设备,所述信息家电设备可以包含调谐器并且连接到电视机和外部信号源,将信号转换成内容,内容然后显示在电视屏幕或其它显示设备上。智能电视模块可以被配置为提供包括用于多个不同应用的图标的主页屏幕或顶级屏幕,所述多个不同应用诸如网络浏览器和多个流媒体服务、连接的电缆或卫星媒体源、其它网络“通道”等。智能电视模块可以进一步被配置为向用户提供电子节目指南。智能电视模块的伴随应用可以在移动计算设备上操作,以向用户提供关于可用节目的额外信息,以允许用户控制智能电视模块等。在替代实施方式中,特征可以在膝上型计算机或其它个人计算机、智能电话、其它移动电话、手持式计算机、平板PC、或其它计算设备上实施。
尽管本说明书包含许多特定实施方式细节,但是这些不应该被解释为对任何发明或可能要求保护的范围的限制,而应该被解释为特定于特定发明的特定实施方式的特征的描述。本说明书中在分离的实施方式的上下文中描述的某些特征也能够以单个实施方式中的组合实施。相反,单个实施方式的上下文中描述的各种特征也能够在多个实施方式中分离地或以任何合适的子组合而实施。此外,虽然以上可以将特征描述为以某些组合作用并且甚至初始如此要求保护,但是来自要求保护的组合的一个或多个特征能够在一些情况下从组合去除,并且要求保护的组合可以指向子组合或子组合的变化。
类似地,尽管在附图中以特定次序描绘了操作,但是这不应该理解为要求以示出的特定次序或以顺序次序执行这样的操作,或者执行所有图示的操作,以达到期望的结果。在某些情况下,多任务和并行处理可能是有利的。而且,以上描述的实施方式中的各种系统组件的分离不应该被理解为在所有实施方式中要求这样的分离,并且应该理解,描述的程序组件和系统能够一般地一起集成在单个软件产品中或打包成多个软件产品。
因此,已经描述了主题的特定实施方式。其它实施方式在以下权利要求的范围内。在一些情况下,权利要求中列举的动作能够以不同的次序执行并且仍然实现期望的结果。另外,附图中描绘的过程不必要要求示出的特定次序或顺序次序,以实现期望的结果。在某些实施方式中,可以利用多任务或并行处理。
本文公开的一个实施方式是用于减少对于流媒体内容需要的带宽的方法。方法包括由流媒体服务器标识具有公共的媒体数据的部分的多个媒体内容项目的子集,并且由流媒体服务器从子集的第一媒体内容项目提取公共部分。方法也包括由流媒体服务器生成包括提取的公共部分的公共媒体包,由流媒体服务器向客户端媒体设备提供公共媒体包,并且由流媒体服务器从客户端媒体设备接收对于内容的项目的请求。方法也包括由流媒体服务器从多个媒体内容项目的子集选择内容的项目;并且由流媒体服务器向客户端媒体设备发送公共媒体包的标识和公共部分之后的选择的内容的项目的块的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并请求选择的内容的项目的后续块。
在一些实施方式中,方法包括由流媒体服务器从客户端媒体设备接收对于内容的项目的第二请求;由流媒体服务器从多个媒体内容项目的子集选择第二内容的项目;并且由流媒体服务器向客户端媒体设备发送公共媒体包的标识和公共部分之后的选择的第二内容的项目的块的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求选择的第二内容的项目的后续块。
在一些实施方式中,方法包括通过将多个媒体内容项目的第一媒体内容项目的部分与多个媒体内容项目的第二媒体内容项目的对应部分比较而标识具有媒体的公共部分的多个媒体内容项目的子集;并且响应于比较指示匹配,将第一媒体内容项目和第二媒体内容项目添加到子集。在其它实施方式中,方法包括生成公共媒体标识符和包括提取的公共部分的媒体有效载荷。在又一些其它实施方式中,方法包括发送清单,所述清单包括公共媒体包的客户端媒体设备的缓存中的地址和内容服务器处选择的内容的项目的块的地址。
在一些实施方式中,方法包括在对于后续块的请求的接收之前,由流媒体服务器发送用于由客户端媒体设备渲染的选择的内容的项目的后续块。在其它实施方式中,方法包括由流媒体服务器向多个媒体内容项目的子集中的每个内容的项目分配第一预定的质量分数;并且由流媒体服务器向多个媒体内容项目的第二、不重叠子集中的每个内容的项目分配第二预定的质量分数,第二质量分数低于第一质量分数。在又一些其它实施方式中,方法包括发送用于客户端基于选择的内容的项目的后续块的特性修改公共媒体包的指令。
另一方面,本公开指向用于减少对于流媒体内容需要的带宽的系统。系统包括包括流媒体服务器和视频分离器的计算设备。在一些实施方式中,系统包括经由网络与客户端媒体设备和存储设备通信的视频编码器,存储设备存储多个媒体内容项目。流媒体服务器包括电路,所述电路被配置为标识具有公共的媒体数据部分的、存储在存储设备中的多个媒体内容项目的子集。视频分离器包括电路,所述电路被配置为从子集的第一媒体内容项目提取公共部分。在一些实施方式中,视频编码器包括电路,所述电路经配置为生成包括提取的公共部分的公共媒体包。
在又一些其它实施方式中,流媒体服务器的电路被配置为经由网络向客户端媒体设备提供公共媒体包,从客户端媒体设备接收对于内容的项目的请求,从多个媒体内容项目的子集选择内容的项目,并且向客户端媒体设备发送公共媒体包的标识和公共部分之后的选择的内容的项目的块的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求选择的内容的项目的后续块。
在一些实施方式中,系统包括流媒体服务器的电路,所述电路进一步被配置为从客户端媒体设备接收对于内容的项目的第二请求,从多个媒体内容项目的子集选择第二内容的项目;并且向客户端媒体设备发送公共媒体包的标识和公共部分之后的选择的第二内容的项目的块的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求选择的第二内容的项目的后续块。
在一些实施方式中,系统包括流媒体服务器的电路,所述电路进一步被配置为标识具有媒体的公共部分的多个媒体内容项目的子集进一步包括将多个媒体内容项目的第一媒体内容项目的部分与多个媒体内容项目的第二媒体内容项目的对应部分比较;并且响应于比较指示匹配,将第一媒体内容项目和第二媒体内容项目添加到子集。在其它实施方式中,系统包括流媒体服务器的电路,所述电路进一步被配置为生成公共媒体包进一步包括生成公共媒体标识符和包括提取的公共部分的媒体有效载荷。
在一些实施方式中,系统包括流媒体服务器的电路,所述电路进一步被配置为发送公共媒体包的标识和选择的内容的项目的块的标识进一步包括发送清单,所述清单包括公共媒体包的客户端媒体设备的缓存中的地址、和内容服务器处的选择的内容的项目的块的地址。在其它实施方式中,流媒体服务器的电路进一步被配置为在对于后续块的请求的接收之前,由流媒体服务器发送用于由客户端媒体设备渲染的选择的内容的项目的后续块。
在一些实施方式中,权利要求9的系统包括流媒体服务器的电路,所述电路进一步被配置为由流媒体服务器向多个媒体内容项目的子集中的每个内容的项目分配第一预定的质量分数;并且由流媒体服务器向多个媒体内容项目的第二、不重叠子集中的每个内容的项目分配第二预定的质量分数,第二质量分数低于第一质量分数,并且由流媒体服务器向多个媒体内容项目的第二、不重叠子集中的每个内容的项目分配第二预定的质量分数,第二质量分数低于第一质量分数。在又一些其它实施方式中,系统包括流媒体服务器的电路,所述电路进一步被配置为发送公共媒体包的标识和选择的内容项目的块的标识进一步包括发送用于客户端基于选择的内容项目的后续块的特性修改公共媒体包的指令。
另一方面,本公开指向用于减少流媒体内容所需要的带宽的方法。方法包括由客户端媒体设备确定公共媒体包未被存储在客户端媒体设备上;公共媒体包包括公共媒体包的标识符和从多个媒体内容项目提取的公共部分。在一些实施方式中,方法包括由客户端媒体设备从流媒体服务器设备接收公共媒体包并且由客户端媒体设备从流媒体服务器请求内容的项目。在一些实施方式中,方法包括由客户端媒体设备从流媒体服务器接收公共媒体包的标识符和从多个媒体内容项目选择的第一媒体内容项目的后续块的标识,并且由客户端媒体设备请求第一媒体内容项目的后续块。在其它实施方式中,方法包括由客户端媒体设备接收第一媒体内容项目的后续块;并且由客户端媒体设备顺序地渲染先前提供的提取的公共部分和第一媒体内容项目的后续块。
在一些实施方式中,方法包括由客户端媒体设备从流媒体服务器请求第二内容的项目,并且由客户端媒体设备从流媒体服务器接收公共媒体包的标识符和从多个媒体内容项目选择的第二媒体内容项目的后续块的标识。在其它实施方式中,方法包括由客户端媒体设备请求第二媒体内容项目的后续块;由客户端媒体设备接收第二媒体内容项目的后续块;并且由客户端媒体设备顺序地渲染先前提供的提取的公共部分和第二媒体内容项目的后续块。
在一些实施方式中,方法包括接收公共媒体包进一步包括接收用于客户端媒体设备基于接收的、选择的内容的项目的后续块的特性修改提取的公共部分的指令。在其它实施方式中,方法包括接收第一媒体内容项目的后续块进一步包括在渲染先前提供的提取的公共部分的同时接收后续块。
提到这些实施方式不是为了限制或定义本公开的范围,而是提供本公开的实施方式的示例以帮助对其的理解。可以开发特定的实施方式以实现以下优点中的一个或多个。
Claims (38)
1.一种用于减少对于流媒体内容需要的带宽的方法,包括:
由流媒体服务器通过如下步骤标识具有公共的媒体数据的部分的多个媒体内容项目的子集,所述步骤包括:
将多个媒体内容项目的第一媒体内容项目的部分与多个媒体内容项目的第二媒体内容项目的对应部分比较;以及
响应于比较指示匹配,将第一媒体内容项目和第二媒体内容项目添加到所述子集;
由流媒体服务器从所述子集的第一媒体内容项目提取公共部分;
由流媒体服务器生成包括所提取的公共部分的公共媒体包;
由流媒体服务器向客户端媒体设备提供所述公共媒体包;
由流媒体服务器从客户端媒体设备接收对于内容的项目的请求;
由流媒体服务器从多个媒体内容项目的所述子集选择内容的项目;以及
由流媒体服务器向客户端媒体设备发送所述公共媒体包的标识和所述公共部分之后的所选择的内容的项目的块的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求所选择的内容的项目的后续块。
2.如权利要求1所述的方法,其中,标识多个媒体内容项目的子集进一步包括:
确定媒体内容项目和所述多个媒体内容项目的子集的第二媒体内容项目的匹配时隙的数量;
确定所述多个媒体内容项目的子集的第二媒体内容项目和第三媒体内容项目的匹配时隙的数量;
响应于第一媒体内容项目和第二媒体内容的匹配时隙的数量至少等于第二媒体内容项目和第三媒体内容项目之间的匹配时隙的数量,将第一媒体内容项目添加到所述多个媒体内容项目的子集。
3.如权利要求1所述的方法,其中,生成所述公共媒体包进一步包括生成公共媒体标识符和包括所提取的公共部分的媒体有效载荷。
4.如权利要求1所述的方法,其中,发送所述公共媒体包的标识和所述公共部分之后的所选择的内容的项目的块的标识进一步包括:
触发客户端媒体设备与流媒体服务器提供客户端媒体设备所选择的内容的项目的后续块同时地渲染先前提供的公共媒体包。
5.如权利要求1所述的方法,进一步包括:
在对于后续块的请求的接收之前,由流媒体服务器发送用于由客户端媒体设备渲染的所选择的内容的项目的后续块。
6.如权利要求1所述的方法,
其中,发送所述公共媒体包的标识和所选择的内容的项目的块的标识进一步包括:发送用于客户端基于所选择的内容的项目的后续块的特性修改所述公共媒体包的指令。
7.一种用于减少对于流媒体内容需要的带宽的方法,包括:
由流媒体服务器标识具有公共的媒体数据的部分的多个媒体内容项目的子集;
由流媒体服务器向多个媒体内容项目的所述子集中的每个内容的项目分配第一预定的质量分数;
由流媒体服务器向多个媒体内容项目的第二、不重叠子集中的每个内容的项目分配第二预定的质量分数,第二质量分数低于第一质量分数;
由流媒体服务器从所述子集的第一媒体内容项目提取公共部分;
由流媒体服务器生成包括所提取的公共部分的公共媒体包;
由流媒体服务器向客户端媒体设备提供所述公共媒体包;
由流媒体服务器从客户端媒体设备接收对于内容的项目的请求;
由流媒体服务器从多个媒体内容项目的所述子集选择内容的项目;以及
由流媒体服务器向客户端媒体设备发送所述公共媒体包的标识和所述公共部分之后的所选择的内容的项目的块的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求所选择的内容的项目的后续块。
8.一种用于减少对于流媒体内容需要的带宽的系统,包括:
计算设备,其包括流媒体服务器、视频分离器和视频编码器,经由网络与客户端媒体设备和存储设备通信,所述存储设备存储多个媒体内容项目;
其中,所述流媒体服务器包括电路,所述电路被配置为:
通过如下步骤标识具有公共的媒体数据的部分的、存储在存储设备中的多个媒体内容项目的子集,所述步骤包括:
将多个媒体内容项目的第一媒体内容项目的部分与多个媒体内容项目的第二媒体内容项目的对应部分比较;以及
响应于比较指示匹配,将第一媒体内容项目和第二媒体内容项目添加到所述子集;
其中,所述视频分离器包括电路,所述电路被配置为:
从所述子集的第一媒体内容项目提取公共部分;
其中,所述视频编码器包括电路,所述电路被配置为:
生成包括所提取的公共部分的公共媒体包;
其中,所述流媒体服务器的电路进一步被配置为:
经由网络向客户端媒体设备提供公共媒体包,
从客户端媒体设备接收对于内容的项目的请求,
从多个媒体内容项目的所述子集选择内容的项目,以及
向客户端媒体设备发送所述公共媒体包的标识和所述公共部分之后的所选择的内容的项目的块的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求所选择的内容的项目的后续块。
9.如权利要求8所述的系统,其中,所述流媒体服务器的电路进一步被配置为进一步通过如下步骤标识具有公共的媒体的部分的多个媒体内容项目的子集,所述步骤包括:
确定第一媒体内容项目和所述多个媒体内容项目的子集的第二媒体内容项目的匹配时隙的数量;
确定所述多个媒体内容项目的子集的第二媒体内容项目和第三媒体内容项目的匹配时隙的数量;以及
响应于第一媒体内容项目和第二媒体内容的匹配时隙的数量至少等于第二媒体内容项目和第三媒体内容项目之间的匹配时隙的数量,将第一媒体内容项目添加到所述多个媒体内容项目的子集。
10.如权利要求8所述的系统,其中,所述流媒体服务器的电路进一步被配置为进一步通过如下步骤生成公共媒体包:
生成公共媒体标识符和包括所提取的公共部分的媒体有效载荷。
11.如权利要求8所述的系统,其中,所述流媒体服务器的电路进一步被配置为通过如下步骤发送所述公共媒体包的标识和所述公共部分之后的所选择的内容的项目的块的标识:
触发客户端媒体设备与流媒体服务器提供客户端媒体设备所选择的内容的项目的后续块同时地渲染先前提供的公共媒体包。
12.如权利要求8所述的系统,其中,所述流媒体服务器的电路进一步被配置为:
在对于后续块的请求的接收之前,发送用于由客户端媒体设备渲染的所选择的内容的项目的后续块。
13.如权利要求8所述的系统,其中,所述流媒体服务器的电路进一步被配置为:
由流媒体服务器向多个媒体内容项目的所述子集中的每个内容的项目分配第一预定的质量分数;以及
由流媒体服务器向多个媒体内容项目的第二、不重叠子集中的每个内容的项目分配第二预定的质量分数,第二质量分数低于第一质量分数。
14.如权利要求8所述的系统,其中,所述流媒体服务器的电路进一步被配置为通过如下步骤发送所述公共媒体包的标识和所选择的内容的项目的块的标识:
发送用于客户端基于所选择的内容的项目的后续块的特性修改所述公共媒体包的指令。
15.一种用于减少对于流媒体内容需要的带宽的方法,包括:
由客户端媒体设备确定公共媒体包未被存储在客户端媒体设备上,所述公共媒体包包括公共媒体包的标识符和从多个媒体内容项目提取的公共部分;
由客户端媒体设备从流媒体服务器设备接收所述公共媒体包,
所述公共媒体包由流媒体服务器设备响应于多个媒体内容项目的第一媒体内容项目的部分与多个媒体内容项目的第二媒体内容项目的对应部分之间的比较指示匹配,并且将第一媒体内容项目和第二媒体内容项目添加到多个媒体内容项目的子集而生成;
由客户端媒体设备从流媒体服务器请求内容的项目;
由客户端媒体设备从流媒体服务器接收所述公共媒体包的标识符和从多个媒体内容项目选择的第一媒体内容项目的后续块的标识;
由客户端媒体设备请求第一媒体内容项目的后续块;
由客户端媒体设备接收第一媒体内容项目的后续块;以及
由客户端媒体设备顺序地渲染先前提供的所提取的公共部分和第一媒体内容项目的后续块。
16.如权利要求15所述的方法,进一步包括:
由客户端媒体设备从流媒体服务器请求第二内容的项目;
由客户端媒体设备从流媒体服务器接收所述公共媒体包的标识符和从多个媒体内容项目选择的第二媒体内容项目的后续块的标识;
由客户端媒体设备请求第二媒体内容项目的后续块;
由客户端媒体设备接收第二媒体内容项目的后续块;以及
由客户端媒体设备顺序地渲染先前提供的所提取的公共部分和第二媒体内容项目的后续块。
17.如权利要求15所述的方法,其中,渲染先前提供的所提取的公共部分进一步包括在渲染先前提供的所提取的公共部分的同时接收第一媒体内容的后续块的部分。
18.如权利要求15所述的方法,其中,渲染先前提供的所提取的公共部分进一步包括:
确定发送到客户端媒体设备的第一媒体内容的后续块的部分的大小;
确定第一媒体内容的后续块的发送速率;以及
响应于大小和发送速率满足特性而渲染先前提供的所提取的公共部分。
19.一种用于减少对于流媒体内容需要的带宽的方法,包括:
由流媒体服务器标识具有公共的媒体数据的部分的多个媒体内容项目的子集;
由流媒体服务器从所述子集的第一媒体内容项目提取公共部分;
由流媒体服务器生成包括所提取的公共部分的公共媒体包;
由流媒体服务器向客户端媒体设备提供所述公共媒体包;
由流媒体服务器从客户端媒体设备接收对于内容的项目的请求;
由流媒体服务器从多个媒体内容项目的所述子集选择内容的项目;以及
由流媒体服务器向客户端媒体设备发送所述公共媒体包的标识和所述公共部分之后的所选择的内容的项目的片段的标识,触发客户端媒体设备渲染先前提供的公共媒体包并且请求所选择的内容的项目的后续片段。
20.如权利要求19所述的方法,其中,标识多个媒体内容项目的子集进一步包括:
确定媒体内容项目和所述多个媒体内容项目的子集的第二媒体内容项目的匹配时隙的数量;
确定所述多个媒体内容项目的子集的第二媒体内容项目和第三媒体内容项目的匹配时隙的数量;
响应于第一媒体内容项目和第二媒体内容的匹配时隙的数量至少等于第二媒体内容项目和第三媒体内容项目之间的匹配时隙的数量,将第一媒体内容项目添加到所述多个媒体内容项目的子集。
21.如权利要求19所述的方法,其中,生成所述公共媒体包进一步包括生成公共媒体标识符和包括所提取的公共部分的媒体有效载荷。
22.如权利要求21所述的方法,其中,所述公共媒体标识符是到客户端媒体设备的存储空间的地址或者到网络位置的地址。
23.如权利要求19所述的方法,其中,所述片段由块组成。
24.如权利要求19所述的方法,进一步包括:
在对于后续片段的请求的接收之前,由流媒体服务器发送用于由客户端媒体设备渲染的所选择的内容的项目的后续片段。
25.如权利要求19所述的方法,其中,发送所述公共部分之后的所选择的内容的项目的片段的标识包括发送所选择的内容的项目的后续片段的多个标识。
26.如权利要求19所述的方法,其中,发送所述公共媒体包的标识和所选择的内容的项目的片段的标识进一步包括发送用于客户端媒体设备基于所选择的内容的项目的后续片段的特性修改所述公共媒体包的指令。
27.一种用于减少对于流媒体内容需要的带宽的系统,包括:
计算设备,其包括流媒体服务器、视频分离器和视频编码器,经由网络与客户端媒体设备和存储设备通信,所述存储设备存储多个媒体内容项目;
其中,所述流媒体服务器包括电路,所述电路被配置为:
标识具有公共的媒体数据的部分的、存储在存储设备中的多个媒体内容项目的子集;
其中,所述视频分离器包括电路,所述电路被配置为:
从所述子集的第一媒体内容项目提取公共部分;
其中,所述视频编码器包括电路,所述电路被配置为:
生成包括所提取的公共部分的公共媒体包;
其中,所述流媒体服务器的电路进一步被配置为:
经由网络向客户端媒体设备提供公共媒体包,
从客户端媒体设备接收对于内容的项目的请求,
从多个媒体内容项目的所述子集选择内容的项目,以及
向客户端媒体设备发送所述公共媒体包的标识和所述公共部分之后的所选择的内容的项目的片段的标识,以触发客户端媒体设备渲染先前提供的公共媒体包并且请求所选择的内容的项目的后续片段。
28.如权利要求27所述的系统,其中,所述流媒体服务器的电路进一步被配置为进一步通过如下步骤标识具有公共的媒体的部分的多个媒体内容项目的子集,所述步骤包括:
确定第一媒体内容项目和所述多个媒体内容项目的子集的第二媒体内容项目的匹配时隙的数量;
确定所述多个媒体内容项目的子集的第二媒体内容项目和第三媒体内容项目的匹配时隙的数量;以及
响应于第一媒体内容项目和第二媒体内容的匹配时隙的数量至少等于第二媒体内容项目和第三媒体内容项目之间的匹配时隙的数量,将第一媒体内容项目添加到所述多个媒体内容项目的子集。
29.如权利要求27所述的系统,其中,所述流媒体服务器的电路进一步被配置为进一步通过如下步骤生成公共媒体包:
生成公共媒体标识符和包括所提取的公共部分的媒体有效载荷。
30.如权利要求29所述的系统,其中,所述公共媒体标识符是到客户端媒体设备的存储空间的地址或者到网络位置的地址。
31.如权利要求27所述的系统,其中,所述流媒体服务器的电路进一步被配置为通过如下步骤发送所述公共媒体包的标识和所述公共部分之后的所选择的内容的项目的片段的标识:
触发客户端媒体设备与流媒体服务器提供客户端媒体设备所选择的内容的项目的后续片段同时地渲染先前提供的公共媒体包。
32.如权利要求27所述的系统,其中,所述流媒体服务器的电路进一步被配置为:
在对于后续片段的请求的接收之前,发送用于由客户端媒体设备渲染的所选择的内容的项目的后续片段。
33.如权利要求27所述的系统,其中,发送所述公共部分之后的所选择的内容的项目的片段的标识包括发送所选择的内容的项目的后续片段的多个标识。
34.如权利要求27所述的系统,其中,所述流媒体服务器的电路进一步被配置为通过如下步骤发送所述公共媒体包的标识和所选择的内容的项目的片段的标识:
发送用于客户端媒体设备基于所选择的内容的项目的后续片段的特性修改所述公共媒体包的指令。
35.一种用于减少对于流媒体内容需要的带宽的方法,包括:
由客户端媒体设备确定公共媒体包未被存储在客户端媒体设备上;所述公共媒体包包括公共媒体包的标识符和从多个媒体内容项目提取的公共部分;
由客户端媒体设备从流媒体服务器设备接收所述公共媒体包;
由客户端媒体设备从流媒体服务器请求内容的项目;
由客户端媒体设备从流媒体服务器接收所述公共媒体包的标识符和从多个媒体内容项目选择的第一媒体内容项目的后续片段的标识;
由客户端媒体设备请求第一媒体内容项目的后续片段;
由客户端媒体设备接收第一媒体内容项目的后续片段;以及
由客户端媒体设备顺序地渲染先前提供的所提取的公共部分和第一媒体内容项目的后续片段。
36.如权利要求35所述的方法,进一步包括:
由客户端媒体设备从流媒体服务器请求第二内容的项目;
由客户端媒体设备从流媒体服务器接收所述公共媒体包的标识符和从多个媒体内容项目选择的第二媒体内容项目的后续片段的标识;
由客户端媒体设备请求第二媒体内容项目的后续片段;
由客户端媒体设备接收第二媒体内容项目的后续片段;以及
由客户端媒体设备顺序地渲染先前提供的所提取的公共部分和第二媒体内容项目的后续片段。
37.如权利要求35所述的方法,其中,渲染先前提供的所提取的公共部分进一步包括在渲染先前提供的所提取的公共部分的同时接收第一媒体内容的后续片段的部分。
38.如权利要求35所述的方法,其中,渲染先前提供的所提取的公共部分进一步包括:
确定发送到客户端媒体设备的第一媒体内容的后续片段的部分的大小;
确定第一媒体内容的后续片段的发送速率;以及
响应于大小和发送速率满足特性而渲染先前提供的所提取的公共部分。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/140,203 US10298646B2 (en) | 2016-04-27 | 2016-04-27 | Similar introduction advertising caching mechanism |
US15/140,203 | 2016-04-27 | ||
PCT/US2016/069611 WO2017189054A1 (en) | 2016-04-27 | 2016-12-30 | Similar introduction caching mechanism |
CN201680074010.7A CN108476329B (zh) | 2016-04-27 | 2016-12-30 | 用于减少对于流媒体内容需要的带宽的方法和系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680074010.7A Division CN108476329B (zh) | 2016-04-27 | 2016-12-30 | 用于减少对于流媒体内容需要的带宽的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111954033A true CN111954033A (zh) | 2020-11-17 |
CN111954033B CN111954033B (zh) | 2023-01-13 |
Family
ID=58018198
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010757018.1A Active CN111954033B (zh) | 2016-04-27 | 2016-12-30 | 用于减少对于流媒体内容需要的带宽的方法和系统 |
CN201680074010.7A Active CN108476329B (zh) | 2016-04-27 | 2016-12-30 | 用于减少对于流媒体内容需要的带宽的方法和系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680074010.7A Active CN108476329B (zh) | 2016-04-27 | 2016-12-30 | 用于减少对于流媒体内容需要的带宽的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10298646B2 (zh) |
EP (2) | EP3375192B1 (zh) |
KR (1) | KR102093429B1 (zh) |
CN (2) | CN111954033B (zh) |
WO (1) | WO2017189054A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9825801B1 (en) | 2016-07-22 | 2017-11-21 | Spotify Ab | Systems and methods for using seektables to stream media items |
US10079871B2 (en) | 2016-10-10 | 2018-09-18 | Google Llc | Customizing media items for playback on alternative playback devices paired with a user device |
US10349108B2 (en) | 2017-08-24 | 2019-07-09 | Mobitv, Inc. | System and method for storing multimedia files using an archive file format |
US10567321B2 (en) * | 2018-01-02 | 2020-02-18 | Snap Inc. | Generating interactive messages with asynchronous media content |
EP3818722A1 (en) * | 2018-07-05 | 2021-05-12 | Dolby International AB | Processing media data structures |
US10820053B2 (en) | 2018-12-05 | 2020-10-27 | Hulu, LLC | Extension bundle generation for recording extensions in video delivery |
US11663633B2 (en) * | 2019-12-10 | 2023-05-30 | GumGum, Inc. | Systems and methods for improved server-side contextual page analysis |
US11036781B1 (en) | 2020-01-30 | 2021-06-15 | Snap Inc. | Video generation system to render frames on demand using a fleet of servers |
US11991419B2 (en) | 2020-01-30 | 2024-05-21 | Snap Inc. | Selecting avatars to be included in the video being generated on demand |
WO2021155249A1 (en) | 2020-01-30 | 2021-08-05 | Snap Inc. | System for generating media content items on demand |
US11356720B2 (en) * | 2020-01-30 | 2022-06-07 | Snap Inc. | Video generation system to render frames on demand |
US11284144B2 (en) | 2020-01-30 | 2022-03-22 | Snap Inc. | Video generation system to render frames on demand using a fleet of GPUs |
CN115314738B (zh) * | 2022-08-15 | 2024-04-26 | 城云科技(中国)有限公司 | 对hook的数据添加标签处理拉流的方法及装置 |
CN115712583B (zh) * | 2023-01-09 | 2023-04-18 | 之江实验室 | 一种提升分布式缓存跨节点访问性能的方法及装置、介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039699B1 (en) * | 2000-05-02 | 2006-05-02 | Microsoft Corporation | Tracking usage behavior in computer systems |
CN101304393A (zh) * | 2007-02-16 | 2008-11-12 | 格努姆有限公司 | 多媒体数字接口系统及其方法 |
US20090099911A1 (en) * | 2007-10-11 | 2009-04-16 | Sony Corporation | Systems and Methods for Managing Advertising Content Corresponding to Streaming Media Content |
CN102223407A (zh) * | 2010-04-01 | 2011-10-19 | 苹果公司 | 数据处理系统及其方法 |
US20120076357A1 (en) * | 2010-09-24 | 2012-03-29 | Kabushiki Kaisha Toshiba | Video processing apparatus, method and system |
US20150086033A1 (en) * | 2013-09-20 | 2015-03-26 | Rawles Llc | Reduced Latency Electronic Content System |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7173863B2 (en) | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
US8949452B2 (en) | 2005-04-07 | 2015-02-03 | Opanga Networks, Inc. | System and method for progressive download with minimal play latency |
US20070136741A1 (en) * | 2005-12-09 | 2007-06-14 | Keith Stattenfield | Methods and systems for processing content |
US20080172430A1 (en) | 2007-01-11 | 2008-07-17 | Andrew Thomas Thorstensen | Fragmentation Compression Management |
US8812673B2 (en) * | 2007-02-14 | 2014-08-19 | Alcatel Lucent | Content rate control for streaming media servers |
US7925774B2 (en) | 2008-05-30 | 2011-04-12 | Microsoft Corporation | Media streaming using an index file |
US8996858B2 (en) * | 2008-11-05 | 2015-03-31 | Telefonaktiebolaget L M Ericsson (Publ) | Systems and methods for utilizing IMS data security mechanisms in a circuit switched network |
US8898247B2 (en) | 2009-06-17 | 2014-11-25 | Telefonaktiebolaget L M Ericsson (Publ) | Network cache architecture storing pointer information in payload data segments of packets |
US20120079059A1 (en) | 2010-09-27 | 2012-03-29 | Motorola-Mobility, Inc. | Selectively receiving media content |
GB2491574B (en) | 2011-06-02 | 2013-11-20 | Nds Ltd | Content insertion in adaptive streams |
WO2013041922A1 (en) | 2011-09-23 | 2013-03-28 | Gilat Satellite Networks, Ltd. | Decentralized caching system |
US8645485B1 (en) * | 2012-01-30 | 2014-02-04 | Google Inc. | Social based aggregation of related media content |
WO2013148003A1 (en) | 2012-03-26 | 2013-10-03 | Unicorn Media, Inc. | Dynamic audio track selection for media streaming |
US9344517B2 (en) | 2013-03-28 | 2016-05-17 | Sonic Ip, Inc. | Downloading and adaptive streaming of multimedia content to a device with cache assist |
US9722852B2 (en) * | 2013-05-24 | 2017-08-01 | Cisco Technology, Inc. | On-demand encapsulating of timed metadata in a network environment |
US10754511B2 (en) * | 2013-11-20 | 2020-08-25 | Google Llc | Multi-view audio and video interactive playback |
EP2942971B8 (en) * | 2014-05-08 | 2019-07-17 | Icomera AB | Method and system for bandwidth constrained media streaming to a moving vehicle |
-
2016
- 2016-04-27 US US15/140,203 patent/US10298646B2/en active Active
- 2016-12-30 CN CN202010757018.1A patent/CN111954033B/zh active Active
- 2016-12-30 CN CN201680074010.7A patent/CN108476329B/zh active Active
- 2016-12-30 KR KR1020187016251A patent/KR102093429B1/ko active IP Right Grant
- 2016-12-30 EP EP16836192.1A patent/EP3375192B1/en active Active
- 2016-12-30 WO PCT/US2016/069611 patent/WO2017189054A1/en active Application Filing
- 2016-12-30 EP EP20203920.2A patent/EP3790278A1/en active Pending
-
2019
- 2019-05-10 US US16/409,238 patent/US10659506B2/en active Active
-
2020
- 2020-05-04 US US16/866,319 patent/US11019125B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039699B1 (en) * | 2000-05-02 | 2006-05-02 | Microsoft Corporation | Tracking usage behavior in computer systems |
CN101304393A (zh) * | 2007-02-16 | 2008-11-12 | 格努姆有限公司 | 多媒体数字接口系统及其方法 |
US20090099911A1 (en) * | 2007-10-11 | 2009-04-16 | Sony Corporation | Systems and Methods for Managing Advertising Content Corresponding to Streaming Media Content |
CN102223407A (zh) * | 2010-04-01 | 2011-10-19 | 苹果公司 | 数据处理系统及其方法 |
US20120076357A1 (en) * | 2010-09-24 | 2012-03-29 | Kabushiki Kaisha Toshiba | Video processing apparatus, method and system |
US20150086033A1 (en) * | 2013-09-20 | 2015-03-26 | Rawles Llc | Reduced Latency Electronic Content System |
Also Published As
Publication number | Publication date |
---|---|
EP3375192A1 (en) | 2018-09-19 |
US10659506B2 (en) | 2020-05-19 |
EP3790278A1 (en) | 2021-03-10 |
KR102093429B1 (ko) | 2020-03-25 |
CN108476329B (zh) | 2020-08-25 |
CN108476329A (zh) | 2018-08-31 |
US10298646B2 (en) | 2019-05-21 |
CN111954033B (zh) | 2023-01-13 |
US20200267196A1 (en) | 2020-08-20 |
US20190268395A1 (en) | 2019-08-29 |
EP3375192B1 (en) | 2021-01-27 |
WO2017189054A1 (en) | 2017-11-02 |
KR20180081783A (ko) | 2018-07-17 |
US11019125B2 (en) | 2021-05-25 |
US20170318065A1 (en) | 2017-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108476329B (zh) | 用于减少对于流媒体内容需要的带宽的方法和系统 | |
US11816683B2 (en) | Refreshing content items in offline or virally distributed content | |
EP3688996B1 (en) | Methods and systems for determining a video player playback position | |
US9264750B2 (en) | Advertising insertion for playback of video streams on user devices | |
CN114727134B (zh) | 中断经不可侵犯清单协议提供的流传输内容的系统和方法 | |
US10015535B2 (en) | Systems and methods for providing content in a content list | |
US20160316233A1 (en) | System and method for inserting, delivering and tracking advertisements in a media program | |
US9491496B2 (en) | Systems and methods for delivering content to a media content access device | |
JP5833114B2 (ja) | Httpライブストリーミングと両立できるようにストリーミングメディアプログラムおよび目標とされた広告を供給する方法および装置 | |
US20120210351A1 (en) | Presentation of customized digital media programming | |
US20240022771A1 (en) | Methods and systems for dynamic routing of content using a static playlist manifest | |
US20100306023A1 (en) | Systems and Methods of Selecting Advertisements Using a Local User Profile | |
US10845948B1 (en) | Systems and methods for selectively inserting additional content into a list of content |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |