CN108370449B - 分段视频内容存储方法及系统 - Google Patents

分段视频内容存储方法及系统 Download PDF

Info

Publication number
CN108370449B
CN108370449B CN201680072258.XA CN201680072258A CN108370449B CN 108370449 B CN108370449 B CN 108370449B CN 201680072258 A CN201680072258 A CN 201680072258A CN 108370449 B CN108370449 B CN 108370449B
Authority
CN
China
Prior art keywords
record
segment
request
content
storage
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
CN201680072258.XA
Other languages
English (en)
Other versions
CN108370449A (zh
Inventor
克林特·瑞克
霍伊-塔夫·周
高迪史·库马拉斯瓦米
大卫·斯图尔特·摩根
伊凡·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.)
Enders GmbH
Original Assignee
Xina Media Co 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 Xina Media Co ltd filed Critical Xina Media Co ltd
Priority claimed from PCT/US2016/056133 external-priority patent/WO2017062869A1/en
Publication of CN108370449A publication Critical patent/CN108370449A/zh
Application granted granted Critical
Publication of CN108370449B publication Critical patent/CN108370449B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/2181Source of audio or video content, e.g. local disk arrays comprising remotely distributed storage units, e.g. when movies are replicated over a plurality of video servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • 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/23113Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving housekeeping operations for stored content, e.g. prioritizing content for deletion because of storage space restrictions
    • 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/232Content retrieval operation locally within server, e.g. reading video streams from disk arrays
    • 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
    • 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/27Server based end-user applications
    • H04N21/274Storing end-user multimedia data in response to end-user request, e.g. network recorder
    • H04N21/2747Remote storage of video programs received via the downstream path, e.g. from the server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8355Generation of protective data, e.g. certificates involving usage data, e.g. number of copies or viewings allowed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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
    • G06F16/71Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Human Computer Interaction (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

在一个实施例中,一种方法包括:接收内容片段;确定该片段由记录数据库的至少一个活动记录所涉及;并且响应于该确定,存储片段。

Description

分段视频内容存储方法及系统
相关申请的交叉引用
本申请要求于2015年10月9日提交的美国临时专利申请No. 62/239,373和62/239,379的优先权,这两申请通过引用全部被并入本文。
技术领域
本公开一般涉及存储系统,并且具体涉及能够为多个用户存储视频内容数据的系统、方法和装置。
背景技术
对于存储系统正在进行的开发、维护和扩展通常涉及为多个用户提供数据存储。随着用户数量的增加,信令量、使用的带宽以及存储的元数据增加,这降低了存储系统的效率。
附图说明
为了使本公开能够被本领域普通技术人员理解,可以通过参考一些说明性实现方式的方面来进行更详细的描述,其中一些实现方式在附图中示出。
图1是根据一些实现方式的存储系统的框图。
图2是根据一些实现方式的记录请求的框图。
图3是根据一些实现方式的处理记录请求的方法的流程图表示。
图4是根据一些实现方式的示例记录数据库的框图。
图5是根据一些实现方式的处理接收的片段的方法的流程图表示。
图6是根据一些实现方式的处理记录删除请求的方法的流程图表示。
图7是根据一些实现方式的处理记录修改请求的方法的流程图表示。
图8是根据一些实现方式的处理记录请求的方法的流程图表示。
图9是根据一些实现方式的计算设备的框图。
根据常规实践,附图中示出的各种特征可能不是按比例绘制的,因为为了清楚起见,各种特征的尺寸可以任意扩大或缩小。此外,附图可能没有描述由说明书所提供的给定系统、方法或装置的所有方面和/或变体。最后,贯穿附图使用相同的附图标记来表示相似的特征。
具体实施方式
本文描述了许多细节以便提供对附图中所示的说明性实现方式的透彻理解。然而,附图仅示出了本公开的一些示例方面,因此不被认为是限制性的。本领域的普通技术人员将从本公开中领会到其他有效方面和/或变体不包括这里描述的示例实现方式的全部具体细节。虽然示出和描述了相关特征,但是本领域普通技术人员将从本公开中理解:包括公知系统、方法、部件、设备和电路的各种其他特征未详细示出或描述,以便为了简洁并且为了不模糊本文公开的示例实现方式的更多相关方面。
概述
本文公开的各种实现方式包括用于为多个用户高效地存储数据的装置、系统和方法。例如,在一些实现式中,一种方法包括一种方法包括:接收内容片段;确定片段由记录数据库的至少一个活动记录所涉及;并且响应于确定,存储片段。
示例实施例
当存储系统接收到供多个用户消费的流送媒体内容时,策略可以指示单个公共副本被存储以供这些用户中的任何用户(或至少多个用户的子集) 消费,或者指示唯一副本被存储以供每个个体用户(或至少不在所述子集中的用户)消费。这些策略可以基于与内容相关的法律要求、存储系统的限制(例如,可用存储空间)或其他因素。
这些策略可能因多个用户的位置和内容而异。例如,为了适应版权的合理使用,策略可以规定脚本化戏剧电视节目被存储作为每个个体用户的唯一副本。作为另一示例,策略可以规定教育节目可被存储作为供任何用户消费的单个公共副本。作为又一示例,策略可以规定来自公共广播频道的任何节目可被存储作为供任何用户消费的单个公共副本。作为又一示例,策略可以规定权利已被协商的特定节目或频道可以被存储作为供任何用户消费的单个公共副本。
在一些实施例中,策略可以指示存储公共副本以供用户的子集中的任何用户(例如,第一辖区内的用户)消费,并且存储唯一副本以供不在所述子集中的每个个体用户消费。例如,策略可以规定大学体育赛事的广播可被存储作为供大学所在州内的任何用户消费的单个公共副本,而该体育赛事的唯一副本被存储以供不在该州的个体用户消费。
为每个用户存储流送媒体内容的唯一副本提出了许多挑战,包括用于存储相同数据的多个副本的存储空间。因此,如果可能的话(例如,由策略允许),希望使用单个公共副本为多个用户存储数据。在许多基于云的 DVR系统中,多达一半的记录请求可能针对非标准时间(例如,不限于小时或半小时的更改)。此外,存储系统可以接收对开始时间和结束时间具有很大程度变化的媒体内容的记录请求。例如,请求名义上在下午8点至下午9点之间广播的表演的记录的两个用户可分别请求从下午8点至9点以及从下午7点57分至9点03分的记录。
所描述的各种实现方式包括一种存储系统,其可以同时在不同的存储策略下存储内容,例如公共副本存储或唯一副本存储,并且可以将各种日程请求映射到基础记录,使得包括共享相同内容的用户在内的所有用户拥有他们自己的基于他们的日程请求的个性化内容视图。
图1是存储系统100的框图。尽管示出了某些具体特征,但是本领域的普通技术人员将从本公开内容中理解,为了简洁起见并且为了不混淆在此公开的示例实现方面的更相关方面,没有示出各种其他特征。因此,存储系统100包括接收数据101的摄取器模块110、接收为用户存储数据 101的请求102的记录器模块120、以及存储数据101的对象存储库130。对象存储库130包括可存储对象的多个存储位置。对象存储库130可以为多个请求用户中的每一者存储数据101的唯一副本以及存储在多个请求用户之间共享的数据101的公共副本。
存储系统的每个模块110、120、130可以在相同或分离的计算设备上实现。在一些实施方式中,对象存储库130可以是包括通过多个位置联网的多个计算设备的分布式对象存储库。
在一些实现中,存储系统100被配置为存储与多播(例如,广播)内容相关联的视频数据,并且因此充当数字视频记录器(DVR)。由于数据101和请求102都可以通过网络来接收,所以存储系统100可以用作基于云的DVR。
作为示例,用户可以使用存储系统100在存储系统内记录电视节目并且在比广播时间晚的时间观看电视节目。为此,记录器模块120从用户接收指示用户期望记录特定电视节目的记录请求102。如图2所示,记录请求102可以包括记录请求标识符(ID)210、频道ID220和表示记录的时间跨度的时间数据230。
记录请求ID 210(被称为“请求ID”)可以是对于每个记录请求不同的唯一标识符。例如,请求ID 210可以是UUID(通用唯一标识符)。在一些实现方式中,请求ID 210包括用户ID或者至少指示用户标识符或用户设备(诸如机顶盒)。
频道ID 220可以是指示广播频道或子频道(也称为简档(profile)) 的标识符。在一些实现方式中,广播频道可以包括相同广播的多个版本的子频道。例如,广播频道可以包括具有不同比特率或具有不同音频/字幕的视频数据的子频道(也称为频道)。因此,在一些实现方式中,频道ID 220指示广播频道,并且记录请求102还包括指示子频道或简档的数据。在一些实现方式中,频道ID 220指示子频道或简档。
在各种实现方式中,时间数据230可以以各种方式指示记录的时间跨度。在一些实现方式中,时间数据230指示记录的开始时间和结束时间。在一些实现方式中,时间数据230指示记录的开始时间和记录长度。在一些实现方式中,时间数据230指示一个或多个标准节目时隙(例如,下午 8:00至8:30以及下午8:30至9:00),并且记录器模块230基于节目时隙来确定记录的时间跨度。
响应于接收到记录请求102,记录模块120指示摄取器模块110在时间跨度期间从指示的频道(或子频道)接收(或撷取)数据101并将数据 101返回到记录器模块120。当从摄取器模块110接收到时,记录器模块 120根据存储策略将数据101存储在对象存储库130中以供用户稍后访问。
当多个用户提交存储相同数据的请求(例如,记录相同内容)时,记录器模块120可以以多种方式处理多个请求,以提高存储系统100的效率。例如,记录器模块120可以接收第一记录请求(具有第一请求ID、频道 ID和时间数据)和第二记录请求(具有第二请求ID、相同的频道ID和相同的或者至少重叠的时间数据)。
在一些实现方式中,记录器模块120从摄取器模块110接收数据,并且对于每个记录请求,指示对象存储库130将数据的唯一副本作为单独的对象存储在对象存储库130中。例如,记录器模块120可以向对象存储库 130提交包括数据的第一PUT命令,并且还可以向对象存储库130提交包括第二请求ID和数据的第二PUT命令。记录器模块120可以存储将第一请求ID与由第一PUT命令创建的对象相关联并将第二请求ID与由第二 PUT命令创建的对象相关联的元数据。
然而,对于大量的记录,这样的实现方式可能是低效的。尽管如此,存储策略可能会规定至少在某些记录请求中采用这种实现方式。这种实现方式包括来自记录器模块120的多个PUT命令,这增加了信令的开销。这样的实现方式还包括记录器模块120多次将相同的数据推送到对象存储库 130,这低效地使用网络带宽并增加了传输开销。此外,创建大量对象可以创建相当大量的要由记录器模块120管理的元数据。
因此,在一些实现方式中,记录器模块120从摄取器模块110接收数据并且指示对象存储库130将数据的公共副本作为单个对象存储在对象存储库130中。记录器模块120可以存储将第一请求ID与由PUT命令创建的对象相关联并将第二请求ID与同一对象相关联的元数据。
当两个请求涉及重叠时间但不是相同时间时,在一些实现方式中(如上所述),记录器模块120可以为每个请求创建唯一副本。在一些实现方式中,记录器模块可以创建从最早开始时间到最后结束时间的副本。例如,如果第一请求指示下午7:59至下午8:30,并且第二请求指示下午8:00至下午8:35,则记录器模块120可以存储包括在下午7:59至8:35之间的内容的对象。此外,记录器模块120可以在内容中包括表示每个请求的所请求子部分的书签。
在一些实现方式中,由记录器模块120接收的数据101是被分解成大约2秒的片段的视频数据。在一些实现方式中,片段可以是其他时间长度,例如在大约2秒和10秒之间。在一些实现方式中,数据101由摄取器模块 110接收作为片段。在一些实现方式中,数据101在被发送到记录器模块 120之前被摄取器模块110转换为片段。
因此,在一些实现方式中,响应于接收到记录请求,记录器模块120 创建包括请求ID、指示频道(或子频道或其他来源)的数据、指示开始时间和结束时间的数据、和指示存储策略的数据的数据库记录。存储策略可以传达指示,诸如每用户公共/唯一副本存储、弹性等等。特别地,存储策略可以指示是否要为用户存储内容的唯一副本或是要存储的内容的公共副本能否满足记录请求。存储策略可以基于许多因素,诸如记录请求(例如,用户)的请求者的位置、内容的来源、内容的性质(例如,教育或公共领域)或内容的权限。
响应于从摄取器模块110接收到片段,记录器模块120确定是否存在为该片段安排的至少一个记录(例如,该片段的时间是否在指示片段的来源的数据库记录的开始时间和结束时间之间)。
如果是,则记录器模块120将把该片段写入对象存储库130。在一些实现方式中,记录器模块120针对如下的每个记录存储片段的唯一副本:该记录被安排用于具有指示唯一副本存储的存储策略的片段。此外,如果存在至少一个被安排用于具有指示公共副本存储的存储策略的片段的记录,则记录器模块120存储片段的公共副本。
在一些实现方式中,记录的片段被使用确定性关键名称写入对象存储库,以便特定片段可以通过频道ID、开始时间和结束时间撷取。替代地,在一些实现方式中,记录器模块120可存储将片段信息(例如,频道ID、开始时间和结束时间)与对象存储库130的对象标识符相关联的查找表。替代地或另外地,在一些实现方式中,该表可以存储在对象存储库130中。
当记录器模块120接收到针对特定记录请求的读取请求(例如,指示请求ID的读取请求)时,记录器模块120读取数据库以确定记录请求的频道ID、开始时间和时间。记录器模块120确定要从对象存储库130撷取的一组对象(使用查找表或基于确定性关键名称的启发法)。记录器模块 120从对象存储库130读取该组对象并且响应于该读取请求而返回它们。
在一些实现方式中,当指示请求ID的记录删除请求由记录器模块120 接收时,记录器模块120从其数据库中移除请求ID(或将其标记为已删除、无效或不活动)。因此,在确定是否或如何存储接收到的片段时,不考虑这种记录请求(或数据库中的记录)。此外,记录器系统120可以周期性地删除所存储的未被数据库中的任何活动记录请求涉及的片段。
在一些实现方式中,记录器模块120可以接收修改存储在数据库中的记录请求的开始时间和结束时间的记录修改请求。如果记录修改请求的修改后的开始时间和结束时间所指示的片段被存储在对象存储库中,则记录器模块120指示该请求是成功的并且修改数据库的记录以包括修改后的开始时间和结束时间。因此,即使在记录的开始时间和/或结束时间已经过去之后,用户也可以修改记录的时间跨度。
图3是根据一些实现方式的处理记录请求的方法的流程图表示。在一些实现方式中(并且如以下作为示例详细描述的),方法300由记录器模块(诸如图1的记录器模块120)执行。在一些实现方式中,方法300由处理逻辑(包括硬件、固件、软件或其组合)执行。在一些实现方式中,方法300由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。简而言之,方法300包括接收记录请求并产生对应于记录请求的数据库记录。
在框310中,方法300开始于记录器模块接收指示要被记录的内容的记录请求。在一些实现方式中,记录请求包括指示记录的来源(例如,频道或子频道)的数据和指示记录的时间跨度的时间数据。如上所述,时间数据可以以多种方式指示记录的时间跨度。
在框320处,响应于接收到记录请求,记录器模块320在记录数据库中生成数据库记录,该数据库记录包括请求ID、来源ID、指示开始时间的数据、指示结束时间的数据以及指示存储策略的数据。在各种实现方式中,指示开始时间和结束时间的数据可以以各种方式被存储为时间数据。在一些实现方式中,记录请求包括请求ID。在一些实现方式中,记录器模块将请求ID分配给记录请求,并且可选地将请求ID返回给请求者。
在一些实施例中,生成数据库记录包括确定记录请求的存储策略。特别地,存储策略可以指示是否要为用户存储内容的唯一副本,或者要存储的内容的公共副本是否能够满足记录请求。存储策略可以基于许多因素,诸如记录请求的请求者(例如,用户)的位置、内容的来源、内容的性质 (例如,教育或公共领域)、或内容的权限。
在框320之后,方法300返回框310,记录模块可以接收另外的记录请求。
图4是根据一些实现方式的示例记录数据库的框图。如图4所示,记录数据库400包括多个记录401a-401b。尽管图4中仅示出了两条记录 401a-401b,但应该理解,记录数据库400可以包括任何数量的记录。每个记录401a-401b包括存储请求ID的请求ID字段410a-410b、存储指示记录的来源(例如,频道ID)的数据的来源字段420a-420b、存储表示记录的开始时间的数据开始时间字段430a-430b、存储指示记录的结束时间的数据的结束时间字段440a-440b、存储指示存储策略的数据的策略字段450a- 450b和存储表示记录是否活动的标志的活动字段460a-460b。
图5是根据一些实施方式的处理接收的片段的方法的流程图表示。在一些实施方式中(并且如以下作为示例所详述的),方法500由记录器模块(诸如图1的记录器模块120)执行。在一些实现方式中,方法500由处理逻辑(包括硬件、固件、软件或其组合)执行。在一些实现方式中,方法500由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器来执行。简而言之,方法500包括接收片段,并且如果片段被活动记录所涉及,则存储片段。
方法500在框510中开始,其中记录器模块从来源接收内容片段。在一些实现方式中,记录器模块接收来自摄取器模块的片段,其中摄取器模块从来源接收(或撷取)片段。
在框520处,记录器模块确定片段是否被记录数据库(例如,图4的记录数据库400)中的任何活动记录所涉及。具体地,片段可以包括指示片段的来源和片段的时间的元数据。如果数据的来源元数据与活动记录的来源字段420a-420b相匹配并且片段的时间落在记录的开始时间和结束时间内,则该片段由活动记录所涉及,并且方法500继续到框530。如果不是,则方法500返回到框510,其中从来源(和/或其他来源)接收另外的片段。
在框530处,记录器模块存储片段。在一些实现方式中,记录器模块将片段存储在对象存储库中。在一些实现方式中,存储片段包括基于片段的来源和片段的时间(例如,使用元数据)使用确定性关键名称将片段存储在对象存储库中。在一些实现方式中,存储片段包括将片段的来源和片段的时间(例如元数据)与存储在对象存储库上的包含该片段的对象的对象ID相关联地存储在查找表中。
在一些实现方式中,记录器模块为涉及片段并且具有指示唯一副本存储的存储策略的每个活动记录存储该片段的唯一副本。在一些实现方式中,如果任何活动记录涉及片段并且具有指示公共副本存储的存储策略,则记录器模块存储片段的公共副本。
在框530之后,方法500返回到框510,其中记录器模块可以从来源和/或其他来源接收另外的片段。
图6是根据一些实现方式的处理记录删除请求的方法的流程图表示。在一些实现方式中(并且如下面作为示例详细描述的),方法600由诸如图1的记录器模块120之类的记录器模块执行。在一些实现方式中,方法 600由处理逻辑(包括硬件、固件、软件或其组合)执行。在一些实现方式中,方法600由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器来执行。简而言之,方法600包括接收记录删除请求并将相应的记录标记为不活动。方法600可选地还包括删除未被活动记录所涉及的片段。
方法600在框610中开始,记录器模块接收记录删除请求。记录删除请求可以包括由记录器模块存储的记录数据库(例如,图4的记录数据库 400)的记录的请求ID。
在框620处,记录器模块将记录数据库中由记录删除请求所指示的记录标记为不活动。在一些实现方式中,记录器模块改变活动字段(例如,图4的活动字段460a-460b)中的标志以指示该记录是不活动的。
在框630处,记录器模块确定是否对所存储的片段进行去重。在一些实现方式中,记录器模块响应于将记录标记为不活动而确定对所存储的片段进行去重。在一些实现方式中,记录器模块响应于将阈值数量的记录标记为不活动而确定对所存储的片段进行去重。例如,在一些实现中,每第十个记录删除请求触发重复数据删除。在一些实现方式中,记录器模块确定周期性地对所存储的片段进行去重。例如,在一些实现方式中,所存储的片段每日进行去重。因此,如果在框630处,记录模块确定自上次去重以来已经过去了一天,则记录模块确定对所存储的片段进行去重,并且方法600前进至框640。如果记录模块确定不对所存储的片段进行去重,则方法600返回到框610,在此,记录器模块可以接收另外的记录删除请求。
在框640处,记录器模块删除未被活动记录所涉及的片段。在一些实现方式中,记录器模块存储被存储在对象存储库中的所有片段的表。在一些实现方式中,记录器模块从对象存储库请求存储在对象存储库中的片段的列表。在一些实现方式中,删除片段包括向对象存储库发送删除片段的命令。在一些实现方式中,记录器模块将记录数据库发送到对象存储库,并且对象存储库删除所存储的未被任何活动记录所涉及的片段。在一些实现方式中,记录器模块将记录数据库发送到对象存储库(其中不活动记录已移除)或者以其他压缩格式发送记录数据库。
在框640之后,方法600返回到框610,其中记录器模块可以接收另外的记录删除请求。
图7是根据一些实现方式的处理记录修改请求的方法的流程图表示。
在一些实现方式中(并且如以下作为示例所详述的),方法700由记录器模块(诸如图1的记录器模块120)执行。在一些实施方式中,方法 700由处理逻辑(包括硬件、固件、软件或其组合)执行。在一些实现方式中,方法700由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。简而言之,方法700包括接收记录修改请求,并且如果该请求可以被授权,则修改对应于该请求的记录。
方法700在框710中开始,其中记录器模块接收记录修改请求。记录修改请求可以包括由记录器模块(例如,图4的记录数据库400)存储的记录数据库的记录的请求ID。记录修改请求还可以包括指示记录的修改后的时间跨度的修改后的时间数据。例如,记录修改请求可以包括修改后的开始时间、修改后的结束时间或两者都包括。
在框720处,记录器模块确定由修改后的时间数据指示的片段是否可用(例如,由于片段将来的时间而被记录或可被记录)。如果记录器模块确定片段不可用,则方法700继续到框730,其中记录器模块指示该请求被拒绝,之后返回框710,其中记录器模块可以接收另外的记录修改请求。
如果记录器模块确定片段可用,则方法700继续到框740,其中记录器模块指示该请求被准予,之后方法继续到框750,其中记录器模块根据请求修改记录。在一些实现方式中,记录器模块在记录数据库中定位具有在请求ID字段中存储的记录修改请求的请求ID的记录。记录器模块然后通过用修改后的时间数据替换开始时间字段和结束时间字段的数据来修改所定位的记录。
在框750之后,方法700返回框710,其中记录器模块可以接收另外的记录修改请求。
在一些实现方式中,在框720处,记录器模块可以确定由修改后的时间数据指示的一些片段(但不是全部片段)可用。作为响应,记录器模块可以指示该请求被部分地准予并且修改涉及由修改后的时间数据指示的可用片段的对应记录。
图8是根据一些实现方式的处理读取请求的方法的流程图表示。在一些实现方式中(并且如下面作为示例详细描述的),方法800由记录器模块(诸如图1的记录器模块120)执行。在一些实现方式中,方法800由处理逻辑(包括硬件、固件、软件或其组合执行)。在一些实现方式中,方法800由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。简而言之,方法800包括接收指示记录的读取请求并返回与记录相关联的一个或多个片段。
方法800在框810中开始,其中记录器模块接收指示记录的读取请求。在框820处,响应于接收到读取请求,记录器模块返回与记录相关联的一个或多个片段。在框820之后,方法800返回到框810,其中记录器模块可以接收另外的读取请求。
在一些实现方式中,读取请求包括请求ID,并且记录模块在记录数据库中定位具有在请求ID字段中存储的读取请求的请求ID的记录。记录器模块然后(从对象存储库)撷取由该记录(或至少那些已记录的记录)涉及的片段并(向请求者)返回撷取到的片段。
图9是根据一些实现方式的计算设备900的框图。在一些实现方式中,计算设备900对应于图1的记录器模块120并且执行上面关于记录器模块 120描述的一个或多个功能。尽管示出了某些具体特征,但是本领域技术人员将从本公开中认识到,为了简洁起见并且为了不混淆在此公开的实施例的更相关方面并没有示出各种其他特征。为此,作为非限制性示例,在一些实施例中,计算设备900包括一个或多个处理单元(CPU)902(例如处理器)、一个或多个输出接口903(例如网络接口)、存储器906、编程接口908以及用于互连这些和各种其他部件的一个或多个通信总线904。
在一些实现方式中,通信总线904包括互连并控制系统组件之间的通信的电路。存储器906包括高速随机存取存储器,诸如DRAM、SRAM、 DDR RAM或其他随机存取固态存储器设备;并且在一些实现方式中,包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备或其他非易失性固态存储设备。存储器906可选地包括位于远离(一个或多个)CPU902的一个或多个存储设备。存储器906包括非暂态计算机可读存储介质。此外,在一些实现方式中,存储器906或存储器906的非暂态计算机可读存储介质存储以下程序、模块和数据结构或其子集,包括可选操作系统930和记录模块940。在一些实现方式中,一个或多个指令被包括在逻辑和非暂态存储器的组合中。操作系统930包括处理各种基本系统服务和执行硬件相关任务的过程。在一些实现方式中,记录模块 940被配置为处理与视频数据片段记录有关的请求。为此,记录模块940 包括接口模块941和数据库模块942。
在一些实现方式中,接口模块941被配置为接收内容片段。为此,接口模块941包括一组指令941a以及启发法和元数据941b。在一些实现方式中,数据库模块942被配置为确定片段被记录数据库的至少一个活动记录所涉及。为此,数据库模块942包括一组指令942a以及启发法和元数据 942b。在一些实现方式中,接口模块941被配置为响应于该确定而存储片段(例如,存储在对象存储库中)。
虽然记录模块940、接口模块941和数据库模块942被示为驻留在单个计算设备900上,但应理解,在其他实施例中,记录模块940、接口模块941和数据库模块942的任何组合可以在各种实现方式中驻留在分开的计算设备中。例如,在一些实现方式中,记录模块940、接口模块941和数据库模块942中的每一者驻留在单独的计算设备上。
此外,与本文的实施例的结构示意图相对,图9旨在更多地作为存在于特定实现方式中的各种特征的功能描述。如本领域普通技术人员所认识到的,分开示出的项目可以被组合,并且一些项目可以被分开。例如,在各种实施例中,图9中分开示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可以通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及特征如何在其中分配将根据实施例而变化,并且可部分取决于为特定实施例所选择的硬件、软件和/或固件的特定组合。
本公开描述了各种特征,其中没有任何一个单独负责这里描述的益处。应该理解,本文所述的各种特征可以被组合、修改或省略,这对于普通技术人员而言是显而易见的。除了在此具体描述以外的其他组合和子组合对于普通技术人员来说是显而易见的,并且旨在形成本公开的一部分。本文结合各种流程图步骤和/或阶段描述了各种方法。应该理解,在许多情况下,某些步骤和/或阶段可以组合在一起,使得流程图中所示的多个步骤和/或阶段可以作为单个步骤和/或阶段来执行。此外,某些步骤和/或阶段可以被分解为另外的子组件以分开执行。在一些情况下,可以重新排列步骤和/ 或阶段的顺序,并且可以完全省略某些步骤和/或阶段。此外,本文所述的方法应被理解为开放式的,使得还可以执行本文所示和所述以外的步骤和/ 或阶段。
这里描述的一些或全部方法和任务可以由计算机系统执行并且完全自动化。在一些情况下,计算机系统可以包括通过网络进行通信和互操作以执行所描述功能的多个不同的计算机或计算设备(例如,物理服务器、工作站、存储阵列等)。每个这样的计算设备通常包括执行存储在存储器或其他非暂态计算机可读存储介质或设备中的程序指令或模块的处理器(或多个处理器)。这里公开的各种功能可以体现在这样的程序指令中,尽管可以替代地在计算机系统的专用电路(例如,ASIC或FPGA)中实现所公开的功能中的一些或全部。在计算机系统包括多个计算设备的情况下,这些设备可以但不一定位于同一地点。所公开的方法和任务的结果可以通过将诸如固态存储器芯片和/或磁盘之类的物理存储设备转换为不同的状态来持久地存储。
本公开不旨在限于本文所示的实现方式。对于本公开中所描述的实现方式的各种修改对于本领域技术人员来说可能是显而易见的,并且在不脱离本公开的精神或范围的情况下,可将本文中定义的一般原理应用于其他实现方式。这里提供的本发明的教导可以应用于其他方法和系统,并且不限于上述的方法和系统,并且上述各个实施例的元素和动作可以被组合以提供另外的实施例。因此,这里描述的新颖的方法和系统可以以各种其他形式来体现;此外,在不脱离本公开的精神的情况下,可以对这里描述的方法和系统的形式进行各种省略、替换和改变。所附权利要求及其等同物旨在覆盖落入本公开的范围和精神内的这些形式或修改。

Claims (17)

1.一种方法,包括:
针对多个记录请求中的每个记录请求:
接收指示要记录的内容的记录请求;以及
生成对应于所述记录请求的记录以供存储在记录数据库中,所述记录包括请求标识符、指示所述内容的来源的数据以及指示所述内容的时间跨度的时间数据,指示唯一副本存储或公共副本存储的存储策略数据,以及指示所述记录是活动还是不活动的标记,其中活动记录的所述标记指示该记录是活动的;
针对所述内容的多个传入片段中的每个片段:
接收所述内容的片段;
对于所述记录数据库中的涉及所述片段并具有表示唯一副本存储的存储策略数据的每个活动记录,针对与所述活动记录相关联的记录请求在对象存储库中存储所述片段的唯一副本;对于所述记录数据库中的涉及所述片段并具有指示公共副本存储的存储策略数据的多个活动记录,针对与所述多个活动记录关联的记录请求在对象存储库中存储所述片段的单个公共副本。
2.根据权利要求1所述的方法,其中,所述多个活动记录包括涉及所述片段并具有指示公共副本存储的存储策略数据的所有活动记录。
3.根据权利要求1所述的方法,其中,在所述记录数据库中生成所述记录包括:确定与所述记录请求相关联的存储策略。
4.根据权利要求3所述的方法,其中,所述存储策略基于所述记录请求的请求者的位置、所述内容的来源、所述内容的性质或对所述内容的权限中的至少一项来确定。
5.根据权利要求1所述的方法,还包括:
接收指示所述记录数据库中的特定记录的记录删除请求;以及
在所述记录数据库中把所述特定记录标记为不活动的。
6.根据权利要求1所述的方法,还包括:删除未被所述记录数据库中的至少一个活动记录所涉及的片段。
7.根据权利要求1所述的方法,还包括:
接收指示所述记录数据库中的特定记录的记录修改请求;
确定所述修改请求指示的片段可用;并且
根据所述记录修改请求修改所述记录数据库中的所述特定记录。
8.根据权利要求1所述的方法,还包括:
接收指示所述记录数据库中的特定记录的读取请求;并且
返回与所述记录数据库中的所述特定记录相关联的一个或多个片段。
9.根据权利要求1所述的方法,还包括连同所述片段一起接收片段元数据,所述片段元数据包括指示所述片段的来源的来源元数据和指示所述片段的时间的时间元数据。
10.根据权利要求9所述的方法,其中,确定所述片段被至少一个活动记录所涉及包括:确定所述片段的来源与所述记录数据库中的至少一个活动记录所指示的来源匹配,以及确定所述片段的时间是在由所述记录数据库中的所述至少一个活动记录中的至少一个所指示的开始时间和结束时间内。
11.根据权利要求9所述的方法,其中,存储所述片段包括:基于所述片段元数据,使用确定性关键名称来存储所述片段。
12.根据权利要求1所述的方法,所述方法由基于云的数字视频记录(DVR)系统执行。
13.一种系统,包括:
网络接口;
一个或多个处理器;以及
包括指令的非暂态存储器,所述指令在被执行时使得所述一个或多个处理器执行操作,所述操作包括:
针对多个记录请求中的每个记录请求:
接收指示要记录的内容的记录请求;以及
生成对应于所述记录请求的记录以供存储在记录数据库中,所述记录包括请求标识符、指示所述内容的来源的数据以及指示所述内容的时间跨度的时间数据,指示唯一副本存储或公共副本存储的存储策略数据,以及指示所述记录是活动还是不活动的标记,其中活动记录的所述标记指示该记录是活动的;
针对所述内容的多个传入片段中的每个片段:
接收所述内容的片段;
对于所述记录数据库中的涉及所述片段并具有表示唯一副本存储的存储策略数据的每个活动记录,针对与所述活动记录相关联的记录请求在对象存储库中存储所述片段的唯一副本;对于所述记录数据库中的涉及所述片段并具有指示公共副本存储的存储策略数据的多个活动记录,针对与所述多个活动记录关联的记录请求在对象存储库中存储所述片段的单个公共副本。
14.根据权利要求13所述的系统,包括基于云的数字视频记录(DVR)系统。
15.根据权利要求13所述的系统,其中,所述多个活动记录包括涉及所述片段并具有指示公共副本存储的存储策略数据的所有活动记录。
16.根据权利要求15所述的系统,其中,在所述记录数据库中生成所述记录包括:基于所述记录请求的请求者的位置、所述内容的来源、所述内容的性质或对所述内容的权限中的至少一项来确定与所述记录请求相关联的存储策略。
17.根据权利要求15所述的系统,其中所述操作还包括:删除未被所述记录数据库中的至少一个活动记录所涉及的片段。
CN201680072258.XA 2015-10-09 2016-10-07 分段视频内容存储方法及系统 Active CN108370449B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562239379P 2015-10-09 2015-10-09
US201562239373P 2015-10-09 2015-10-09
US62/239,373 2015-10-09
US62/239,379 2015-10-09
PCT/US2016/056133 WO2017062869A1 (en) 2015-10-09 2016-10-07 Segmented video content storage

Publications (2)

Publication Number Publication Date
CN108370449A CN108370449A (zh) 2018-08-03
CN108370449B true CN108370449B (zh) 2021-08-06

Family

ID=58499450

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680072258.XA Active CN108370449B (zh) 2015-10-09 2016-10-07 分段视频内容存储方法及系统

Country Status (3)

Country Link
US (3) US10992965B2 (zh)
EP (1) EP3360333B1 (zh)
CN (1) CN108370449B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11580125B2 (en) * 2015-05-08 2023-02-14 Adp, Inc. Information system with temporal data
US10405012B2 (en) 2016-12-25 2019-09-03 Synamedia Limited Cloud DVR Optimization
US20190130027A1 (en) * 2017-11-02 2019-05-02 International Business Machines Corporation Data classification
US10405027B2 (en) 2017-12-03 2019-09-03 Cisco Technology, Inc. Cloud DVR system with retroactive recording
CN111309764B (zh) * 2019-12-18 2023-04-25 上海金融期货信息技术有限公司 一种高效低冗余客户端数据缓存装置
US11212573B2 (en) * 2020-02-10 2021-12-28 Synamedia Limited Systems, methods, and devices for managing segmented media content

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9161068B2 (en) * 2004-03-24 2015-10-13 Onstream Media Corporation Remotely accessed virtual recording room
US7716705B2 (en) * 2005-08-31 2010-05-11 Time Warner Cable Inc. Remote DVR manager
US7818775B2 (en) * 2005-12-21 2010-10-19 At&T Intellectual Property I, L.P. System and method for recording and time-shifting programming in a television distribution system with limited content retention
US8156090B1 (en) * 2005-12-22 2012-04-10 Unisys Corporation Maintaining file name uniqueness in an application development environment of a computing system
US20080115170A1 (en) * 2006-10-30 2008-05-15 Qualcomm Incorporated Methods and apparatus for recording and sharing broadcast media content on a wireless communication device
US20130254314A1 (en) * 2009-06-09 2013-09-26 Edmond K. Chow Digital content delivery
US20110016490A1 (en) 2009-07-16 2011-01-20 Germar Schaefer Systems and methods for managing content in real-time
US9413393B2 (en) 2009-12-29 2016-08-09 International Business Machines Corporation Encoding multi-media content for a centralized digital video storage system
US9003462B2 (en) * 2011-02-10 2015-04-07 Comcast Cable Communications, Llc Content archive model
US9106943B2 (en) * 2011-05-04 2015-08-11 Cisco Technology, Inc. Sharing of subscriber-recorded digital video recorder content
US8983274B2 (en) 2011-05-20 2015-03-17 Echostar Technologies L.L.C. Systems and methods for revolving recording conflicts
US9998783B2 (en) * 2011-06-20 2018-06-12 Comcast Cable Communications, Llc Network recorder buffer
US9049484B2 (en) * 2011-12-06 2015-06-02 Echostar Technologies L.L.C. Efficient assignment of program copies in a network digital video recorder
EP2792123B1 (en) 2011-12-06 2017-09-27 Echostar Technologies L.L.C. Remote storage digital video recorder and related operating methods
US20140157324A1 (en) * 2012-11-30 2014-06-05 Comcast Cable Communications, Llc Content Identification and Management
US20140337901A1 (en) * 2013-05-07 2014-11-13 Ericsson Television Inc. Network personal video recorder system, method and associated subscriber device
US20150067736A1 (en) * 2013-08-28 2015-03-05 Cox Communications, Inc. Systems and Methods of Notification of Duplicate Content Available Elsewhere
US10715837B2 (en) * 2015-03-13 2020-07-14 At&T Intellectual Property I, L.P. Determination of a service office of a media content distribution system to record a media content item with a network recorder
CN104750859A (zh) * 2015-04-16 2015-07-01 成都影泰科技有限公司 一种网络存储方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
虚拟计算环境下空间数据副本一致性研究;韦举东;《中国优秀硕士学位论文全文数据库》;20111031;全文 *

Also Published As

Publication number Publication date
US20170102890A1 (en) 2017-04-13
EP3360333B1 (en) 2023-12-06
US20210219003A1 (en) 2021-07-15
CN108370449A (zh) 2018-08-03
US20170105028A1 (en) 2017-04-13
US11490131B2 (en) 2022-11-01
EP3360333A1 (en) 2018-08-15
US10331738B2 (en) 2019-06-25
US10992965B2 (en) 2021-04-27

Similar Documents

Publication Publication Date Title
CN108370449B (zh) 分段视频内容存储方法及系统
US20180137208A1 (en) Method and device for sharing segmented video content across multiple manifests
KR101767710B1 (ko) 폐기가능 파일들의 카드-기반 관리
US20110307457A1 (en) Integrated duplicate elimination system, data storage device, and server device
US7415572B2 (en) File system, file recording method, and file reading method
US7966351B2 (en) Fast and efficient method for deleting very large files from a filesystem
CN106777179B (zh) 一种文档在线预览方法及系统
US20090125573A1 (en) Transactional multi-package installation
US20140219638A1 (en) Multi-Tier Recorder to Enable Seek-Back Unique Copy Recording
US20150142749A1 (en) Method and system for a safe archiving of data
JP5936303B2 (ja) マルチメディアデータを符号化する方法および復号化する方法および符号化する装置および復号化する装置
US9954930B2 (en) Generating content fragments for content distribution
CN104079600A (zh) 文件存储方法、装置、访问客户端及元数据服务器系统
WO2011137681A1 (zh) Iptv系统中时移分片文件的归档及节目播放方法和设备
US10248316B1 (en) Method to pass application knowledge to a storage array and optimize block level operations
WO2017062869A1 (en) Segmented video content storage
CN113127415B (zh) 实时流文件的处理方法、装置、介质及电子设备
US10631019B2 (en) Remote storage digital video recording optimization method and system
US11212573B2 (en) Systems, methods, and devices for managing segmented media content
US9979787B2 (en) Information processing system, network storage device, and non-transitory recording medium
US11809598B2 (en) Devices and methods for safe storage of media containing personal data and erasure of stored personal data
WO2022042514A1 (zh) 元数据同步的方法和装置
US20150088943A1 (en) Media-Aware File System and Method
JP2012203629A (ja) コンテンツ分散管理システム
US20190132632A1 (en) Cloud DVR Storage Reduction

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: The Middlesex County

Applicant after: Xina Media Co.,Ltd.

Address before: The Middlesex County

Applicant before: Enders GmbH

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190107

Address after: The Middlesex County

Applicant after: Enders GmbH

Address before: California, USA

Applicant before: Cisco Technology, Inc.

GR01 Patent grant
GR01 Patent grant