HTTP Live Streaming через облачный фронт AWS
Хотелось бы узнать, был ли кто-либо в состоянии транслировать видео HLS через AWS Cloudfront с подписанным URL.
Мой опыт пока таков, что это невозможно. Документация AWS не ясна. Форум AWS молчит.
Кажется, я могу получить первый файл ( .m3u8), затем он останавливается. Использование проигрывателя JW, который жалуется, не может получить медиафайл.
Если ответ "да", пожалуйста, укажите мне правильное направление.
Благодарю.
4 ответа
Сценарий с неподписанными URL-адресами, безусловно, будет работать. Я успешно сегментировал видеопотоки с помощью ffmpeg на S3 и обслуживал их из CF. В конце концов, это все HTTP.
Если вы хотите ограничить доступ к своему содержимому HLS, ваш файл списка воспроизведения должен также включать подписанные URL-адреса. Обычно вы вычисляете их по запросу плейлиста, основываясь на любых учетных данных, с которыми вы хотите аутентифицировать пользователя. Таким образом, вам нужна реализация на стороне сервера, которая генерирует уникальные для сессии m3u8 для вас, чтобы схема со подписанным URL имела смысл.
В зависимости от ваших потребностей, другой вариант - изучить DRM. JW Player поддерживает дешифрование фрагментов одного / вращающегося ключа, что, вероятно, является более сложным решением. После этого вам будет предоставлена возможность безопасного распространения ключей дешифрования среди ваших клиентов.
Я надеюсь, что это несколько решает ваши проблемы. Если нет, не стесняйтесь оставлять комментарии.
Используйте подписанные URL-адреса в следующих случаях:
- Вы хотите использовать RTMP-дистрибутив. Подписанные куки не поддерживаются для дистрибутивов RTMP.
- Вы хотите ограничить доступ к отдельным файлам, например, к загрузке установки для вашего приложения.
- Ваши пользователи используют клиент (например, пользовательский HTTP-клиент), который не поддерживает файлы cookie.
Используйте подписанные куки в следующих случаях:
Вы хотите предоставить доступ к нескольким ограниченным файлам, например, ко всем файлам для видео в формате HLS или ко всем файлам в области подписчиков на веб-сайте.
Вы не хотите менять свои текущие URL.
Для получения дополнительной информации: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-choosing-signed-urls-cookies.html
Согласно этой статье, Cloudfront действительно поддерживает HLS. В настоящее время я пытаюсь реализовать это на своем сайте, используя flowplayer с видео html5. Я обновлю этот ответ, как только он будет запущен. На сайте Amazon Web Services также было сказано о поддержке HLS, хотя она выглядит не так аккуратно и аккуратно, как подход rtmp.
Согласно описанию CloudFront его потоковой передачи:
Потоковая передача предварительно записанных мультимедиа. Вы можете доставлять медиафайлы по требованию с помощью потоковой передачи сообщений протокола реального времени Adobe (RTMP) через Amazon CloudFront. Вы храните оригинальную копию своих медиафайлов в Amazon S3 и используете Amazon CloudFront для доставки медиаконтента с низкой задержкой. Amazon CloudFront интегрируется с Amazon S3, поэтому вы можете настроить потоковую передачу мультимедиа с помощью простого вызова API или с помощью нескольких щелчков мыши в консоли управления AWS. Вы также получаете выгоду от высокопроизводительной доставки мультимедиа при использовании Amazon CloudFront, поэтому вы можете доставлять контент в полном качестве HD своим зрителям.
Короткий ответ в значительной степени нет. Потоковая передача из CloudFront - это RTMP.
Ссылка: http://aws.amazon.com/cloudfront/
Тем не менее, AWS Elastic Transcoder может создавать наборы файлов HLS и списки воспроизведения, и они могут обслуживаться из CloudFront. Тогда ответ становится "да, если вы можете сделать работу / разобраться".
Вот ссылка на их часто задаваемые вопросы, в которых рассказывается, как это сделать: http://aws.amazon.com/elastictranscoder/faqs/