视频点播

了解使用 AWS 服务创建视频点播(VoD)流式传输工作流程的选项,其中涵盖内容摄取、分发和盈利等各个方面。

概览

在视频点播(VoD)流式传输工作流程中,用户可在其首选设备上通过互联网访问预先录制的内容。在触及最终用户之前,视频内容会经历几个关键阶段:

  1. 摄取:将高质量的中级(夹层)文件从源(例如工作室)传输到 AWS。
  2. 处理:对内容进行转码以供分发。基于文件的视频转码功能是视频点播平台的基本组成部分。此过程涉及创建多个版本的原始内容,其采用各种格式和比特率,并针对最终用户的设备和网络条件对其进行优化。
  3. 存储:将经过转码的内容托管在内容分发网络(CDN)可通过 HTTP(S) 访问的位置。此存储解决方案支持基于拉取的检索系统,以便 CDN 根据需要提取内容。
  4. 分发:通过在 CDN 上缓存内容,实现大规模分配视频文件,然后通过互联网将其分发给全球用户。这种策略可减少延迟并改进观看体验。
视频点播

架构决策

在设计视频点播 (VoD) 流式传输工作流程时,解决以下关键问题至关重要:

视频摄取来源:确定内容的来源。这可能包括提供电影、电视或体育内容的专业制片厂,以及来自智能手机的用户生成内容(UGC)。了解内容创作者与分发平台之间的界面,对于启动高效的内容摄取工作流程而言至关重要。要获得有关摄取视频内容至 AWS 的见解,请考虑参考以下资源:


分发视频的特性:定义比特率、帧速率、视频/音频编解码器和格式等所需的输出视频属性。此决定涉及平衡处理成本、设备兼容性和观众的体验质量(QoE)。

视频编码策略:选择使用 FFmpeg 等库的定制解决方案,还是使用托管云服务。对于托管选项,可以考虑 AWS Elemental MediaConvert,这是一项基于文件的转码服务,并具有广播级功能。

视频打包:决定将内容预打包成多种流式传输格式(例如 DASH、HLS、CMAF 和 MSS),并将其存储在 Amazon S3(Simple Storage Service)等系统中,以进行 CDN 分发。但是,也需要在简单性与存储成本、格式变更的影响之间进行权衡。或者,使用 AWS Elemental MediaPackage 等服务实施即时打包(JITP)。

内容安全:保护您的重要内容免遭剽窃和未经授权的访问,尤其是在内容提供者要求的情况下。关键技术包括:


内容分发:利用 Amazon CloudFront 等托管 CDN 或实施多 CDN 策略。在降低基础设施成本和通过缓存提高体验质量方面,CDN 至关重要。

流式传输体验质量监控:服务器端监控可提供基本见解,而客户端监控可提供最佳的体验质量可见性,例如受缓冲事件影响的播放百分比。选项包括:

  • 构建自定义解决方案
  • 将第三方开发工具包(例如 MuxDataZoom)集成到您的播放器中
  • 使用 CloudFront 等工具,实施通用媒体客户端分发(CMCD),将客户端指标中继到 CDN 日志。


内容获利:可选择订阅、按次付费或插播广告。对于插播广告,除前贴片或后贴片广告外,还可以考虑将 SCTE 标记集成到视频流中,以触发中贴片广告。有关获利策略的更多信息,请参阅此页面

如何开始使用?

要在 AWS 上创建 VoD 工作流程,最常见的方法是使用 AWS 构建块(包括 AWS Media Services)构建解决方案。在本文的其余部分中,您可以了解 AWS 上的参考 VoD 架构。 要首次实践如何使用 AWS Elemental MediaConvert、Amazon S3 和 Amazon CloudFront 构建简单的 VoD 工作流程,您可以按照自己的节奏完成此讲习会

如果您更倾向购买完全托管的 VoD 工作流程,则可以通过 InsysNomad 等 AWS 合作伙伴之一着手开始。 

在某些情况下,您可能设定了非常具体的要求,而托管服务无法满足这些要求。此时,您可以将开源软件和 AWS 核心服务(存储、计算、数据库和联网服务)结合使用,从头开始构建解决方案,如本博客所示。

AWS 视频点播解决方案

AWS 为 VoD、OTT 和 UGC 产品提供基于 AWS 构建块(包括代码和配置)的随时可部署的解决方案。 

适用于 Web 流式传输的基础解决方案

如果您运营的网站具有简单的 VoD 需求,例如单一输出流式传输格式、统一输入类型(单一视频和音频、一组输入分辨率),例如用于培训和教育目的的内容、营销视频、用户生成内容(UGC)或小型 Over-the-Top(OTT)内容库用例,我们建议您从 AWS 上的视频点播基础参考解决方案入手。

利用 AWS Foundation 上的视频点播基础解决方案,可自动预置必要的 AWS 服务,以构建可扩展的分布式工作流程,用于按需摄取、存储、处理和分发视频内容。 

提供 VoD/OTT/UGC 服务的简单方法

总体来说,此解决方案的工作方式如下:

  1. 视频上传和转码:监视文件夹会监控上传到 Amazon S3 源存储桶的新视频。当检测到新视频时,AWS Lambda 函数会触发 AWS Elemental MediaConvert。借助质量定义的可变比特率(QVBR)编码,MediaConvert 将视频转码为具有不同分辨率和比特率的各种格式(HLS 和 DASH),以确保高质量和最佳文件大小。
  2. 存储和分发:经过转码的视频存储在 Amazon S3 目标存储桶中,由 Amazon CloudFront(CDN)分发,从而加快向最终用户分发的速度。
  3. 通知系统:任务完成后,Amazon EventBridge 会触发 Lambda 函数,此函数会使用 Amazon Simple Notification Service(SNS)主题,发送有关已完成任务的通知,便于您自动执行发布流程。
  4. 监控:Amazon CloudWatch 会记录有关编码任务的指标,以便进行监控。

适用于进阶 VoD 服务的解决方案

相对于第一个用例,如果您对摄取和流式传输的要求更为严格,例如,您需要处理不同的输入类型,并且需要单独处理(SD/HD/UHD 版本,帧速率不同)及/或您需要生成不同的编码配置文件和不同的输出协议。我们建议您使用 AWS 上的视频点播参考解决方案进行评估。

提供 VOD/OTT/UGC 服务的进阶方法

与上文所述的“基础”解决方案相比,本方法提供了进阶功能:

  1. 可处理 MP4、MPG、M4V、M2TS 或 MOV 等更多输出格式。将视频添加到源 Amazon S3 存储桶时,Lambda 函数将调用 AWS Step Functions 上的摄取工作流程,而非进行一次性 Lambda 执行。
  2. 在摄取过程中,源视频详细信息将添加到 Amazon DynamoDB 中。在此过程中,还使用 MediaInfo(这是一种可显示媒体文件技术信息的开源软件)对内容进行验证,结果将存储在 DynamoDB 中。
  3. 此解决方案使用源视频的高度和宽度,来确定使用哪个任务模板向 MediaConvert 提交编码作业。如果您允许帧捕获,则系统会将帧捕获参数添加到任务模板中。然后,系统会在 MediaConvert 中创建编码任务,并将详细信息存储在 DynamoDB 中。 
  4. 完成视频编码后,MediaConvert 会向 Amazon CloudWatch 发送通知。Amazon CloudWatch Events 规则会调用进行发布的 AWS Step Functions 步骤函数,从而验证输出,并使用新内容详细信息更新 DynamoDB 表。 
  5. 工作流程完成后,Amazon SNS 和/或 Amazon SQS 会根据您选择的配置发送发布通知。如果您选择归档源内容,则系统会对源文件进行标记,以便 Amazon S3 生命周期策略将文件移动至 Amazon Glacier 或 Amazon Deep Archive。 
  6. 在工作流程中使用 MediaPackage VOD。启用后,此解决方案会创建一组独立的 MediaConvert 自定义模板,其中包括 H.265 MP4 和 HLS。此解决方案还会在 MediaPackage 中创建打包组,此组配置为摄取存储在 Amazon S3 中的 MediaConvert HLS 输出。MediaPackage 将内容进行打包,对其进行格式化以响应下游设备的播放请求。默认情况下,此解决方案会为 HLS、DASH、MSS 和 CMAF 创建打包配置。 

此页内容对您是否有帮助?