无服务器系统通过将流程分解为事件驱动型任务,并与专门的云服务集成来处理流媒体视频和音频。 无服务器函数(例如 AWS Lambda 或 Azure Functions)在流媒体工作流程的特定阶段触发,而不是维护持久性服务器。 例如,当用户上传视频时,无服务器函数可能会验证文件、生成元数据或使用专用服务(如 AWS Elemental MediaConvert)启动转码。 实际的繁重处理(例如,为不同设备转换视频格式)被卸载到这些专门构建的工具,而无服务器充当协调工作流程的粘合剂。 这种方法避免了在具有时间和内存限制的短暂无服务器计算上直接运行资源密集型任务。
对于交付,无服务器系统通常依赖于内容分发网络 (CDN),如 CloudFront 或 Cloudflare,并结合边缘计算。 边缘的无服务器函数(例如,Lambda@Edge)可以在允许访问视频流之前处理身份验证、令牌生成或地理限制检查。 媒体本身存储在对象存储(例如,S3)或流媒体服务(如 AWS MediaLive)中,后者通过 HLS 或 DASH 等协议提供块。 无服务器函数还可以根据实时条件(例如,通过客户端指标检测到的网络带宽)动态生成清单或调整流质量。 这将无状态逻辑(由无服务器处理)与有状态、高吞吐量流媒体(由 CDN 和媒体特定服务处理)分离。
实时流媒体场景(如实时音频/视频源)使用混合架构。 无服务器函数管理 WebRTC 连接的信令(例如,协商对等链接)或处理短音频/视频片段。 例如,无服务器函数可以使用第三方 API 分析 5 秒的音频剪辑以进行情感分析,然后将结果存储在数据库中。 诸如 AWS Kinesis 或 Azure Event Grid 之类的平台可以将流媒体数据块路由到无服务器函数以进行近乎实时的处理,例如审核或转录。 但是,核心媒体传输通常依赖于针对低延迟优化的专用协议(RTMP、WebRTC)和服务(Twilio、Agora),而无服务器处理辅助任务,例如身份验证、分析或在发生特定事件时触发下游工作流程(例如,检测实时流中的关键字)。