Здравствуйте друзья!
Не был уверен под какую ветку подходит мой пост, думаю эта больше всего.)))
Очень нужна помощь в осуществлении трансляции rtsp потока с камер на сайт, столько всего перепробовал — не получается вывести поток на страницу сайта на Wordpress. Нужен взгляд со стороны на все мною проделанное, буду благодарен любым советам и подсказкам!
Есть некий сайт работающий на хостинге с SSL на Wordpress, на этот сайт нужно опубликовать живую трансляцию с 4х IP камер. Перелопатив хренову тучу материала в сети понял, что есть два реальных варианта, HLS и MPEG-DASH. Причем MPEG-DASH в некоторых случаях требует перекодирования потока, а так как ПК для ретрансляции не шибко мощный, то HLS выглядит интереснее, но в целом задача запустить хоть что-то.
Для ретрансляции был установлен NGINX на свежий Linux, собран с модулем nginx-rtmp, конфиг настроен по мануалу, уточню, что раньше с NGINX дела не имел, больше использовал Apache. Так же уточню, что сервер для ретрансляции находится за натом, через Iptables были проброшены порты для http и для rtmp.
И так, все готово, все настроено! Проверка через VLC внутри сети показала, что все работает, поток запустился! Запуск из вне дался хуже, если я находясь внутри сети пытаюсь открыть поток через VLC по внешнему адресу, например http://196.96.186.86:8080/cams/stream1.m3u8, то ничего не откроется, если этот же адрес запросить снаружи, то поток запускается, я так понимаю, что проблема где-то в правилах Iptables, устранить эту проблему мне не удалось (т. к. тоже редко имею дело с iptables), но поскольку запрашивать поток будет сайт, который находится снаружи, я решил этот вопрос отложить напоследок.
Следующий этап, попытка вставить поток на сайт. Испробовав кучу разных плееров типа FV Player, Videojs, … запустить поток на сайте так и не получилось, все плееры выдают какую-то ошибку, причем некоторые говорят, что возможно формат не тот, а другие пишут, что проблема с сетью. Но VLC же нормально запускает поток! В чем может быть проблема? Случайно попал на информацию, что если сайт использует https (именно по этому я упомянул SSL в начале), то и поток должен использовать https, а у меня NGINX вообще висит даже без домена на белом IP, кто сталкивался с этим, есть ли разница по какому протоколу будет идти поток? Для проверки этой теории, я перевел весь сайт на хостинге на http, получил кучу страшных предупреждений, но сайт теперь, так сказать, на одной волне с сервером ретрансляции, все используют http. Но чуда не произошло, плееры на странице так и не показали поток, повторюсь, VLC же отлично все показывает.
ОГРОМНОЕ СПАСИБО тем, кто дочитал до этих строк!
Куда двигаться? Почему при любых раскладах, будь то трансляция в HLS или MPEG-DASH, с транскодированием или нет VLC все нормально показывает, а на странице сайта одни ошибки?
Действительно ли, что протоколы веб сервера и сервера ретрансляции должны совпадать, стоит ли покупать домен, создавать сертификаты или это не поможет?
Заранее спасибо всем отозвавшимся!!!
Совершенно случайно увидел, что Firefox на Android, именно на телефоне, запустил HLS поток с сайта!! При этом на ПК в Firefox или Сhromium поток не запускается, так же поток отказался запускаться и в Chrome на телефоне, WTF?!! Наверное это позволяет снять вопрос о разности протоколов полностью и скорее всего указывает на проблемы в конфиге NGINX, вот только в чем может быть проблема…