1

Я тестирую его на сервере Ubuntu на рабочей станции VMware + Windows 7 с мостовым соединением. Позже это должно пойти на живой сервер.

У меня есть потоковое видео VLC на Ubuntu с

cvlc -vvv /home/user/file.avi --loop --sout '#rtp{access=udp,mux=ts,dst=239.1.1.1,port=32321,caching=10000}'

позже этот поток udpxy как

udpxy -a lo -m eth0 -p 7777 &

В основном все работает хорошо, но мой хостинг-провайдер считает трафик UDP исходящим, хотя он мне и не нужен. Моя идея - заблокировать многоадресный исходящий UDP-трафик.

Я пытался использовать

route add -net 239.0.0.0/8 dev lo

трафик ограничен (не может получить к нему доступ снаружи), но

dumprtp 239.1.1.1 32321

на этом же сервере не работает ни один.

Также я попытался создать новый интерфейс обратной связи для многоадресных адресов в /etc/network/interfaces как это

auto lo lo:udp
iface lo inet loopback

iface lo:udp inet static
    address 239.1.1.1
    netmask 255.0.0.0
    network 239.0.0.0

Я просто пытался заставить это работать, но это не так.

Поэтому я хочу, чтобы многоадресный трафик udp оставался внутри сервера, не выходя во внешнюю сеть. И это должен быть многоадресный udp (поток также выбирается системой хранения и тестами качества потока).

Благодарю.

1 ответ1

0

Решение было:

  1. Добавить новую опцию --miface=lo в VLC: cvlc -vvv /home/user/file.avi --loop --sout '#rtp{access=udp,mux=ts,dst=239.1.1.1,port=32321,caching=10000}' --miface=lo
  2. Добавить маршрут к lo для адресов многоадресной рассылки: route add -net 239.1.1.0 netmask 255.255.255.0 dev lo

    2а. Чтобы сделать маршрут постоянным, мы должны добавить его в /etc/network/interfaces с префиксом up . Например: up route add -net 239.1.1.0 netmask 255.255.255.0 dev lo

Вот и все. Теперь VLC транслируется на интерфейс lo а не на eth0 . Также любое приложение, которое хочет подписаться на 239.1.1.1 - 239.1.1.254, будет делать это через интерфейс lo .

Надеюсь, это поможет кому-то решить проблему потоковой передачи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .