Используйте RTMP через порт 80 или RTMPT через HTTP, что будет лучше?
В настоящее время мы используем дистрибутив CloudFront Streaming с JW Player 6 и протоколом RTMP. Тем не менее, некоторые из наших корпоративных пользователей сказали нам, что они не могут видеть видео, и потому, что у них заблокирован порт 1935 RTMP.
CloudFront поддерживает потоковую передачу по протоколу RTMP через порты 1935 и 80. Кроме того, он поддерживает потоковую передачу по протоколу RTMPT, транслируемую по HTTP.
Поэтому я мог выбрать потоковую передачу RTMP через порт 80 или RTMPT, который использует HTTP.
Какой из этих двух вариантов лучше всего иметь более высокую производительность (и менее проблемную и подверженную ошибкам), избегая при этом блокирования брандмауэрами?
Спасибо!
3 ответа
Я не вижу каких-либо очевидных проблем запуска RTMP на порту 80.
Использование RTMPT потенциально и теоретически увеличит задержку (см. Это в Adobe: http://blogs.adobe.com/connectsupport/tunneling-with-rtmp-encapsulated-in-http-rtmpt-should-be-avoided-as-it-causes-latency/). Хотя в моем реальном опыте разница не была такой огромной.
Однако я всегда сначала пробую порт 1935, а в случае неудачи - порт 80 с помощью плагина Cluster. Но опять же, не должно быть никаких проблем при работе на порту 80.
RTMPT, использующий HTTP, который в целом лучше для брандмауэров, и производительность тоже хорошая.
Одна из проблем, с которой мы столкнулись с RTMPT, заключается в том, что веб-фильтрация может отбрасывать HTTP-пакеты, которые она считает подозрительными. Когда пакет RTMPT отброшен, это может привести к потере всего соединения. И если вы транслируете контент, рано или поздно веб-фильтр обнаружит подозрительный пакет, просто случайно.
Решение, если это возможно, состояло бы в том, чтобы ваш ИТ-отдел занес в белый список ваш сервер, чтобы веб-фильтрация была обойдена. Это позволило бы устранить проблему разрыва соединений.