Назад | Перейти на главную страницу

Буферизация при передаче видео через AWS CloudFront

Мы размещаем видео в AWS S3 в Формат HLS (много файлов .ts, + плейлисты .m3u8).

Мы настроили AWS CloudFront со всеми периферийными местоположениями для обслуживания этих файлов.

У нас есть 2 приложения, iOS и Android, с видеоплеером, который воспроизводит URL-адрес CloudFront. Приложение Android использует Exoplayer от Google, а приложение iOS - AVPlayer. Оба они представляют одни и те же проблемы.

Видео играть плавно из одного региона в качестве исходного ведра S3. Вначале у нас были некоторые проблемы, но мы исправили их, исправив кодировку битрейта.

Однако клиенты из отдаленные страны жаловался на буферизацию: в среднем 1 минута для начальной загрузки видео, затем в среднем 12 секунд буферизации каждую минуту.

Поэтому мы решили добавить AWS CloudFront так что файлы будут кэшироваться в местах Edge, что ускорит загрузку видео.

Но клиенты продолжали жаловаться, и мы знали, что для загрузки у первого пользователя все равно потребуется время.

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

Но это тоже не помогает.

мне интересно если AWS CloudFront вообще эффективен для потоковой передачи видео посредством прямой загрузки, или если мы что-то упускаем.

Как заставить работать CloudFront, чтобы избавиться от буферизации видео? Или, если CloudFront не является решением (почему?), На что мы должны обратить внимание?

Примечание: мы установили TTL на 10 лет, на всякий случай ... и мы управляем аннулированием вручную.