据我了解阅读所有这些文章:
docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-rtmp.html docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-overview.html docs.aws.amazon.com/AmazonCloudFront/latest/ DeveloperGuide/Tutorials.html docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/wowza-creating-stack.html docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-rtmp-creating.html docs.aws .amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-rtmp-values-specify.html docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AMS5.0SubscribingToAMS.html docs.aws.amazon.com/AmazonCloudFront/latest /DeveloperGuide/LiveStreamingAdobeMediaServer5.0.html
特别是以下内容:
https://aws.amazon.com/it/blogs/aws/amazon-cloudfront-now-supports-streaming-media-content/ https://aws.amazon.com/it/blogs/aws/using-amazon-用于视频流的云端/
看起来不可能使用 CloudFront 与 TCP 80 或 TCP 1935 上的 Web 或 RTMP 分发镜像实时流媒体 RTMP,因为这些分发基于播放器和视频文件的静态文件的传递/镜像/缓存(FLV )。
亚马逊通过 CloudFormation 堆栈和 Adobe Media Server 或 WOWZA 集成提供对实时流媒体的支持,但在我们的场景中,客户端已经拥有自己的 Red5 流媒体服务器,并且已经在工作和设置。
如何使用 CloudFront 来镜像 TCP 80 或 1935 上的实时流媒体 RTMP 连接,通过使用在 Red5 上运行的源服务器和 RTMP 流,而不是从 S3 主机传递静态 FLV 文件?
我想了解亚马逊是否支持此解决方案以及在哪里可以找到执行此类配置的知识库。
基本上,在我们的场景中,我们已经在公共 Web 上公开了 RTMP,我们只需要 AWS 通过 CloudFront 将其缓存并提供给其他客户端。
我们想尝试仅为将由客户端下载以查看流式传输的 Flash Player 进行 Web 分发,并且我们希望播放器指向 AWS CDN 镜像 URL 以进行实时流式传输。
这可能吗?如何?
非常感谢。致以最诚挚的问候
CloudFront 分配可以使用以下基于 HTTP 的流式传输协议来交付流式传输内容:
Cloudfront 旨在分发 HTTP VOD/Live Stream 流量和 RTMP VOD。对于实时流媒体 RTMP,您可能需要查看其他 CDN 服务,例如 Akamai。如果您想将 CloudFront 用于 HTTP 流量,将 Akamai 用于 RTMP 实时流,您应该能够同时使用这两种服务。
我最近花了一些时间在这方面工作。答案是否定的,正如这个问题的另一个答案所指出的那样。
但是,您基本上可以使用 AWS 建立自己的 RTMP CDN。您可以将一堆 nginx-rtmp 实例设置为边缘。
nginx-rtmp 文档可以在项目的 GitHub ( https://github.com/arut/nginx-rtmp-module/ ) 上找到。您基本上可以以您喜欢的方式运行其中的一堆(EC2 实例、ECS,就像我正在做的那样,或者您喜欢的任何方式),但是您将它们配置为从摄取服务器中提取。
然后,您对边缘进行负载平衡并从中拉出以进行查看。
这有点复杂,因为您基本上是使用 AWS EC2 实例从头开始滚动您自己的 CDN,并且可能希望在多个区域拥有分发点。根据您的规模,让中间节点用于从原点拉取并重新分配到区域边缘可能是有意义的。
请参阅 nginx-rtmp 中的“pull”指令。示例配置: