Документация MPlayer гласит:
Установка
-udp-ip
широковещательного адреса ведущего устройства позволяет нескольким ведомым устройствам, имеющим один и тот же широковещательный адрес, синхронизироваться с ведущим.
Я думаю, что обычно эти рабы должны работать на разных машинах. Поток широковещательной сети может попасть на многие машины, но в контексте каждой отдельной машины поток привязывается к одному процессу прослушивания.
Существует способ для нескольких процессов, чтобы получить тот же самый поток (сравните этот ответ мой, reuseaddr
), но мне кажется, что mplayer
не использовать его.
Мне удалось решить проблему с Linux socat
, tee
и bash
. Поскольку вам нужно запускать видео локально, давайте придерживаться 127.0.0.1
; нам даже не нужно вещание.
Первая команда похожа на ту, которую вы использовали:
mplayer -udp-master -udp-ip 127.0.0.1 video0.avi
Затем запустите канал, который разветвляет полученный поток (примечание: 23867
порт по умолчанию используется mplayer
):
socat UDP-LISTEN:23867 - | tee >(socat - UDP-DATAGRAM:127.0.0.1:20001) >(socat - UDP-DATAGRAM:127.0.0.1:20002) >/dev/null
Это повторно отправит входящие данные в порты 20001
и 20002
. Вы можете добавить >(socat - UDP-DATAGRAM:127.0.0.1:20003)
и больше портов, если хотите.
С этим запуском, подчиненные mplayer
-s могут независимо привязать, каждый к своему порту:
mplayer -udp-slave -udp-ip 127.0.0.1 -udp-port 20001 video1.avi mplayer -udp-slave -udp-ip 127.0.0.1 -udp-port 20002 video2.avi …