Насколько я понимаю, читая все эти статьи:
docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-rtmp.html docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-overview.html docs.aws.amazon.com/Amazonlatest/CloudFront DeveloperGuide / Tutorials.html docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/wowza-creating-stack.html docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-rtmp-creatings.html. .amazon.com / AmazonCloudFront / latest / DeveloperGuide / distribution-rtmp-values-define.html docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AMS5.0SubscribingToAMS.html docs.aws.amazon.com/AmazonCloudFront/latest/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/
Похоже, что невозможно отразить RTMP в реальном времени с использованием CloudFront с веб-распределением или распределением RTMP по TCP 80 или TCP 1935, поскольку эти распределения основаны на доставке / зеркалировании / кэшировании статических файлов для проигрывателей и видеофайлов (FLV ).
Поддержка потоковой передачи в реальном времени предлагается Amazon через стек CloudFormation и Adobe Media Server или интеграцию с WOWZA, но в нашем сценарии у клиента уже есть собственный потоковый сервер Red5, который уже работает и настроен.
Как можно использовать CloudFront для зеркалирования RTMP-соединения Live Streaming на TCP 80 или 1935, используя исходный сервер и поток RTMP, работающий на Red5, вместо доставки статического FLV-файла с хостинга S3?
Я хотел бы понять, поддерживается ли это решение Amazon и где найти базу знаний для выполнения такой настройки.
По сути, в нашем сценарии у нас уже есть RTMP, доступный в общедоступном Интернете, нам нужно только AWS, чтобы кэшировать его через CloudFront и обслуживать других клиентов.
Мы хотим попробовать сделать веб-распространение только для Flash Player, который будет загружен клиентами для просмотра потоковой передачи, и мы хотели бы, чтобы проигрыватель указывал на URL-адрес зеркального отображения AWS CDN для потоковой передачи в реальном времени.
Возможно ли это и как?
Огромное спасибо. С наилучшими пожеланиями
Распространение CloudFront может доставлять потоковый контент с использованием следующих потоковых протоколов на основе HTTP:
Cloudfront предназначен для распределения трафика HTTP VOD / Live Stream и RTMP VOD. Для Live Streaming RTMP вы можете посмотреть другие службы CDN, такие как Akamai. Вы должны иметь возможность использовать обе службы вместе, если хотите использовать CloudFront для своего HTTP-трафика и Akamai для потоков RTMP Live Streams.
Недавно я потратил некоторое время на работу над этим. Ответ - нет, как указывает другой ответ на этот вопрос.
Тем не менее, вы можете создать собственный RTMP CDN с помощью AWS. Вы можете настроить несколько экземпляров nginx-rtmp в качестве ребер.
Документацию по nginx-rtmp можно найти на GitHub проекта (https://github.com/arut/nginx-rtmp-module/). Вы в основном запускаете кучу из них, как хотите (экземпляры EC2, ECS, как я, или как вам нравится), но вы настраиваете их для извлечения с сервера приема.
Затем вы загружаете балансировку краев и снимаете с них для просмотра.
Это немного усложняется, поскольку вы в основном создаете собственный CDN с нуля с использованием экземпляров AWS EC2 и, вероятно, хотите иметь точки распространения в нескольких регионах. В зависимости от вашего масштаба может иметь смысл иметь промежуточные узлы, которые служат для извлечения из исходной точки и перераспределения по региональным границам.
См. Директиву pull в nginx-rtmp. Пример конфигурации:
rtmp {
server {
listen 1935;
application streamapp {
live on;
pull rtmp://my-streaming-server.com:1935/streamapp;
}
}
}