如何将RTMP输入重定向至其他媒体服务器?AWS MediaLive场景问询
统一AWS MediaLive RTMP输入域名的解决方案
针对你提到的AWS MediaLive频道无静态域名、输入端点随实例动态变化,需要给推流者提供统一RTMP目标URL的问题,这里有几个贴合AWS生态和开源工具的可行方案:
方案1:用Nginx反向代理搭建固定域名入口
你可以部署一台EC2实例或容器运行带RTMP模块的Nginx,通过Route 53把固定域名解析到这台服务器,再将推流请求转发到MediaLive的频道输入端点。
核心配置示例
在Nginx的rtmp配置块中添加:
rtmp { server { listen 1935; chunk_size 4096; application live { live on; # 转发到MediaLive的RTMP输入端点,多频道可添加多个push实现负载均衡 push rtmp://<medialive-channel-input-endpoint>/app/stream; } } }
如果MediaLive频道会动态增减,可编写Python脚本结合AWS SDK,定时调用MediaLive API获取当前运行频道的输入端点,自动更新Nginx配置并重新加载服务,保证转发目标始终有效。
方案2:借助AWS Application Load Balancer(ALB)实现TCP转发
RTMP基于TCP协议,你可以创建ALB并配置TCP监听(端口1935),把MediaLive频道的输入端点作为目标组的后端目标。ALB会分配固定域名,推流者直接推送到该域名,ALB负责将流量转发到可用的MediaLive频道。
关键步骤
- 创建ALB,选择TCP协议,监听端口1935
- 创建目标组,目标类型选「IP地址」,添加MediaLive频道的输入端点IP
- 配置Route 53将你的固定域名解析到ALB域名
- 可选:用Lambda函数配合CloudWatch Events,定时同步MediaLive频道的输入端点到目标组,自动添加/移除失效目标
方案3:通过AWS MediaConnect做中间转接层
MediaConnect支持接收RTMP输入并转发到MediaLive频道,且它的输入端点是固定域名。推流者只需推送到MediaConnect的固定输入URL,再由MediaConnect将流量转发到MediaLive频道,完全屏蔽MediaLive的动态端点变化。
优势
- 无需维护额外服务器或负载均衡配置
- 原生集成AWS服务,可靠性更高
- 自带流量监控和转码调整能力(若有需求)
注意事项
- 所有方案需确保转发层带宽足够,避免推流过程中出现丢包
- 要配置好IAM权限,保证转发层(Nginx/ALB/MediaConnect)能正常访问MediaLive频道输入端点
- 自动同步类脚本或Lambda需具备读取MediaLive频道信息、修改目标组/配置的权限
内容的提问来源于stack exchange,提问作者KR_RedBull
相关产品推荐
相关产品推荐

