LINUX.ORG.RU
ФорумAdmin

Стриминг, порт-форвардинг и т.п.

 , ,


1

2

Что-то я уже запутался.

В общем предыстория в этой теме: Не получается вещание в vlc по rtsp

Если вкратце захотел настроить вещание по rtsp протоколу с помощью vlc. Обнаружил, что на локальном компе всё работает (вещает и слушается), на удалённых - нет.

Выяснил, что не работает в том числе и на запущенных в VirtualBox с сетью через NAT. При этом wireshark на хосте показал, что всё нормально и с адресом на который вещание идёт и с ttl. Это навело меня на мысль прописать в настройках NAT виртуалбокса проброс для гостевой машины UDP портов 19002, 19004, а в параметр для cvlc добавить dst=127.0.0.1,port=19002

Маленькое пояснение: rtsp - это управляющий протокол, а собственно видео-поток льётся по rtp по udp по каким-то портам. Если не задать их, они выбираются произвольно. Если задать, то используется он и ещё (n+2) порт, то есть 19002 и 19004, если задать 19002

После этого в гостевой машине вещание появилось. Но оно по-прежнему недоступно извне. Собственный IP-адрес прямой, не серый.

И вот кого тут надо победить: своего провайдера, чужого провайдера и/или что нужно с настройками сделать?

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

dimon555 ★★★★★
()
Ответ на: комментарий от ovax

А можно поподробнее? Что-то я из описания сходу не понял, чем в моём случае должен помочь этот модуль, как я уже сказал IP адрес вроде прямой и если пакеты кем-то зафильтрованы, то вроде как не мною.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous_incognito

Для RTP/RTSP нужно динамически открывать внешние порты и перенаправлять данные между клиентом и сервером. Для этого используются дополнительные модули ядра, которые отслеживают соединения для каждого протокола, который работает по этому принципу. Называются эти модули connection tracking или сокращённо conntrack. Есть conntrack для ftp, rtp и т.д. (весь список есть в ядре). Вот этот модуль и нужно подгрузить.

Таким образом вы делаете DNAT на внешнем интерфейсе основного rtsp порта до вашего внутреннего сервера, а модуль conntrack уже будет дальше отслеживать и открывать клиентские/потоковые порты динамически.

nickleiten ★★★
()

А почему бы вообще не использовать unicast для таких целей а не udp. Завещать в http вместо того чтобы udp пробрасывать. Или нужен именно real time..?

idyurev
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.