Streaming avec VLC

Fermé
aprivile Messages postés 42 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 26 février 2017 - 13 févr. 2008 à 03:51
 Momapare - 18 janv. 2009 à 16:51
Bonjour,

Je suis en train de bosser sur un projet qui consiste à faire du streaming de videos (dont les codecs vont bien pour VLC).

Comme premier test, je me suis proposé d'envoyer une video de ma machine vers elle-même (adresse IP de destination : 127.0.0.1, quoi)... L'envoi se fait, pas de problème. Mais en ce qui concerne la réception, VLC détecte, là pas de problème, il lit quelque chose pendant le temps qui correspond à la video envoyée mais il n'y a PAS D'IMAGE NI DE VIDEO.

J'ai essayé avec l'interface graphique et avec les lignes de commande, et ça donne toujours la même chose. :-(

D'où le problème pourrait venir? Peut-être le fait de l'envoyer à la même machine est à l'origine du problème?

Aidez-moi, s'il vous plait!!
Je sèche complètement sur ce problème...et c'est pas le manuel d'utilisation de VideoLAN qui est d'une aide extra (c'est plutôt traité par dessus l'épaule les affaires de streaming), au contraire.

Merci d'avance.
A voir également:

7 réponses

aprivile Messages postés 42 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 26 février 2017 7
9 juil. 2008 à 04:20
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 ;-)
9
Tout d'abord merci beaucoup pour toutes ces explications :)

Passer par l'exécution de lignes de commandes me laisse penser qu'il faut avoir VLC d'installé sur le poste client et dans le cadre du projet que j'ai à réaliser, je ne peux pas faire ceci malheureusement.

C'est tout de même incroyable que JVLC soit inutilisable alors que tout le monde le recommande. Ou alors on est vraiment nuls loool. Mais je ne vois pas comment ils veulent faire avec l'erreur qui est générée...
Je vais tenter de persister un peu sur JVLC, sait on jamais que j'arrive à en tirer quelque chose après quelques heures supplémentaires de bataille... Et au cas où, je viens poster dans le coin ;)
0
james21 Messages postés 7 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 15 juillet 2008 1
9 juil. 2008 à 09:27
ben sa a l'air pas mal mais je cherche plsu a faire si tu veux "" comme des executable qui me demanderais qu'elle adresse de diffusion je veux et quelle video.

Sinon je pensais eventuellement faire un envoie sur une page web en local mais bon le but et plus de demarrer automatiquement vlc pour une diffusion multicast.

La page web saturerai je pense trop le reseau interne.

merci sinon pour tes reponse je vais jeter un coup d'oeil mais je ne connais pas je java dsl
0
Aristide73 Messages postés 14 Date d'inscription mercredi 21 décembre 2005 Statut Membre Dernière intervention 9 juillet 2013 2
13 févr. 2008 à 09:29
Peux-tu donner plus de détail dans les paramètres que tu tentes de mettre. Il y a tellement de possibilités.
Tu dois également pouvoir trouver des tutos sur le web via google.
Entre autre je trouve : http://www.hotline-pc.org/videolan.htm

N'oublie pas de cocher 'Diffuser/Sauvegarder' et d'éditer les paramètres et cocher dans 'sorties' : 'jouer en local'
1
aprivile Messages postés 42 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 26 février 2017 7
3 mai 2008 à 21:35
Désolé pour le délai de réponse.

En fait, je ne dois pas utiliser l'interface de VLC, je dois faire tout ça en ligne de commande.

Donc en fait, je suis arrivé à transmettre des vidéos en utilisant VLC en utilisant la commande donnée dans la documentation de VLC mais bon, ça ne me satisfait que moyennement. Je m'explique.

L'idée est de créer un serveur et un client pour faire de la qualification de vidéos.
Le serveur se charge d'envoyer les vidéos au client sur demande et il enregistre la qualification (note donnée par l'utilisateur du client) dans un fichier... L'enregistrement dans le fichier, c'est bon, reste le serveur de vidéos.
Le client doit se connecter au serveur, proposer une liste de vidéos, diffuser la vidéo choisie par l'utilisateur et lui demander de qualifier la vidéo...la note sera envoyée au serveur qui l'enregistre.

Alors deux possibilités s'offrent à moi :
soit j'utilise une commande qui permet d'envoyer une vidéo et de la recevoir, ce qui fait qu'il faut trouver le moyen d'éteindre VLC après l'envoi (pour le serveur) et la réception et visionnage (pour le client) de la vidéo. Parce qu'ouvrir plusieurs sessions de VLC n'est pas vraiment pratique.

soit je peux essayer d'utiliser VLM pour la video on demand. En jouant avec les lignes de commande, j'arrive à faire quelque chose. Mais le problème, c'est que je veux exécuter ces commandes à partir de java, et là, bin, les commandes ne s'exécutent tout simplement pas.

Donc les questions sont :
1) pour arrêter VLC en ligne de commande, y a-t-il quelque chose?

2)pour VLM, quelqu'un a-t-il déjà été confronté à ce problème?

Merci d'avance.
0
aprivile Messages postés 42 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 26 février 2017 7
22 mai 2008 à 18:56
Bon personne me répond surement par ignorance de la réponse, allez savoir...

Toujours est-il que j'ai cherché plus avant et j'ai trouvé pour imposer l'arrêt de VLC après avoir fait jouer (ou transcodeer ou diffuser) la vidéo: il suffit d'ajouter la commande vlc://quit

Pour VLM, je n'y ai pas encore retouché.

En fait, j'essaie de voir les possibilités de JVLC, le binding Java de VLC mais comme à l'accoutumée, les infos sur VLC et tout ce qui y a trait sont rarissimes... Donc je galère pas mal: quelqu'un pourrait-il m'expliquer les différentes étapes pour créer un projet utilisant JVL?
Je demande évidemment juste ce qu'il faut faire pour pouvoir utiliser JVLC dans le projet (librairies, etc).
J'ai déjà téléchargé JVLC mais il semble manquer libvlc-control comme librairie et je ne la trouve nulle part.

Enfin concernant le streaming en ligne de commande, par Java, ça ne fonctionne toujours pas (commande exécutée par Java) alors que par la console, qund je le fais directement, tout va bien, ça fonctionne... Un bon mystère... Si quelqu'un est déjà tombé sur ce genre de problème, je lui serais reconnaissant s'il peut m'apporter un peu d'aide.

Si quelqu'un passe par ici, merci d'avance d'éclairer ma lanterne s'il vous plait, ce serait cool...
0
bonjour

Voila je me permet de t'ecrir au sujet du streaming avec vlc .

Je voulais savoir si tu avais reusi ou pas car moi aussi j'ai un projet sur un serveur qui diffuse de la video en multicast vers les clients sous linux.


je te remerci d'avance de ton aide


bonne journée
0
Nemix > james
8 juil. 2008 à 18:38
J'ai également le même problème que toi avec vlc-control...

JVLC est pourtant la librairie qui me permettrait de résoudre bien des problèmes mais ça fait quelques jours que j'y suis dessus et impossible de faire quoi que ce soit à cause de l'erreur avec vlc-control.

Si jamais tu trouves, n'hésite pas à faire un post complet pour expliquer ;)
ça sera vraiment bienvenue !

Bon courage !
0
aprivile Messages postés 42 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 26 février 2017 7
9 juil. 2008 à 15:32
Nemix> Bon courage, perso, je me suis demandé si c'était dû à un manque de paquets lié à la distribution ou à la version de la distribution mais bon, ça me parait trop tiré par les cheveux cette idée :-)
En tout cas, j'avais jeté un coup d'oeil aux classes et l'utilisation en elle-même n'a pas l'air difficile, c'est l'installation qui pose problème.
Si ça peut t'aider, surun forum, ils disaient de prendre les sources de vlc pour les compiler, jvlc devait se trouver dedans avec la librairie, et il faut installer Maven avant... Voilà, je ne sais pas si ça va t'aider.

Ah et je te laisse le résultat de mes recherches sur JVLC:
Pour installer- aucune mention de jvlc:
http://www.birkit.com/content/kubuntu-linux/multimedia/multimedia-players/install-vlc-from-source.html

Pour installer jvlc:
http://trac.videolan.org/jvlc/wiki/faq

Pour installation JVLC - note de forum:
https://forum.videolan.org/viewtopic.php?f=13&t=45908&p=145692

Pour exemple utilisation VLM par JVLC:
https://forum.videolan.org/viewtopic.php?f=11&t=31996&p=145752

Javadoc JVLC:
http://jvlc.ihack.it/doc/

Problèmes de compilation avec JVLC:
https://forum.videolan.org/viewtopic.php?f=13&t=45413

Bibliothèque libvlc-control.so absente:
https://forum.videolan.org/viewtopic.php?f=13&t=46644



James21> Pour les exécutables qui demandent la vidéo et l'adresse de diffusion, le programme que j'ai codé fait exactement ça. Vu que l'idée était d'expliquer une solution pour gérer le streaming de vlc par Java, je ne me suis pas concentré sur l'explication de mon programme... Je peux te l'expliquer si tu veux... Dis-moi...


Ceci dit, un de ces jours, j'essaierai de me mettre à comprendre comment fonctionne VLM, c'est dommage de ne pas pouvoir l'utiliser : ça permettrait une seule session de vlc sur le serveur au lieu d'une par client, donc plus léger.
0
james21 Messages postés 7 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 15 juillet 2008 1
15 juil. 2008 à 09:11
boujour Aprile

je te remercie de ta reponse

voila j'ai regarder un peut tes lien, je ne suis pas tres fort en anglais, aurais tu le temp de m'expliquer un peu je te remerci d'avance.


Possibilité de discuté par msn si ça t'arrange.


Merci beaucoup bonne journée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aprivile Messages postés 42 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 26 février 2017 7
2 juil. 2008 à 05:23
Salut, James

Pour l'instant, je suis en plein dans la validation du programme et je dois t'avouer que je suis un peu sous pression...

Je vais vérifier cette semaine si ça fonctionne ce que j'ai fait et je te tiens au courant... Il me semble qu'avec ce que j'ai fait, ça devrait fonctionner mais un bon test vaut mieux que des suppositions.

Juste pour info : je suis revenu à l'exécution en ligne de commande par Java.

Si j'ai du temps et si ça a marché, je t'expliquerai plus en profondeur ce que j'ai fait.

A plus
-1
james21 Messages postés 7 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 15 juillet 2008 1
2 juil. 2008 à 08:56
bonne chance pour tes tests
0
aprivile Messages postés 42 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 26 février 2017 7
24 juil. 2008 à 23:49
Désolé pour le retard de la réponse, beaucoup de choses à faire en ce moment.

Pour les liens, en fait, ils traitent des possibilités et surtout des problèmes rencontrés (et que moi-même je n'ai pas résolu d'où mon choix de solution).

Pour l'explication, tu parles du programme que j'ai fait, non? Ou tu parles des liens?
-1
les deux si possible


je me suis tourné un peut vers une interface python la

mais bon ton programme pour test serai le bien venu avec quelque explication pour comprendre un peut

voila merci et py pour lla reponse c'est les vacances alors je t'excuse lol :)
0
Apparition de l'Embleme Noxta !
-1