RunProgram FFMPEG encodage et stdout

Programmation d'applications complexes
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

RunProgram FFMPEG encodage et stdout

Message par Thyphoon »

Bon voilà je voulais profiter d'un peu de temps libre pour tester quelques choses avec l'encodeur FFMPEG
et j'ai quelques choses de currieux...

POur lancer ma commande FFmpeg j'utilise RunProgram avec #PB_Program_Open|#PB_Program_Read
pour récupérer ce qui sort de FFmpeg

or ça marche tres bien avec un
ffmpeg -h
mais si je fais un ffmpeg pour encoder une video
ffmpeg -i video.avi -vcodec libx264 -b 5000k test.mp4
et bien ça quit tout seul sans rien me retourner.
Parcontre si je change les paramètre de RunProgram avec juste #PB_Program_Open ça fonctionne (mais j'ai les infos dans la fenêtre de la console et je ne peux pas les récupérer)

Comment faire ?
Je me demande si ce n'est pas du au faite que lorsqu'on encode, FFMPEG detect les entrée des touches (q pour arrêter) et qu'il peut poser des question "voulez vous ecraser le fichier test.mp4 ? (y/n)" .... Comment gérer ce genre de message via mon propre programme en Purebasic...

J'ai chercher sur le forum anglais, et ici, j'ai trouvé plein de truc intéressant ... mais sur ce problème rien.
Certain d'entre vous on déjà utilisé FFMPEG mais il utilisait en paramètre #PB_Program_Wait ce qui marche, mais on a pas de retour ...

Code : Tout sélectionner

  FFmpeg$="ffmpeg.exe"
  Parameter.s="-h" 
  Parameter.s="-i -"+Chr(34)+File.s+Chr(34)+" -vcodec libx264 -vpre hq -b 5000k test3.mp4";Mettre cette ligne en commentaire pour tester  avec les parametre -h
  Exec=RunProgram(FFmpeg$,Parameter,"",#PB_Program_Open|#PB_Program_Read);
  If Exec  
    While ProgramRunning(Exec)
      Debug ReadProgramString(Exec)
      
    Wend
    Debug "Error:"+ReadProgramError(Exec)
    Debug (ProgramExitCode(Exec))     
  EndIf
  WaitProgram(Exec)
  CloseProgram(Exec)

Une idée ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: RunProgram FFMPEG encodage et stdout

Message par Backup »

Thyphoon a écrit :(mais j'ai les infos dans la fenêtre de la console et je ne peux pas les récupérer)
mais si ! mais si ! :)

Code : Tout sélectionner

If OpenConsole()
    
    ConsoleTitle("Ceci est le titre de la console")
    EnableGraphicalConsole(1) ; passe en mode graphique
    ConsoleColor(10,0)  ; couleur de text vert, couleur fond noir
    ConsoleCursor(10) ; gros curseur
    ConsoleLocate(5, 30); positionne le curseur
    PrintN("Appuyez sur [Entree] pour quitter") ; ecrit
    ConsoleLocate(40, 30) ; laisse le curseur a la fin
    a$ = Input() ; attent une reponse :D
    MessageRequester("", a$)
    Coordinate.l
    x.w = 5: Y.w = 30
    PokeW(@Coordinate, x)
    PokeW(@Coordinate + 2, Y)
    NumCharsRead.l
    Buffer$=Space(100)
    ReadConsoleOutputCharacter_(7, Buffer$, 100, Coordinate, @NumCharsRead)
    Debug Buffer$
    CallDebugger
    
  EndIf
cette exemple "lit" la ligne 30 colonne 5 ;)
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: RunProgram FFMPEG encodage et stdout

Message par Thyphoon »

merci Dobro mais je me suis mal expliqué !

J'ai mon programme ecrit en PB qui envoie des commandes a FFMPEG (qui lui marche en mode console).
Et j'ai besoin de récupérer tout ce qui s'affiche dans la console de FFMPEG.
Le but est d'interagir sur FFMPEG via mon programme sans affiché la consolede FFMPEG !
Et c'est là mon problème. C'est qu'avec RunProgram() ça marche tres bien si j'execute la commande avec un #PB_Program_Wait, mais les infos sont dans la console de FFPMEG. Et si j'execute avec un #PB_Program_Read ça ne marche pas (sauf si on demande l'aide "-h")

Est ce que je suis plus claire ? ou dois prendre des cours de communication lolllll :P
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: RunProgram FFMPEG encodage et stdout

Message par Backup »

oui tres clair !

je n'etais d'ailleurs pas arrivé non plus avec mon convertisseur basé sur FFMPEG :)

http://michel.dobro.free.fr/download.php?view.19

:)
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: RunProgram FFMPEG encodage et stdout

Message par Thyphoon »

Dobro a écrit :oui tres clair !

je n'etais d'ailleurs pas arrivé non plus avec mon convertisseur basé sur FFMPEG :)

http://michel.dobro.free.fr/download.php?view.19

:)
apparement on est pas les seuls :
http://www.purebasic.fr/english/viewtop ... lit=ffmpeg
mais il n'y a pas de solution ... je vais peut être relancer le sujet là bas ...

Mais C'est currieux quand même, car il existe des GUI pour FFMPEG qui y arrive bien ... mais comment ils fonts ... c'est très currieux.
rien a voir avec mon problème mais c'est quand même interessant: il y a sur le forum anglais un exemple de compression avec FFMPEG sans passé par un fichier en lui envoyant directement les données a partir de la mémoire..
http://www.purebasic.fr/english/viewtop ... lit=ffmpeg
Bon c'est super mais ça ne résout pas mon problème
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: RunProgram FFMPEG encodage et stdout

Message par Backup »

si tu trouve tiens nous au jus ;)
Anonyme

Re: RunProgram FFMPEG encodage et stdout

Message par Anonyme »

c'est cool se truc , je me demandais justement comment faire des vidéos à partir de bitmap sous linux !
j'va regardé ca ^^
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: RunProgram FFMPEG encodage et stdout

Message par Backup »

Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: RunProgram FFMPEG encodage et stdout

Message par Backup »

as tu essayé un shellexecute_()
avec l'option #SW_HIDE ?? ;)
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: RunProgram FFMPEG encodage et stdout

Message par Thyphoon »

Faut que je test , merci... j'ai pas trop de temps libre actuellement .... (femme malade, donc les enfants a s'occuper plus beaucoup de boulot ...)
Mais des que j'ai 1h00 tranquille je test ça !
Merci !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: RunProgram FFMPEG encodage et stdout

Message par Backup »

oups !

je t'ai fait une réponse a coté de la plaque !
j'avais oublié le soucis, et j'ai naïvement pensé que tu voulais ne plus afficher la console !! :?

ça va s'arranger :lol:
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: RunProgram FFMPEG encodage et stdout

Message par Thyphoon »

Dobro a écrit :oups !

je t'ai fait une réponse a coté de la plaque !
j'avais oublié le soucis, et j'ai naïvement pensé que tu voulais ne plus afficher la console !! :?

ça va s'arranger :lol:
lollllllll c'est pas grave !! :) c'est l'intention qui compte !! ;)
Répondre