Setting
-udp-ipto the master's broadcast address allows multiple slaves having the same broadcast address to sync to the master.
Eu acho que normalmente esses escravos devem rodar em máquinas diferentes. O fluxo de rede de transmissão pode chegar a muitas máquinas, mas no contexto de cada máquina, o fluxo fica vinculado a um único processo de audição.
Existe uma maneira de vários processos receberem o mesmo fluxo (compare esta resposta minha , reuseaddr ) mas parece-me que mplayer não o usa.
Consegui resolver o problema no Linux com socat , tee e bash . Como você precisa executar vídeos localmente, vamos nos ater a 127.0.0.1 ; nós nem precisamos de transmissão.
O primeiro comando é como o que você usou:
mplayer -udp-master -udp-ip 127.0.0.1 video0.avi
Em seguida, execute um pipe que bifurcará o fluxo recebido (nota: 23867 é a porta padrão usada por mplayer ):
socat UDP-LISTEN:23867 - | tee >(socat - UDP-DATAGRAM:127.0.0.1:20001) >(socat - UDP-DATAGRAM:127.0.0.1:20002) >/dev/null
Isso reenviará os dados recebidos para as portas 20001 e 20002 . Você pode adicionar >(socat - UDP-DATAGRAM:127.0.0.1:20003) e mais portas, se quiser.
Com esta execução, o escravo mplayer -s pode vincular-se independentemente, cada um à sua própria porta:
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
…