С помощью Amazon CloudFront клиенты обеспечивают потоковую передачу видео зрителям по всему миру, используя все разнообразие протоколов, работающих поверх HTTP.

Amazon CloudFront можно использовать совместно с мультимедийными сервисами AWS Elemental для реализации двух вариантов потоковой передачи видео. Сначала рассмотрим вариант потоковой передачи контента, хранящегося в сервисе Amazon Simple Storage Service (Amazon S3), по требованию. Затем рассмотрим вариант прямой трансляции мероприятий или круглосуточных каналов.

Building Serverless Video Workflows (58:42)

Видеоматериалы re:Invent: Amazon CloudFront

Начать работу с AWS

Попробуйте Amazon CloudFront бесплатно


Уровень бесплатного пользования AWS включает передачу 50 ГБ данных и 2 000 000 запросов HTTP и HTTPS с Amazon CloudFront.

Сведения об уровне бесплатного пользования AWS »


VOD Architecture CloudFront

При потоковой передаче по требованию видеоконтент хранится в Amazon S3. Зрители могут начать его просмотр в любое время, отсюда и название «по требованию». Чтобы создать комплексное решение для потоковой передачи по требованию, обычно используют Amazon S3 в качестве хранилища, AWS Elemental MediaConvert для обработки видеофайлов и Amazon CloudFront для доставки контента.

Amazon S3 – отличное хранилище для видеоматериалов. Оно неограниченно масштабируется, обладает встроенными средствами обеспечения избыточности и предоставляется клиентам с оплатой по факту использования. Загружать контент в хранилище S3 можно несколькими способами. При небольшом объеме контента можно начать работу через Консоль управления AWS, а затем, по мере увеличения объема, перейти к более автоматизированной системе. S3 очень просто использовать из консоли. После создания аккаунта AWS достаточно просто войти в систему, создать корзину S3 и загрузить контент. Если требуется реализовать автоматизированную систему, можно использовать интерфейс командной строки AWS для собственных скриптов либо вызывать API Amazon S3 в собственном коде.

После загрузки может потребоваться преобразовать видео для получения размера, разрешения или формата, необходимого конкретному телевизору или подключенному устройству. Эти задачи помогает решить сервис AWS Elemental MediaConvert. MediaConvert извлекает контент из S3, перекодирует его по запросу клиента и сохраняет результат обратно в S3. Перекодирование заключается в обработке видеофайлов с целью создания сжатых версий исходного контента. Оно позволяет уменьшить размер файла, изменить формат или повысить совместимость с устройствами воспроизведения. Процессами перекодирования также можно управлять из Консоли управления AWS, из командной строки либо с помощью API MediaConvert.

После того как обеспечено безопасное хранение контента и его доступность в необходимых пользователям форматах, следующим шагом будет обеспечение глобальной доставки контента с помощью Amazon CloudFront. Сервис CloudFront кэширует контент в периферийных местоположениях, чтобы обеспечить доставку видео с низкой задержкой и высокой пропускной способностью. Благодаря масштабируемости сервиса объемы передаваемого видео могут быть сколь угодно большими или малыми. Принцип оплаты по факту использования позволяет просто справляться с неожиданными пиками спроса (подробнее см. на странице цен на CloudFront).

На этом моменте наша инструкция разветвляется: далее возможны два варианта. Можно доставлять на устройство весь видеофайл перед воспроизведением либо передавать его на устройство в потоковом режиме.

Первый вариант очень прост в реализации и поддерживается практически любым мобильным устройством и настольным компьютером. Все, что нужно сделать, – это разместить контент в корзине S3 и создать базу раздачи CloudFront, указывающую на эту корзину. Видеопроигрыватель пользователя будет использовать для запроса видеофайла URL-адреса CloudFront, доступные в рамках базы раздачи. Запрос будет направляться в оптимальное периферийное местоположение в зависимости от местонахождения пользователя. CloudFront будет передавать видео из своего кэша, а если оно еще не было кэшировано – загрузит из корзины S3. Этот вариант имеет несколько недостатков. Он неэффективно использует пропускную способность, доступную конечному пользователю. Если пользователь решит не смотреть видео до конца, ему все равно придется загрузить контент, который никогда не будет просмотрен, и этот процесс вам придется оплачивать.

Почти во всех случаях предпочтительным является другой вариант. Протоколы потоковой передачи видео, в т. ч. Apple HTTP Live Streaming (HLS), Dynamic Adaptive Streaming over HTTP (DASH), Microsoft Smooth Streaming (MSS) и Adobe HTTP Dynamic Streaming (HDS), повышают удобство пользователей путем доставки видео по мере его просмотра: как правило, загрузка контента осуществляется за несколько секунд до того, как он понадобится. Воспроизведение начинается быстрее, быстрая перемотка работает эффективнее, повышается общий комфорт при просмотре. При выборе этого варианта оплачивать приходится только то, что смотрит зритель, на стороне конечных пользователей не тратится впустую пропускная способность, к тому же они быстрее видят желаемый контент.

Реализация второго варианта потребует немного больше работы. Сначала нужно применить сервис MediaConvert для преобразования видеофайлов в формат HLS (наиболее широко поддерживаемый протокол потоковой передачи). При этом видео делится на короткие сегменты, для него создается файл манифеста. Затем требуется указать базе раздачи CloudFront, где находится манифест. Наконец, чтобы обеспечить воспроизведение видеопотока, следует встроить URL-адрес манифеста в проигрыватели, с помощью которых пользователи будут смотреть видео. Например, чтобы воспроизвести видеопоток с файлом манифеста myStream/playlist.m3u8 и базой раздачи CloudFront d111111abcdef8.cloudfront.net, необходимо встроить в проигрыватели следующий URL-адрес: http://d111111abcdef8.cloudfront.net/myStream/playlist.m3u8.

На странице «Video on Demand on AWS» приведены рекомендации и указания, которые следует учитывать при реализации процесса доставки видео по запросу в облаке AWS, а также представлено решение AWS, которое автоматически выделяет сервисы, необходимые для создания масштабируемой распределенной архитектуры для загрузки, хранения, обработки и доставки видеоконтента.


Live Events CloudFront

В случае прямых трансляций контент клиента представляет собой реальные мероприятия или программы каналов с круглосуточным вещанием. Первый вариант включает организаторов вещания и агрегаторов контента, которые транслируют спортивные соревнования, церемонии награждений, выступления на конференциях и другие популярные события в прямом эфире. Ко второму варианту относятся студии, организаторы вещания и операторы платного телевидения, которые хотели бы доставлять линейные каналы прямого вещания через Интернет непосредственно своей аудитории, без использования сторонней платформы распространения.

С помощью AWS можно без лишних затрат начать прямую трансляцию контента для глобальной аудитории, выполнив несколько простых шагов.

Первым шагом является потоковая обработка видео. Для этой цели можно использовать сервис AWS Elemental MediaLive, который кодирует видеопотоки в режиме реального времени. Он получает на вход видеоизображение большего размера (например, от локального кодировщика, такого как AWS Elemental Live) и сжимает его, создавая версии меньшего размера для доставки зрителям. На втором шаге в зависимости от конкретного примера использования можно выбрать один из двух вариантов. Можно использовать в качестве источника сервис своевременного сжатия (например, AWS Elemental MediaPackage), позволяющий преобразовывать видеоконтент из одного формата в несколько других форматов и безопасно упаковывать его для различных типов устройств. Сервис AWS Elemental MediaPackage обеспечивает простую работу с популярными возможностями воспроизведения видео для пользователей (повторное воспроизведение, пауза, перемотка и т. д.), похожими на те, которыми оснащены стандартные видеопроигрыватели. Кроме того, он использует для выпускаемого контента технические средства защиты авторских прав (DRM). Альтернативный вариант применяется, если кодировщик сразу производит контент в формате, требуемом всеми устройствами конечных пользователей. Тогда можно использовать высокопроизводительный масштабируемый источник, например AWS Elemental MediaStore. Сервисы MediaPackage и MediaStore доставляют контент в сервис Amazon CloudFront, а он, в свою очередь, направляет его к зрителям, которые смотрят мероприятие.

Как только решение будет запущено, мероприятие можно будет экономично транслировать по всему миру и поддерживать необходимое масштабирование. CloudFront способен адаптироваться к изменениям размера аудитории, включая одновременное подключение большого количества зрителей.

На странице «Live Video Streaming» приведены рекомендации и указания, которые следует учитывать при организации процесса прямой видеотрансляции в облаке AWS, а также представлено решение AWS, которое автоматически выделяет сервисы, необходимые для создания высокодоступной экономичной архитектуры для исключительно комфортного просмотра видео в режиме реального времени.


С помощью Amazon CloudFront клиенты обеспечивают потоковую передачу видео зрителям по всему миру, используя все разнообразие протоколов, работающих поверх HTTP.

Попробуйте Amazon CloudFront бесплатно