Итак, я прыгал между попытками CDN оптимизировать наше решение для обслуживания. В наш код мы добавляем короткие видеоклипы, отображающие либо видеоэлемент html5 (MP4 или OGG), либо flash swf (FLV) в качестве запасного варианта.
Мы используем Amazon S3 для хранения этих медиафайлов и CloudFront в качестве нашей сети доставки контента. Мы экспериментировали с резервным флэш-накопителем, используя дистрибутив CloudFront Flash Media Server, и мы передаем FLV в резервный флэш-файл. Это отлично работает :)
Однако я хотел бы выполнить ту же настройку (Origin> Streaming CDN> Client) с файлами MP4 и OGG в размещении HTML5. Для этого мне нужно передавать их через RTP или RTSP, а не через RTMP CloudFront и FMS.
Пока мне не удалось найти CDN, поддерживающий потоки RTSP. Есть ли способ использовать сервер потоковой передачи CloudFront и каким-то образом преобразовать протокол потока в RTSP, используя mp4 и ogg в качестве исходных файлов?
(Я также должен отметить, что цена здесь является довольно важным фактором. Проект зависит от цены на уровне за ТБ / ГБ / МБ.)
Я не верю, что протоколы RTSP / RPT широко поддерживаются в браузерах HTML5. Устройства Apple могут использовать RTSP, и, возможно, IE9 тоже будет (поскольку старые серверы Windows Media также использовали RTSP до появления Smooth Streaming в Silverlight). Но стандарт HTML5 не определяет используемые протоколы или кодеки.
Наша текущая логика показа видео:
использовать MP4 с несколькими скоростями передачи с динамической потоковой передачей HTTP через флэш-память, если установлена Flash 10.1 или выше
Возврат к MP4 с прогрессивной загрузкой через HTTP во Flash Player, если присутствует flash v9 или выше
Эта схема обеспечивает 99 +% показа всем нашим зрителям, которые в основном являются корпоративными, а не домашними пользователями. Корпоративные брандмауэры и специализированные протоколы потоковой передачи, такие как RTMP и RTSP, как правило, несовместимы в нашем опыте - они часто блокируются. Очень немногие из наших посетителей могут даже получать поток RTSP или RTMP через свой брандмауэр, а «решение» туннелирования RTP или RTMP внутри потока HTTP менее эффективно с точки зрения пропускной способности, чем простая загрузка HTTP.