Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Le Forum

Vous n'êtes pas identifié.

  • Index
  •  » Ubuntu
  •  » Java-Mplayer: Flux vidéo en stdin de mplayer.

#1 31 Mar 2010 14:46:52

smailben
Affranchi(e)
 
Date d'inscription: 31 Mar 2010
Messages: 6

Java-Mplayer: Flux vidéo en stdin de mplayer.

Bonjour tout le monde,
alors voila mon souci. Je code un programme de traitement vidéo et j'utilise mplayer pour la lecture ensuite. Pour l'instant je n'ai qu'un fichier qui fait l'intermédiaire. Ce que j'aimerais c'est récupérer le stdout de ma premiere partie de programme et le transmettre à mplayer, sachant que j'utilise mplayer en mode slave.
Je ne sais pas comment lui envoyer le bytesource...
Merci de votre aide.

Hors ligne

 

#2 31 Mar 2010 19:22:55

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: Java-Mplayer: Flux vidéo en stdin de mplayer.

utilise le mode slave à travers un fichier fifo..  puis tu envoies les commandes avec echo "command" > ./le_fifo
pour passer un fifo je te laisse regarder le manpage sur le paramètre -input, et ainsi tu pourras faire du pipe avec le stdin d'MPlayer


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#3 31 Mar 2010 19:24:51

smailben
Affranchi(e)
 
Date d'inscription: 31 Mar 2010
Messages: 6

Re: Java-Mplayer: Flux vidéo en stdin de mplayer.

humm.. meme si c du HD?? ca va pas faire lourd??

Hors ligne

 

#4 31 Mar 2010 19:57:54

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: Java-Mplayer: Flux vidéo en stdin de mplayer.

C'est toi qui veux passer par un pipe, c'est ce que tu dis dans le sujet: "Flux vidéo en stdin de mplayer"

En pratique le pipe est utile quand tu veux rediriger un flux de wget par exemple.. ou alors en même temps que la décompression d'un fichier.. y a d'autres raisons bien sûr.. mais si tu peux éviter le pipe.. alors oui.. évite le..  maintenant si tu veux travailler avec une bibliothèque pour pouvoir garder le contrôle sur les streams, dans ce cas attaque directement sur FFmpeg (libavformat/libavcodec). Ou alors utilises une lib plus haut niveau tel que libvlc.. elle a un plugin d'entrée basé sur mmap.


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#5 31 Mar 2010 20:03:16

smailben
Affranchi(e)
 
Date d'inscription: 31 Mar 2010
Messages: 6

Re: Java-Mplayer: Flux vidéo en stdin de mplayer.

oui c'est clair smile c'est ce que j'ai dit mais je cherche les meilleures solutions.
si tu veux j'ai ca:  outSource = new StreamSource(System.out, StreamSource.W_MODE, false);
qui est le stdout de mon programme de decodage et je veux le transmettre au stdin de mplayer.
Tu me conseilles koi?

Hors ligne

 

#6 31 Mar 2010 20:14:55

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: Java-Mplayer: Flux vidéo en stdin de mplayer.

Si tu veux vraiment transmettre à MPlayer, alors tu fork() mplayer (aucune idée si le fork est possible en Java.. si oui, ça sera "POSIX dependent"), puis tu fais du write() dans le pipe créé avant le fork() (en fait tu n'envoies pas dans le stdout de ton app Java, mais tu écris directement dans le pipe du fork; dit autrement, t'écris droit dans le stdin d'MPlayer). En C c'est simple, mais en Java j'ai des doutes. Ou alors tu dois passer par une lib non portable.

Maintenant si tu veux la manière shell.. alors t'oublies le fork, et tu fais un pipe '|' en shell entre ton app et mplayer.

Code:

app_java | mplayer -cache 8192 -

C'est sûrement la solution la moins élégante, mais la plus simple (rapide).


PS: et la meilleur solution c'est FFmpeg.


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#7 31 Mar 2010 20:19:13

smailben
Affranchi(e)
 
Date d'inscription: 31 Mar 2010
Messages: 6

Re: Java-Mplayer: Flux vidéo en stdin de mplayer.

big_smile j'aimerais tellement utiliser la solution ke tu me dis! mais en fait... je vais t'expliquer plus en detail...
le coté mplayer c'est une application java que j'ai codé avec une interface et qui utilise mplayer en backend slave.
donc j'utilise un process pour lancer la commande mplayer -slave ....
de l'autre coté j'ai une application qui décode un flux et le balance avec  outSource = new StreamSource(System.out, StreamSource.W_MODE, false);
qu'en dis tu? :p impossible en java? sad

Hors ligne

 

#8 31 Mar 2010 21:08:06

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: Java-Mplayer: Flux vidéo en stdin de mplayer.

A creuser..  essaie avec des threads Java : http://www-gtr.iutv.univ-paris13.fr/Cou … tth_sEc3.2


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#9 31 Mar 2010 21:18:35

smailben
Affranchi(e)
 
Date d'inscription: 31 Mar 2010
Messages: 6

Re: Java-Mplayer: Flux vidéo en stdin de mplayer.

oki... ca me règle l'export ca smile
me reste à trouver comment je peux insérer ce pipedreader dans la commande mplayer... smile

Hors ligne

 

#10 28 May 2010 10:12:45

smailben
Affranchi(e)
 
Date d'inscription: 31 Mar 2010
Messages: 6

Re: Java-Mplayer: Flux vidéo en stdin de mplayer.

re! je reviens dans ce projet que j'avais laissé de coté, j'étais sur un autre!! j'ai essayé les threads mais ca ne fait que compliquer les choses... je me suis dit que le fork peut être utile mais le souci c'est que pendant l'exécution de mplayer je dois pouvoir accéder à l'instance de mon appli java... tu crois que c'est possible avec le fork?
merci

Hors ligne

 
  • Index
  •  » Ubuntu
  •  » Java-Mplayer: Flux vidéo en stdin de mplayer.

Pied de page des forums

Powered by FluxBB