VLC не может открыть поток UDP в Ubuntu 14.04
У меня Ubuntu Desktop 14.04 с двумя сетевыми картами, eth0 и eth1. Один предназначен только для Интернета, а другой - в локальной подсети, куда поступает многоадресный поток UDP. Маршрут по умолчанию находится на eth0, а многоадресный маршрут на eth1. Поток UDP идет по eth1, и я вижу, что здесь с TCPDUMP на этом интерфейсе, но не могу открыть его в VLC. В журнале VLC я вижу, что VLC не может открыть этот порт или что? Кто-нибудь может мне помочь? Это проблема с некоторыми правами пользователя или порт закрыт или как? Тот же поток я могу играть на другом компьютере с Windows. Вот журнал VLC:
main debug: processing request item: udp://225.224.2.2:1002, node: Playlist, skip: 0
main debug: resyncing on udp://225.224.2.2:1002
main debug: udp://225.224.2.2:1002 is at 9
main debug: starting playback of the new playlist item
main debug: resyncing on udp://225.224.2.2:1002
main debug: udp://225.224.2.2:1002 is at 9
main debug: creating new input thread
main debug: Creating an input for 'udp://225.224.2.2:1002'
main debug: using timeshift granularity of 50 MiB, in path '/tmp'
main debug: `udp://@225.224.2.2:1002' gives access `udp' demux `' path `@225.224.2.2:1002'
main debug: creating demux: access='udp' demux='' location='@225.224.2.2:1002' file='(null)'
main debug: looking for access_demux module matching "udp": 20 candidates
main debug: no access_demux modules matched
main debug: creating access 'udp' location='@225.224.2.2:1002', path='(null)'
main debug: looking for access module matching "udp": 25 candidates
access_udp debug: opening server=:0 local=225.224.2.2:1002
main debug: net: opening 225.224.2.2 datagram port 1002
main error: socket bind error (Permission denied)
access_udp error: cannot open socket
main debug: no access modules matched
main error: open of `udp://@225.224.2.2:1002' failed
main debug: dead input
main debug: changing item without a request (current 9/10)
main debug: nothing to play
вот ip route:
IP-маршрут
default via 192.168.2.1 dev eth0 proto static
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.50 metric 1
192.168.10.0/24 dev eth1 proto kernel scope link src 192.168.10.25 metric 1
224.0.0.0/4 via 192.168.10.25 dev eth1
Я изменил многоадресный порт и до сих пор не могу открыть поток, который легко открывается на Windows-машине в той же подсети. Вот поток VLC:
main debug: incoming request - stopping current input
main debug: object waitpipe triggered
main debug: socket 25 polling interrupted
main debug: prebuffering done 0 bytes in 39s - 0 KiB/s
main error: cannot pre fill buffer
main debug: removing module "access_udp"
main warning: cannot create a stream_t from access
main debug: incoming request - stopping current input
main debug: finished input
dbus debug: Getting property CanRaise
main debug: incoming request - stopping current input
main debug: dead input
main debug: processing request item: udp://225.224.2.3:3003, node: Playlist, skip: 0
main debug: resyncing on udp://225.224.2.3:3003
main debug: udp://225.224.2.3:3003 is at 0
main debug: starting playback of the new playlist item
И брандмауэр отключен....
Еще одно обновление: на рабочем столе Ubuntu и даже на (я должен попробовать) VLC сервера Win 2008 не будет открывать поток udp, который поступает на многоадресную рассылку, когда подключены два сетевых адаптера. Когда подключен только один сетевой адаптер, VLC может воспроизводить поток.... Так что проблема с VLC и двумя сетевыми картами. Я предполагаю, что VLC не знает, на какой сетевой карте искать поток, но я не знаю, как решить эту проблему. Любая идея???
Я не нашел ответа на свою проблему, но больше не могу ждать, и мне нужно перейти к другим делам... Итак, вот и все: мне нужно многоадресный поток, который идет на eth1, для пересылки на eth0, так что другие компьютеры и учащиеся в подсети могут видеть это (подключая поток mcast к маршрутизатору или коммутатору для всех, просто путаются с сетью и пропускной способностью, а поток замораживается и пикселизируется), (каким бы то ни было образом, но лучше всего будет как поток http, так и студенты могу открыть поток с VLC) Сначала мне нужно убедиться, что поток доступен, и для этого я пытаюсь с рабочим столом Ubuntu и его работой с одним NIC, но с двумя нет. После долгого времени без решения я решил перейти на сервер 14.04 и UDPXY. Теперь я установил Ubuntu server 14.04, сервер присоединился к многоадресной группе, с помощью tcpdump -i я вижу, что поток mcast находится здесь на eth1, не могу открыть поток, потому что это сервер без видеокарты, я установил UDPXY, который принимает поток mcast на eth1 и клиентские запросы на eth0, чтобы они открывали поток, как: http://192.168.2.50:5005/udp/225.224.2.3:3003 Я пытаюсь открыть поток в VLC на Windows, а на компьютере Linux и ничего. Журнал VLC дает мне тот же массаж, что и раньше на рабочем столе Ubuntu.
Даже если я изменил всю конфигурацию, это та же проблема... Ubuntu с двумя сетевыми картами не может открыть или переслать поток. Это проблема с маршрутизацией ядра или разрешениями??? В этом случае VLC не имеет проблем с выбором сетевой карты для поиска потока, так что это должно быть с Ubuntu... пожалуйста, помогите???
1 ответ
Из журнала VLC ясно, что привязка сокета не удалась:
основная отладка: net: открытие 225.224.2.2 порта дейтаграммы 1002
основная ошибка: ошибка привязки сокета (в доступе отказано)
Учтите, что порты ниже 1024 являются привилегированными и могут быть связаны только с таким же привилегированным пользователем. Так что вы можете запустить VLC с sudo
или измените номер порта.
Также убедитесь, что ни одно другое приложение не использует такой же порт, ip и тип сокета.