Bon, allez, j'ai un peu de temps, je dis ce que j'ai fait.
Donc vu que JVLC montrait une erreur impossible pour moi à résoudre, j'ai choisi de me retourner vers l'exécution par Java des commandes vlc qui correspondaient à ce que je voulais faire.
Après recherches dans la doc vachement pas claire de vlc et après un paquet de tests, je suis arrivé à comprendre comment former des commandes avec la syntaxe correcte.
D'ailleurs un tuto qui peut être intéressant à lire :
http://leslivresoublies.free.fr/leslivresoublies/le_coin_de_VLC.html
Ok, c'est sur une version un peu ancienne de vlc qui est expliquée mais ça clarifie les idées (dans mon cas, ça les a clarifié en tout cas).
A l'origine, je voulais faire de la vidéo à la demande, donc je m'étais intéressé au module VLM de VLC et franchement j'ai rien pu tirer de ça... Mais s'il y en a un qui trouve, qu'il n'hésite pas à faire part de son expérience, hein...
Donc je me tourne vers JVLC et essaie de l'installer... grosse galère (là, pareil si quelqu'un est arrivé à l'installer correctement faut pas hésiter à en parler).
En fin de compte, l'exécution par Java est l'option la plus commode et simple.
Les commandes sont donc (pardon pour le suspense) :
pour le serveur (envoi de la vidéo) :
vlc ma_video.xxx :sout=#duplicate{dst=std{access=udp,mux=ts,dst=<adresse_ip_client>:<port_client>}}
pour le client :
vlc udp:// pour le mettre en attente de réception de vidéo en streaming.
Notez que le port client est facultatif, ce qui donne :
vlc ma_video.xxx :sout=#duplicate{dst=std{access=udp,mux=ts,dst=<adresse_ip_client>}}
Par défaut, c'est le port 1234 qui est utilisé.
et comme je voulais que la session vlc se ferme après l'envoi de la vidéo, j'ai rajouté vlc:quit
ce qui donne : vlc ma_video.xxx :sout=#duplicate{dst=std{access=udp,mux=ts,dst=<adresse_ip_client>}} vlc:quit
(vlc:quit ne parait pas pour la commande utilisée sur le client).
Donc voilà, j'ai les commandes, reste à les faire exécuter par Java:
formation de la String contenant la commande: String command = <commande vlc>;
puis exécution : Process child = Runtime.getRuntime().exec(command);
Voilà, avec ça, pas de problème.
Une remarque : lors de l'exécution de vlc par Java, je voulais pouvoir l'exécuter comme root, donc grâce à une commande chmod sur vlc, je n'avais plus qu'à faire : /usr/bin/vlc ....., petite différence par rapport à ce qui est marquée au-dessus.
Bon, donc c'est une solution mais j'encourage à surveiller ce qui pourrait sortir de VLM, parce que ma solution fait créer une session à chaque connexion de client...dans le cadre de mon projet, ça gène pas tellement mais bon, avec VLM, si ça fonctionne, ça serait plus "propre".
Nemix, j'ai laissé tomber JVLC, la librairie me parait impossible à trouver, un ami a essayé de trouver => même échec, essaie de voir si l'exécution des commandes par Java te suffit ;-)