
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)
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
-acodec pcm s16le= choix du codec Audio s16le-acodec pcm_s16le -ac 2
choisi le codec utilisé pour la video !!-vcodec rawvideo
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
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 commandeje ne comprends pas pourquoi tu passe par un fichier temporaire
le prg n'encode pas , il ne démarre pas , alors que si on le lance avec#PB_Program_Open|#PB_Program_Read
, il démarre mais alors impossible de récupérer quelques valeurs que ce soit, puisque les canaux ne sont pas ouvert ...#PB_Program_Wait
salut,venom a écrit :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 commandeje ne comprends pas pourquoi tu passe par un fichier temporaire
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
ouiiiii ! bien vu !!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
@++