如何通过RTMP向AWS ECS容器推流实现直播实时转录?
直播实时转录场景落地解决方案
Amazon IVS Auto-captions Demo ECS推流转链路实现指引
- 前置资源配置:给ECS任务绑定具备
AmazonTranscribeStreamingAccess、IVSReadOnlyAccess权限的IAM执行角色;ECS所属安全组入方向放开RTMP协议默认1935端口,出方向放开443端口用于调用AWS服务接口;如果选用Fargate启动类型,需要给任务配置公网IP或绑定VPC NAT网关,保证容器可以访问公网服务端点。 - 容器部署配置:直接使用demo配套的预构建转发镜像部署ECS任务,启动时传入三个必填环境变量:
IVS_INGEST_ENDPOINT(对应IVS频道的推流地址)、TRANSCRIBE_TARGET_LANG(转录目标语言编码,如zh-CN、en-US)、RESULT_CALLBACK_WS(接收转录结果的Websocket服务地址)。容器内置Nginx-RTMP服务与音轨转码模块,不需要额外安装依赖。 - 推流与链路验证:将原本直接推送至IVS推流域名的直播流,改为推送至ECS任务的访问IP+1935端口对应的RTMP应用路径即可。容器收到流后会自动做两路转发:一路原样推回配置好的IVS ingest地址保证正常直播分发,另一路抽取音轨转码为Transcribe要求的PCM 16kHz单声道格式,通过流式接口推送到Transcribe服务。查看ECS任务日志,出现
RTMP stream connected、Transcribe session initialized字段即代表链路连通正常,转录结果会实时推送到你配置的Websocket回调地址,和demo原生前端字幕组件完全兼容,不需要修改前端业务逻辑。
常见踩坑点:不要给ECS任务配置低于0.5vCPU/1GB内存的规格,不然音轨转码过程会出现卡顿,直接导致转录断流、字幕延迟超过10秒。
其他可落地的直播实时转录替代架构
- IVS原生托管字幕方案:不需要自建任何计算资源,直接在IVS频道控制台开启自动字幕功能,IVS后台会自动对接Transcribe服务完成转录,端到端字幕延迟比自建ECS方案低2-3秒,支持直接输出内嵌字幕轨、HLS外挂字幕轨,缺点是支持的语种范围小于直接调用Transcribe接口,自定义词库、热词配置灵活性较差。
- MediaLive全托管转码转录方案:如果现有直播链路已经使用AWS MediaLive做转码处理,可以直接在MediaLive输出组中配置音频流转规则,将音轨通过MediaConnect转发至Transcribe流式接口,全链路无服务器不需要运维,适合大型直播、广电级直播场景,整体成本比自建ECS方案高30%左右。
- 边缘低延迟转录方案:对字幕实时性要求极高的互动直播场景,可以在CloudFront边缘节点部署Lambda@Edge逻辑,就近接收推流后拆分音轨,转发至距离推流点最近的Transcribe服务端点,端到端转录延迟可以压缩到1秒以内,缺点是边缘函数调试复杂度较高。
内容的提问来源于stack exchange,提问作者Arpit Shukla
相关产品推荐
相关产品推荐

