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
Momapare - 18 janv. 2009 à 16:51
A voir également:
- Streaming avec VLC
- Caster vlc - Guide
- Streaming - Guide
- Vlc comment ça marche - Télécharger - Lecture
- Site de streaming illégal - Accueil - Services en ligne
- Popcorn streaming - Télécharger - TV & Vidéo
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
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 ;-)
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 ;-)
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
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'
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'
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
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.
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.
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
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...
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...
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 !
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 !
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
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.
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.
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
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.
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.
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
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
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
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
2 juil. 2008 à 08:56
bonne chance pour tes tests
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
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?
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?
9 juil. 2008 à 08:56
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 ;)
9 juil. 2008 à 09:27
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