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

架构决策
在设计视频点播 (VoD) 流式传输工作流程时,解决以下关键问题至关重要:
视频摄取来源:确定内容的来源。这可能包括提供电影、电视或体育内容的专业制片厂,以及来自智能手机的用户生成内容(UGC)。了解内容创作者与分发平台之间的界面,对于启动高效的内容摄取工作流程而言至关重要。要获得有关摄取视频内容至 AWS 的见解,请考虑参考以下资源:
分发视频的特性:定义比特率、帧速率、视频/音频编解码器和格式等所需的输出视频属性。此决定涉及平衡处理成本、设备兼容性和观众的体验质量(QoE)。
视频编码策略:选择使用 FFmpeg 等库的定制解决方案,还是使用托管云服务。对于托管选项,可以考虑 AWS Elemental MediaConvert,这是一项基于文件的转码服务,并具有广播级功能。
视频打包:决定将内容预打包成多种流式传输格式(例如 DASH、HLS、CMAF 和 MSS),并将其存储在 Amazon S3(Simple Storage Service)等系统中,以进行 CDN 分发。但是,也需要在简单性与存储成本、格式变更的影响之间进行权衡。或者,使用 AWS Elemental MediaPackage 等服务实施即时打包(JITP)。
内容安全:保护您的重要内容免遭剽窃和未经授权的访问,尤其是在内容提供者要求的情况下。关键技术包括:
- CDN 级别的令牌化,可防止未经授权的下载
- 数字版权管理(DRM)集成,其使用 SPEKE 协议进行播放控制
- 添加水印以追踪盗版内容
内容分发:利用 Amazon CloudFront 等托管 CDN 或实施多 CDN 策略。在降低基础设施成本和通过缓存提高体验质量方面,CDN 至关重要。
流式传输体验质量监控:服务器端监控可提供基本见解,而客户端监控可提供最佳的体验质量可见性,例如受缓冲事件影响的播放百分比。选项包括:
- 构建自定义解决方案
- 将第三方开发工具包(例如 Mux 和 DataZoom)集成到您的播放器中
- 使用 CloudFront 等工具,实施通用媒体客户端分发(CMCD),将客户端指标中继到 CDN 日志。
内容获利:可选择订阅、按次付费或插播广告。对于插播广告,除前贴片或后贴片广告外,还可以考虑将 SCTE 标记集成到视频流中,以触发中贴片广告。有关获利策略的更多信息,请参阅此页面。
如何开始使用?
要在 AWS 上创建 VoD 工作流程,最常见的方法是使用 AWS 构建块(包括 AWS Media Services)构建解决方案。在本文的其余部分中,您可以了解 AWS 上的参考 VoD 架构。 要首次实践如何使用 AWS Elemental MediaConvert、Amazon S3 和 Amazon CloudFront 构建简单的 VoD 工作流程,您可以按照自己的节奏完成此讲习会。
如果您更倾向购买完全托管的 VoD 工作流程,则可以通过 Insys 和 Nomad 等 AWS 合作伙伴之一着手开始。
在某些情况下,您可能设定了非常具体的要求,而托管服务无法满足这些要求。此时,您可以将开源软件和 AWS 核心服务(存储、计算、数据库和联网服务)结合使用,从头开始构建解决方案,如本博客所示。
AWS 视频点播解决方案
AWS 为 VoD、OTT 和 UGC 产品提供基于 AWS 构建块(包括代码和配置)的随时可部署的解决方案。
适用于 Web 流式传输的基础解决方案
如果您运营的网站具有简单的 VoD 需求,例如单一输出流式传输格式、统一输入类型(单一视频和音频、一组输入分辨率),例如用于培训和教育目的的内容、营销视频、用户生成内容(UGC)或小型 Over-the-Top(OTT)内容库用例,我们建议您从 AWS 上的视频点播基础参考解决方案入手。
利用 AWS Foundation 上的视频点播基础解决方案,可自动预置必要的 AWS 服务,以构建可扩展的分布式工作流程,用于按需摄取、存储、处理和分发视频内容。

总体来说,此解决方案的工作方式如下:
- 视频上传和转码:监视文件夹会监控上传到 Amazon S3 源存储桶的新视频。当检测到新视频时,AWS Lambda 函数会触发 AWS Elemental MediaConvert。借助质量定义的可变比特率(QVBR)编码,MediaConvert 将视频转码为具有不同分辨率和比特率的各种格式(HLS 和 DASH),以确保高质量和最佳文件大小。
- 存储和分发:经过转码的视频存储在 Amazon S3 目标存储桶中,由 Amazon CloudFront(CDN)分发,从而加快向最终用户分发的速度。
- 通知系统:任务完成后,Amazon EventBridge 会触发 Lambda 函数,此函数会使用 Amazon Simple Notification Service(SNS)主题,发送有关已完成任务的通知,便于您自动执行发布流程。
- 监控:Amazon CloudWatch 会记录有关编码任务的指标,以便进行监控。
适用于进阶 VoD 服务的解决方案
相对于第一个用例,如果您对摄取和流式传输的要求更为严格,例如,您需要处理不同的输入类型,并且需要单独处理(SD/HD/UHD 版本,帧速率不同)及/或您需要生成不同的编码配置文件和不同的输出协议。我们建议您使用 AWS 上的视频点播参考解决方案进行评估。

与上文所述的“基础”解决方案相比,本方法提供了进阶功能:
- 可处理 MP4、MPG、M4V、M2TS 或 MOV 等更多输出格式。将视频添加到源 Amazon S3 存储桶时,Lambda 函数将调用 AWS Step Functions 上的摄取工作流程,而非进行一次性 Lambda 执行。
- 在摄取过程中,源视频详细信息将添加到 Amazon DynamoDB 中。在此过程中,还使用 MediaInfo(这是一种可显示媒体文件技术信息的开源软件)对内容进行验证,结果将存储在 DynamoDB 中。
- 此解决方案使用源视频的高度和宽度,来确定使用哪个任务模板向 MediaConvert 提交编码作业。如果您允许帧捕获,则系统会将帧捕获参数添加到任务模板中。然后,系统会在 MediaConvert 中创建编码任务,并将详细信息存储在 DynamoDB 中。
- 完成视频编码后,MediaConvert 会向 Amazon CloudWatch 发送通知。Amazon CloudWatch Events 规则会调用进行发布的 AWS Step Functions 步骤函数,从而验证输出,并使用新内容详细信息更新 DynamoDB 表。
- 工作流程完成后,Amazon SNS 和/或 Amazon SQS 会根据您选择的配置发送发布通知。如果您选择归档源内容,则系统会对源文件进行标记,以便 Amazon S3 生命周期策略将文件移动至 Amazon Glacier 或 Amazon Deep Archive。
- 在工作流程中使用 MediaPackage VOD。启用后,此解决方案会创建一组独立的 MediaConvert 自定义模板,其中包括 H.265 MP4 和 HLS。此解决方案还会在 MediaPackage 中创建打包组,此组配置为摄取存储在 Amazon S3 中的 MediaConvert HLS 输出。MediaPackage 将内容进行打包,对其进行格式化以响应下游设备的播放请求。默认情况下,此解决方案会为 HLS、DASH、MSS 和 CMAF 创建打包配置。
资源
- Back to basics: HTTP video streaming
- Back to basics: GOPs explained
- Back to basics: Mechanisms used behind the scenes in video compression
- Back to basics: conditional access vs. digital rights management
- Resilient video encoding across multiple AWS regions
- How to get to market fast with Automated ABR encoding
- Preparing your video library for AVOD OTT
- Converting frame rates in the cloud with InSync FrameFormer and AWS Elemental MediaConvert
- Using Amazon CloudFront and AWS Media Services
- AWS for Media & Entertainment launches a free digital learning badge for Direct-to-Consumer and Broadcast Foundations