多媒体内容存储与MSC平台原型实现解析
多媒体内容存储相关技术
在当今数字化时代,多媒体内容的存储面临着诸多挑战与机遇。
数字版权管理(DRM)技术
为保障视频流的安全性,数字版权管理(DRM)技术发挥着重要作用。当下载加密视频后,需从DRM提供商服务器获取密钥来解密视频。目前主要有三种DRM技术:Apple的Fairplay、Microsoft的PlayReady和Google的Widevine,它们能覆盖市场上大部分设备和平台。以下是这三种技术支持的平台对比表格:
| 平台 | Fairplay | PlayReady | Widevine |
| — | — | — | — |
| Chrome | ✓ | ✓ | ✓ |
| FireFox | ✓ | ✓ | ✓ |
| IE 11 | | ✓ | ✓ |
| Safari | ✓ | | |
| Android | | ✓ | ✓ |
| iOS | ✓ | | |
| Windows Phone | | ✓ | |
| ChromeCast | | | ✓ |
| Roku | | | |
| Apple TV | ✓ | | |
| Xbox | | ✓ | |
同时,随着对DRM保护的视频点播(VOD)需求的增加,提出了一种离线应用驱动的DRM拦截器。该拦截器会感知客户端设备的网络连接状态,若判定设备离线,它会从本地数据存储中获取受保护内容的许可证/密钥,并将其发送给DRM模块。其工作流程如下:
graph TD;
A[下载加密视频] --> B[判定设备离线];
B --> C[拦截器请求许可证/密钥];
C --> D[从本地数据存储获取];
D --> E[发送到DRM模块];
E --> F[解密视频];
多媒体内容存储挑战与解决方案
视频流存储库的规模不断扩大,这给多媒体存储系统带来了容量、吞吐量和容错性三方面的挑战。
-
容量挑战
:由于观众设备的多样性,为覆盖不同的显示设备,一个视频往往需要生成并存储90多种版本,这需要大规模的存储系统。此前有研究提出将视频的一些帧存储在代理缓存中的技术,可降低网络带宽成本,并提高在网络条件不佳时视频流的鲁棒性。
-
吞吐量挑战
:当多媒体内容存储在磁盘上时,磁盘的吞吐量会限制对该内容的并发访问,从而限制了同时观看多媒体内容的观众数量。为解决此问题,可采用多磁盘存储配置。例如,通过数据条带化技术,将视频分割并存储在多个存储磁盘上,以提高存储吞吐量。视频流在存储前会被分割成块,这些块可以连续存储或分散存储在多个磁盘上。连续存储方法实现简单,但存在碎片化问题;分散存储方法可消除碎片化问题,但实现较为复杂。
-
容错性挑战
:将视频流分散存储在多个磁盘上,并实施数据条带化和数据交织方法,可提高视频流存储系统的可靠性和容错性。
多媒体流的云存储
随着视频流在各种应用和设备上的快速增长,产生了大量的多媒体数据。当前的存储服务器面临可扩展性、可靠性问题,以及高昂的存储硬件维护和管理成本。而云存储服务为这些问题提供了解决方案,像Netflix和Hulu等主要的流媒体服务提供商已完全依赖云存储服务来满足其视频存储需求。以下是不同视频流存储解决方案的对比表格:
| 存储解决方案 | 可访问性 | 可用容量 | 可扩展性 | 可靠性 | 成本 | 服务质量(QoS) |
| — | — | — | — | — | — | — |
| 内部存储 | 有限 | 大 | 否 | 否 | 高 | 高 |
| 云存储(外包) | 高 | 大 | 是 | 是 | 低 | 低 |
| 内容分发网络(CDN) | 高 | 小 | 否 | 是 | 高 | 高 |
| 点对点(P2P) | 高 | 大 | 是 | 是 | 低 | 低 |
| 混合CDN - P2P | 高 | 小 | 是 | 是 | 低 | 高 |
此外,MSC平台支持的视频流按需处理是减少存储量和成本的有效方法。例如,考虑到视频流的长尾访问模式,部分研究提出了一些策略。Gao等人提出在云端对视频内容进行部分预转码的方法,即预转码视频流中更常访问的开头部分,而对其余部分按需转码,可降低30%的成本。Darwich等人基于长尾访问模式提出了一种高效的云视频流存储和成本管理方法,考虑了不同的访问模式并确定需要预处理的视频组。Krishnappa等人提出了预测用户请求视频片段的策略,通过实现马尔可夫理论来减少云存储成本。
MSC平台原型实现
MSC平台概述
MSC平台是一个基于无服务器计算云的平台,允许用户定义自己的媒体处理函数,实现高效且具备服务质量(QoS)意识的交互式直播或按需多媒体流。该平台服务于多个服务提供商和不同类型的订阅者,具有可扩展性,能让流服务提供商在多媒体内容和流上引入新服务。同时,其核心架构会遵循流服务提供商定义的QoS和成本约束。
无服务器计算范式实践
利用无服务器计算的常见做法是将整体应用拆分为多个微服务函数。每个用户(如流服务提供商)提供可执行函数和触发条件,触发后形成任务请求并需及时完成。从提供商角度看,通过共享队列和调度器将任务请求分配到弹性计算资源池,可减少资源启动开销并优化计算资源的使用。不同类型的任务对云数据中心的异构机器有不同的适配性,例如高比特率视频的分辨率更改所需时间比低比特率视频长。其工作流程如下:
graph TD;
A[用户提供函数和触发条件] --> B[触发任务请求];
B --> C[任务进入共享队列];
C --> D[调度器分配任务];
D --> E[弹性计算资源池执行];
E --> F[完成任务];
MSC平台用例
在MSC平台的原型实现中,系统中有流服务提供商和应用开发者两类用户。流服务提供商和应用开发者定义可用服务、媒体内容和计费策略,观众可请求流媒体内容,并可生成内容和选择媒体处理服务功能。观众通过流服务提供商的应用或网站请求媒体,每个请求通常会在系统中生成多个处理任务,每个任务都有特定的截止日期。MSC平台需调度来自多个观众和多个流提供商的任务,以满足他们的QoS要求和预算约束,同时允许流提供商引入新服务和内容,且不影响其他提供商。
多媒体流处理的特点
多媒体流处理具有以下特点:
1. 每个多媒体流请求会生成多个独立任务。
2. 每个任务与至少一个媒体段相关联。
3. 大多数媒体段可缓存,但内容变化性大,需按需处理。
4. 大多数媒体流的早期段紧迫性高,后期段紧迫性降低,专用调度器可显著减少截止日期违规情况。
5. 媒体处理函数可根据主要处理框架大致分类,如使用FFmpeg进行媒体转码和使用YOLO框架进行目标检测。
6. 多媒体处理函数在异构计算资源上执行更有利。
在MSC中,任务由对象(媒体段)和动作(函数调用及参数)组成,任务的到达率和模式在不同时间窗口变化缓慢,可根据资源使用的近期历史预测近期需求。
MSC平台原型架构
MSC平台基于无服务器计算平台运行,具有共享调度队列,为多个用户的任务提供服务。其架构包含多个组件:
-
媒体存储库
:包含平台上每个媒体段的副本(不包括直播媒体流内容),通常以高清(HD)格式存储,便于重新处理为其他规格。当收到媒体流请求时,会将媒体段规格通知给请求摄取模块。
-
服务存储库
:存储各种可用的服务,供流提供商和观众选择。
-
时间估计器
:对任务的执行时间进行估计,为调度提供参考。
-
任务队列
:存储待处理的任务。
-
调度器
:将任务分配到合适的计算资源上执行。
-
供应管理器
:管理计算资源的供应,确保资源的合理分配。
-
请求摄取模块
:接收用户的请求。
-
媒体缓存
:缓存常用的媒体段,提高访问速度。
-
流管理器
:管理媒体流的传输和合并。
-
执行引擎
:执行具体的任务。
-
准入控制
:对任务进行准入判断,确保系统的稳定性和服务质量。
不同类型的用户对服务有不同的需求,例如盲人用户可能需要对每个视频页面进行额外解释,聋人观众需要动态为每个视频帧创建字幕的服务。媒体流提供商可向MSC存储库添加内容或服务。
综上所述,多媒体内容存储和MSC平台原型实现涉及多个方面的技术和策略,它们相互配合,共同推动着多媒体领域的发展,为用户提供更高效、更优质的多媒体服务体验。
MSC平台各组件详细解析
媒体存储库
媒体存储库是整个平台的基础数据支撑部分。它存储着除直播媒体流内容之外的所有媒体段副本,并且采用高清(HD)格式。这样做的好处在于,高清格式具有较高的通用性和可扩展性,能够方便地根据不同的需求重新处理成其他特定规格。当有媒体流请求进入系统时,媒体存储库会迅速将对应媒体段的规格信息传递给请求摄取模块。这一过程就像是一个信息传递的接力赛,确保后续的处理环节能够准确地获取所需的数据。例如,当一个用户请求观看某个特定分辨率的视频时,媒体存储库会告知请求摄取模块该视频的原始规格,以便后续进行相应的处理。
服务存储库
服务存储库就像是一个服务超市,里面存放着各种各样的服务供流提供商和观众挑选。流提供商可以根据市场需求和自身业务特点,从服务存储库中选择合适的服务添加到自己的服务套餐中。而观众则可以根据自己的喜好和需求,在观看视频时选择启用某些特定的服务。例如,观众可以选择开启视频的高清模式、添加字幕服务或者开启视频的特效处理服务等。服务存储库的存在,极大地增加了平台的灵活性和可扩展性,满足了不同用户的多样化需求。
时间估计器
时间估计器在整个系统中扮演着重要的角色,它就像是一个精准的时钟,为调度器提供关键的参考信息。通过对每个任务的执行时间进行准确估计,时间估计器能够帮助调度器合理地安排任务的执行顺序和分配计算资源。例如,对于一个复杂的视频转码任务,时间估计器会根据视频的大小、分辨率、编码格式等因素,综合计算出该任务大约需要的执行时间。调度器根据这个时间估计值,将任务分配到合适的计算资源上,确保任务能够在规定的时间内完成,从而提高整个系统的效率和服务质量。
任务队列
任务队列是一个任务的临时存放区,所有待处理的任务都会先进入这个队列等待调度。它的作用类似于一个排队系统,确保任务按照一定的顺序进行处理。当有新的任务请求进入系统时,任务会被添加到任务队列的末尾。调度器会按照一定的调度算法,从任务队列中取出任务并分配到合适的计算资源上执行。任务队列的存在,有效地避免了任务的混乱和冲突,保证了系统的稳定性和可靠性。
调度器
调度器是整个系统的核心大脑,它负责将任务合理地分配到合适的计算资源上执行。调度器会根据任务的优先级、截止日期、资源需求等因素,综合考虑计算资源的可用性和负载情况,做出最优的分配决策。例如,对于一个紧急的视频直播任务,调度器会优先将其分配到资源充足、性能较高的计算节点上,以确保视频能够实时流畅地播放。同时,调度器还会根据任务的执行情况,动态地调整任务的分配,以提高资源的利用率和系统的整体性能。
供应管理器
供应管理器的主要职责是管理计算资源的供应,确保资源的合理分配和高效利用。它会根据系统的负载情况和任务需求,动态地调整计算资源的分配。例如,当系统的负载较低时,供应管理器会减少计算资源的供应,以降低成本;当系统的负载较高时,供应管理器会增加计算资源的供应,以确保任务能够及时完成。供应管理器还会监控计算资源的使用情况,及时发现并处理资源瓶颈问题,保证系统的稳定性和可靠性。
请求摄取模块
请求摄取模块是系统与用户之间的接口,它负责接收用户的请求,并将请求信息传递给后续的处理模块。当用户通过流服务提供商的应用或网站请求媒体时,请求摄取模块会对请求进行解析和验证,确保请求的合法性和有效性。然后,请求摄取模块会将请求信息传递给媒体存储库和任务队列,触发后续的处理流程。例如,当用户请求观看某个视频时,请求摄取模块会将请求信息传递给媒体存储库,获取该视频的相关信息,并将任务添加到任务队列中等待调度。
媒体缓存
媒体缓存是一个临时存储区域,用于缓存常用的媒体段。它的作用类似于一个高速缓存,能够提高媒体段的访问速度。当用户请求某个媒体段时,系统会首先检查媒体缓存中是否存在该媒体段。如果存在,则直接从缓存中获取,避免了从媒体存储库中读取的时间开销;如果不存在,则从媒体存储库中读取,并将其缓存到媒体缓存中,以便下次快速访问。媒体缓存的存在,有效地减少了用户的等待时间,提高了用户的观看体验。
流管理器
流管理器负责管理媒体流的传输和合并。在多媒体流处理过程中,一个媒体流可能会被分割成多个媒体段,这些媒体段需要在不同的计算节点上进行处理。流管理器会协调这些媒体段的传输和合并,确保最终能够形成一个完整、流畅的媒体流。例如,在视频直播过程中,流管理器会将不同摄像头采集到的视频流进行合并,并实时传输给用户,保证用户能够观看到连续、清晰的视频画面。
准入控制
准入控制是系统的一道安全防线,它对任务进行准入判断,确保系统的稳定性和服务质量。当有新的任务请求进入系统时,准入控制模块会根据系统的资源状况、负载情况和任务的优先级等因素,判断该任务是否能够被系统接受。如果系统资源充足,能够满足任务的需求,则允许任务进入系统;如果系统资源紧张,无法满足任务的需求,则拒绝任务进入系统。准入控制的存在,有效地避免了系统因过载而导致的性能下降和服务中断,保证了系统的稳定性和可靠性。
总结与展望
多媒体内容存储和MSC平台原型实现是一个复杂而又充满挑战的领域。通过对数字版权管理技术、多媒体内容存储挑战及解决方案、云存储技术的研究和应用,我们能够有效地解决多媒体内容存储过程中的容量、吞吐量和容错性等问题。同时,MSC平台的原型实现为多媒体流处理提供了一个高效、灵活的解决方案,通过无服务器计算范式和一系列的组件架构,能够满足不同用户的多样化需求,提高多媒体服务的质量和效率。
未来,随着多媒体技术的不断发展和应用场景的不断拓展,多媒体内容存储和处理将面临更多的挑战和机遇。例如,随着高清视频、虚拟现实、增强现实等技术的普及,对存储容量和处理能力的要求将越来越高;随着物联网的发展,多媒体数据的来源将更加广泛,数据的实时性和准确性要求也将更高。为了应对这些挑战,我们需要不断地研究和创新,探索更加高效、可靠的多媒体内容存储和处理技术。同时,我们还需要加强对用户需求的理解和分析,不断优化MSC平台的功能和性能,为用户提供更加优质、个性化的多媒体服务体验。
总之,多媒体内容存储和MSC平台原型实现是一个充满潜力和发展前景的领域,我们有理由相信,在未来的发展中,它将为我们带来更加丰富、精彩的多媒体世界。
超级会员免费看
3109

被折叠的 条评论
为什么被折叠?



