convertisseur FFmpeg

Programmation d'applications complexes
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

héhé je suis curieux de voir la source :lol:
je recupe ça de suite !

PS : comment à tu gérer les paramètres alors ?

---Edit---

J'ai encodé un flv, je n'obtiens q'une image noir avec le son.. et le son est vraiment horrible (comme si encodé avec une qualité genre 9000 htz)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

voici ma source :wink:

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
Enumeration
  #String_0
  #Button_0
  #String_1
  #Button_1
  #Button_2
  #ProgressBar_0
EndEnumeration

  If OpenWindow(#Window_0, 216, 0, 490, 130, "FLV Converteur",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
   SetWindowColor(#Window_0, RGB(Random(255), Random(255), Random(255)))
    If CreateGadgetList(WindowID(#Window_0))
      StringGadget(#String_0, 10, 10, 350, 20, "", #PB_String_ReadOnly)
      ButtonGadget(#Button_0, 370, 10, 110, 20, "ouvrir un fichier FLV")
      
      StringGadget(#String_1, 10, 45, 350, 20, "", #PB_String_ReadOnly)
      ButtonGadget(#Button_1, 370, 45, 110, 20, "enregistrer sous")
      
      ButtonGadget(#Button_2, 190, 80, 110, 20, "convertir")
      
      ProgressBarGadget(#ProgressBar_0, 10, 110, 470, 10, 0, 10000 , 0)
       SetGadgetColor(#ProgressBar_0, #PB_Gadget_FrontColor, RGB(Random(255), Random(255), Random(255)))
     
    EndIf
  EndIf

  Repeat
   EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget 
      Select EventGadget()
      
       Case #Button_0
        NomFichier$ = OpenFileRequester("Ouvrir fichier FLV", "",  "Video .FLV|*.flv", 0);<--- on choisis le fichier flv
         SetGadgetText(#String_0, NomFichier$)

       Case #Button_1
        NomFichier1$ = SaveFileRequester("Enregistrer sous", "", "format .AVI|*.avi", 0);<--- on choisis l'endroit du fichier avi
         SetGadgetText(#String_1, NomFichier1$+".avi")
       
       Case #Button_2
        rep$ = Left(GetHomeDirectory(), 3);<--- on copie le repertoire systeme la c'est c:/ pour moi
        String_0$ = GetGadgetText(#String_0);<--- on renvoie le chemain du fichier flv
        String_1$ = GetGadgetText(#String_1);<--- on renvoie le chemain du fichier avi
        CopyFile(String_0$, rep$+"tmp.flv");<--- on copie le fichier flv dans c:/tmp.flv l'astuce secrete
         FFmpeg$ = "ffmpeg.exe"
         parametre$ = "-i "+rep$+"tmp.flv"+" -f avi "+rep$+"tmp.avi";<--- on met les chemains la c'est c:/tmp.flv, on crée le ficher avi en c:/tmp.avi
         Fichier$ = ""
        RunProgram(FFmpeg$,parametre$,Fichier$,1);<--- on lance ffmpeg
        CopyFile(rep$+"tmp.avi",String_1$);<--- on copie le fichier avi en c:/ vers la destination choisis par l'utilisateur
        DeleteFile(rep$+"tmp.avi");<--- on supprime le fichier tmp.avi en c:/
        DeleteFile(rep$+"tmp.flv");<--- on supprime le fichier tmp.flv en c:/
        MessageRequester("information", "Conversion réussi avec succées", 0)
         End 

      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
je vais manger la désolé

@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

OK Bon ap :)

De mon coté c'est bien les paramètres qui posaient problème.
Le truc est qu'une fois corrigé, j'ai le même soucis.
Du son mais pas d'image..

FLV => AVI : Du son mais pas d'image
AVI => FLV : ça fonctionne :P
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

oui c'est etonnant tu utilise bien cette ligne de commande là :
ffmpeg -i fichiervideo.flv -f avi fichiervideo.avi ???



@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Heu mes parametres se modifient selon les options excepté pour ce -f
Que vient il faire ici ? Il me semble qu'il ne serve qu'à la capture video genre video streaming ?

----Edit----
Après essaye avec "-f "+format$ en plus, le problème persiste..
Du son mais pas d'image dans le sens flv=>avi
Dernière modification par Ar-S le sam. 09/févr./2008 13:43, modifié 1 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

ba je ne sais pas sur un site il montrent cette ligne de commande alors mon programme recopie a l'identique
ffmpeg -i fichiervideo.flv -f avi fichiervideo.avi
a part fichiervideo.flv et fichiervideo.avi :wink:
voila pour moi


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

doc officielle : ici
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

et bien moi j'ai suivis a cette page la

http://urzhiata.emoc.org/transformer-vi ... n-avi.html :wink:


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Mon problème doit être une histoire de conflit de codec car en convertissant sans aucune compression, la video avi est enfin apparut (892 mo alors qu'en flv elle en fait 12 :P :P :P )
Je me rapproche de la solution. Choubidou !
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

le "-f" c'est pour "Force Format" !!
cela oblige la sortie dans un format specifié !! :)

peut etre mieux vaut utiliser

"-target type'" ->>> '-target Avi ' :)

@venom : je ne comprends pas pourquoi tu passe par un fichier temporaire ??? 8O

pourquoi tout simplement ne pas lui donner un fivhier de depart *flv , puis une destination+ (meme_"nom.avi") .. pourquoi creer un autre fichier temporaire ? 8O

pour encoder en AVI
il vous faut signaler le codec que vous allez utiliser (Divx,pcm, rawvideo etc...)

en clair il vous manque cette ligne la :
-acodec pcm_s16le -ac 2
-acodec pcm s16le= choix du codec Audio s16le
-ac 2 = on veux le son en stereo !! :)

cela aurai pu etre :
-acodec mp3


et ceci :
-vcodec rawvideo
choisi le codec utilisé pour la video !!
la on choisi le rawvideo (video non compressé !!)


a lire : (Avi to FLV)
Voici la commande :
ffmpeg -i ma_video.avi -s 640x480 -ar 44100 -aspect 4:3 -pass 1 -b 768k -r 24 -acodec mp3 -ab 64 -f flv -y ma_video.flv

Nous allons vous expliquer ce que fond chaque options :
-i : C'est le nom de votre vidéo / exemple : ma_video.avi
-i ma_video.avi
-s : C'est le format de votre vidéo "wxh" / exemple : 640x480
-s 640x480
-ar : C'est la frequence audio / exemple : 44100 Hz par default sous ffmpeg
-ar 44100
-aspect : C'est "aspect ratio" / exemple : 4:3 ou 16:9
-aspect 4:3
-pass : C'est une option FFmpeg soit 1 ou 2, à ce que j'ai compris si vous le mettez à 1 il vas légèrement modifier le bitrate demander, et en option 2 la vidéo est produite au bitrate demandé exact. Je vous conseil de le laisser en 1.
-pass 1
-b : C'est le bitrate que vous voulez.. Plus la valeur est haute, plus la qualitée de l'image sera net mais la vidéo beaucoup plus lourd / exemple: 200k (par default sous ffmpeg) Moi qui encode des vidéo en 640x480 je mets cette option à 768k ce qui me réduit de très peu la taille de la vidéo. 200Mo en avi pour 175Mo en flv.
-b 768k
-r : C'est le nombre FPS (images par secondes).. Tout dépends si votre vidéo est rapide ou pas et si elle demande beaucoup en image ou pas.. Pour etre sur vous pouvez mettre 24. Mais parreil que le bitrate plus il y aura d'FPS plus la vidéo sera lourde.
-r 24
-acodec : C'est le codec pour le son / exemple : Mp3
-acodec mp3
-ab : C'est le bitrate audio / exemple 32 ou 64 par default sous FFMpeg
-ab 64
-f : Sous FFmpeg il appel ça le "Force format" comme pour dans notre exemple si l'on veut encoder en *.flv
-f flv
-y : C'est le nom final que vas porter votre vidéo, vous pouvez lui donner un nom completement différent de celui en *.avi
-y ma_video.flv
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

je ne comprends pas pourquoi tu passe par un fichier temporaire
et bien c'est la solution que j'ai trouvé car quand tu fait runprogram si le chemain est : C:\Documents and Settings\All Users\Bureau et bien ffmpeg te renvoie C:\Documentsn'est pas une commande valide puisqu'il y a un espace dans la ligne de commande

lui il lie sa : ffmpeg -i C:\Documents and Settings\All Users\Bureau\fichiervideo.flv -f avi C:\fichiervideo.avi

et bien sa ne lui va pas c'est pour sa que je passe par un fichier temporaire qui lui est a la racine donc la pas de souci

ffmpeg -i C:\fichiervideo.flv -f avi C:\fichiervideo.avi
:) bon ok c'est un peut magouiller :wink: mais sa fonctionne très bien.


ps: si non j'ai fait le meme principe mais pour du WAV en MP3 :wink:
WAV Converteur.


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

j'ai étudié aussi la chose , ! :)

j'arrive a récupérer les noms valides des Codec envoyé par ffmpeg


mais par contre une fois en encodage, impossible de récupérer les infos
affiché par la console, en utilisant les canaux de communication du prg
parce que si l'on ouvre le prg avec
#PB_Program_Open|#PB_Program_Read
le prg n'encode pas , il ne démarre pas , alors que si on le lance avec
#PB_Program_Wait
, il démarre mais alors impossible de récupérer quelques valeurs que ce soit, puisque les canaux ne sont pas ouvert ...

il reste plus qu'a récupérer ce qu'il affiche directement par la console , mais dans ce cas , ça va être dur de lancer le prg en mode Caché !!

Je suis reparti de ta Version Venom :)

mais j'utilise le Dossier de l'application , pour mettre le fichier temporaire
et a la fin du traitement il est effacé, et ffmpeg créé lui-meme le fichier résultat dans le dossier de destination ,cela évite une Copy

et surtout permet d'avoir ffmpeg.exe dans le dossier de l'application , cela évite de demander aux gens, d'installer ffmpeg dans les dossiers system !!

de cette façon on peut distribuer un dossier comprenant notre interface et les différents fichiers de ffmpeg , bref tout en un sans install ! :)

je referai une interface, parce que je gère quand même les Formats (size et type ) d'entrée et de Sortie video et Audio !! (Comme Ar-s :) )

ps : actuellement je transforme du flv en Divx+ mp3 a 128kb
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

ok et bien j'atend ta version dobro :P pour comparer avec mon histoire de temporaire.

si non j'ai fait une mise a jours avec l'options de taille d'ecrant et cette nuit je vais voir pour choisir le format 16:9 et 4:3 :P

voila pour moi ce soir je metterai la mise a jours demain si tout va bien .


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Seyhajin
Messages : 17
Inscription : jeu. 03/mars/2005 13:24

Message par Seyhajin »

venom a écrit :
je ne comprends pas pourquoi tu passe par un fichier temporaire
et bien c'est la solution que j'ai trouvé car quand tu fait runprogram si le chemain est : C:\Documents and Settings\All Users\Bureau et bien ffmpeg te renvoie C:\Documentsn'est pas une commande valide puisqu'il y a un espace dans la ligne de commande

lui il lie sa : ffmpeg -i C:\Documents and Settings\All Users\Bureau\fichiervideo.flv -f avi C:\fichiervideo.avi

et bien sa ne lui va pas c'est pour sa que je passe par un fichier temporaire qui lui est a la racine donc la pas de souci
salut,
as-tu essayer de mettre des guillemets pour définir tes chemins ?
exemple : ffmpeg -i "C:\Documents and Settings\All Users\Bureau\fichiervideo.flv" -f avi "C:\fichiervideo.avi"

j'ai pas tester mais normalement ça devrai marcher :)

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

Message par Backup »

Seyhajin a écrit : salut,
as-tu essayer de mettre des guillemets pour définir tes chemins ?
exemple : ffmpeg -i "C:\Documents and Settings\All Users\Bureau\fichiervideo.flv" -f avi "C:\fichiervideo.avi"

j'ai pas tester mais normalement ça devrai marcher :)

@++
ouiiiii ! bien vu !! :D

je vais modifier mon source si dessus :)
Répondre