AWS 能否通過 CloudFront 或 CloudFormation 支持基於 RTMP 的實時流式傳輸
據我了解閱讀所有這些文章:
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-for-video-streaming/
看起來不可能使用 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 以進行實時流式傳輸。
這可能嗎?如何?
非常感謝。致以最誠摯的問候
我最近花了一些時間在這方面工作。答案是否定的,正如這個問題的另一個答案所指出的那樣。
但是,您基本上可以使用 AWS 建立自己的 RTMP CDN。您可以將一堆 nginx-rtmp 實例設置為邊緣。
nginx-rtmp 文件可以在項目的 GitHub ( https://github.com/arut/nginx-rtmp-module/ ) 上找到。您基本上可以以您喜歡的方式執行其中的一堆(EC2 實例、ECS,就像我正在做的那樣,或者您喜歡的任何方式),但是您將它們配置為從攝取伺服器中提取。
然後,您對邊緣進行負載平衡並從中拉出以進行查看。
這有點複雜,因為您基本上是使用 AWS EC2 實例從頭開始滾動您自己的 CDN,並且可能希望在多個區域擁有分發點。根據您的規模,讓中間節點用於從原點拉取並重新分配到區域邊緣可能是有意義的。
請參閱 nginx-rtmp 中的“pull”指令。範例配置:
rtmp { server { listen 1935; application streamapp { live on; pull rtmp://my-streaming-server.com:1935/streamapp; } } }