Code : Tout sélectionner
;{- FFmpeg GUI by Ar-S / LDV MULTIMEDIA
Enumeration
#WIN
#P0
#OP_Debit_Free
#BT_ChoixSource
#ChoixSource
#ChoixDest
#BT_ChoixDest
#TXT_1
#TXT_2
#OP_FLV
#OP_AVI
#TXT_3
#BT_GO
#TXT_4
#OP_inchange
#OP_16_9
#OP_4_3
#TXT_5
#OP_res1
#OP_128x96
#OP_160x120
#OP_320x240
#OP_640x480
#OP_800x600
#OP_1024x768
#TXT_6
#OP_Debit1
#OP_Debit_50
#OP_Debit_100
#OP_Debit_500
#SON
#Font_BT_ChoixSource
#Font_BT_ChoixDest
EndEnumeration
Global OP_Debit_Free_Tooltip
Global BT_ChoixSource_Tooltip
Global BT_ChoixDest_Tooltip
Global SON_Tooltip
Global esp$=" "
Global Path$=GetCurrentDirectory()
Global FFmpeg$=Chr(34)+Path$+"ffmpeg.exe"+Chr(34)
Global V$="0.2"
; Create tooltip
Procedure GadgetBalloonToolTip(WindowNumber.l, GadgetNumber.l, Text.s)
Protected Tooltip.l, Balloon.TOOLINFO
Tooltip = CreateWindowEx_(0, "ToolTips_Class32", "", #WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON, 0, 0, 0, 0, WindowID(WindowNumber), 0, GetModuleHandle_(0), 0)
SendMessage_(Tooltip, #TTM_SETTIPTEXTCOLOR, GetSysColor_(#COLOR_INFOTEXT), 0)
SendMessage_(Tooltip, #TTM_SETTIPBKCOLOR, GetSysColor_(#COLOR_INFOBK), 0)
SendMessage_(Tooltip, #TTM_SETMAXTIPWIDTH, 0, 180)
Balloon\cbSize = SizeOf(TOOLINFO)
Balloon\uFlags = #TTF_IDISHWND | #TTF_SUBCLASS
Balloon\hwnd = GadgetID(GadgetNumber)
Balloon\uId = GadgetID(GadgetNumber)
Balloon\lpszText = @Text
SendMessage_(Tooltip, #TTM_ADDTOOL, 0, @Balloon)
ProcedureReturn Tooltip
EndProcedure
; Change tooltip text
Procedure ChangeGadgetBalloonToolTip(Tooltip.l, GadgetNumber.l, Text.s)
Protected Balloon.TOOLINFO
Balloon\cbSize = SizeOf(TOOLINFO)
Balloon\uFlags = #TTF_IDISHWND | #TTF_SUBCLASS
Balloon\hwnd = GadgetID(GadgetNumber)
Balloon\uId = GadgetID(GadgetNumber)
Balloon\lpszText = @Text
SendMessage_(Tooltip, #TTM_ADDTOOL, 0, @Balloon)
EndProcedure
; Free tooltip
Procedure FreeBalloonTooltip(Tooltip.l)
DestroyWindow_(Tooltip.l)
EndProcedure
;
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure OpenWindow_WIN()
If OpenWindow(#WIN, 456, 176, 450, 185, "FFmpeg GUI FLV - AVI converter "+V$, #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
If CreateGadgetList(WindowID(#WIN))
PanelGadget(#P0, 0, 0, 450, 185) ;>
; Options Generales
AddGadgetItem(#P0, -1, "Options Generales")
ButtonGadget(#BT_ChoixSource, 390, 15, 50, 30, "...")
BT_ChoixSource_Tooltip = GadgetBalloonToolTip(#WIN, #BT_ChoixSource, "Indiquez le chemin du fichier source")
StringGadget(#ChoixSource, 5, 25, 380, 20, "", #PB_String_BorderLess|#ES_CENTER|#PB_String_ReadOnly)
StringGadget(#ChoixDest, 5, 75, 380, 20, "", #PB_String_BorderLess|#ES_CENTER|#PB_String_ReadOnly)
ButtonGadget(#BT_ChoixDest, 390, 65, 50, 30, "...")
BT_ChoixDest_Tooltip = GadgetBalloonToolTip(#WIN, #BT_ChoixDest, "Indiquez le chemin du fichier source")
TextGadget(#TXT_1, 5, 7, 180, 15, "Chemin du fichier source")
TextGadget(#TXT_2, 5, 55, 180, 15, "Chemin du fichier de destination")
OptionGadget(#OP_FLV, 5, 130, 40, 20, "FLV")
OptionGadget(#OP_AVI, 50, 130, 40, 20, "AVI")
SetGadgetState(#OP_AVI, 1)
TextGadget(#TXT_3, 5, 110, 80, 20, "Format de sortie")
ButtonGadget(#BT_GO, 105, 105, 335, 45, "Convertir la vidéo")
; Options avancées
AddGadgetItem(#P0, -1, "Options avancées")
StringGadget(#OP_Debit_Free, 295, 105, 50, 15, "", #PB_String_Numeric|#ES_RIGHT)
OP_Debit_Free_Tooltip = GadgetBalloonToolTip(#WIN, #OP_Debit_Free, "Choississez vous-même un débit vidéos")
TextGadget(#TXT_4, 10, 5, 60, 15, "Aspect")
OptionGadget(#OP_inchange, 10, 25, 70, 15, "Inchangé")
SetGadgetState(#OP_inchange, 1)
OptionGadget(#OP_16_9, 10, 45, 50, 15, "16:9")
OptionGadget(#OP_4_3, 10, 65, 50, 15, "4:3")
TextGadget(#TXT_5, 125, 5, 60, 15, "Résolution")
OptionGadget(#OP_res1, 125, 25, 145, 15, "Identique à la source")
SetGadgetState(#OP_res1, 1)
OptionGadget(#OP_128x96, 125, 45, 70, 15, "128x96")
OptionGadget(#OP_160x120, 125, 65, 70, 15, "160x120")
OptionGadget(#OP_320x240, 125, 85, 70, 15, "320x240")
OptionGadget(#OP_640x480, 125, 105, 70, 15, "640x480")
OptionGadget(#OP_800x600, 125, 125, 70, 15, "800x600")
OptionGadget(#OP_1024x768, 125, 145, 70, 15, "1024x768")
TextGadget(#TXT_6, 295, 5, 110, 15, "Débit vidéo (kbps/s)")
OptionGadget(#OP_Debit1, 295, 25, 145, 15, "Defaut (200)")
SetGadgetState(#OP_Debit1, 1)
OptionGadget(#OP_Debit_50, 295, 45, 50, 15, "50")
OptionGadget(#OP_Debit_100, 295, 65, 50, 15, "100")
OptionGadget(#OP_Debit_500, 295, 85, 50, 15, "500")
CheckBoxGadget(#SON, 295, 135, 140, 15, "Suppression du son ?")
SON_Tooltip = GadgetBalloonToolTip(#WIN, #SON, "Cocher pour supprimer la bande son")
; A propos
AddGadgetItem(#P0, -1, "A propos")
; Mise à jour ?
AddGadgetItem(#P0, -1, "Mise à jour ?")
CloseGadgetList() ;<
; Gadget Fonts
SetGadgetFont(#BT_ChoixSource, LoadFont(#Font_BT_ChoixSource, "Century Schoolbook", 16, 272))
SetGadgetFont(#BT_ChoixDest, LoadFont(#Font_BT_ChoixDest, "Century Schoolbook", 16, 272))
PureCOLOR_SetGadgetColor(#OP_Debit_Free, $0, $67CFFC)
PureCOLOR_SetButtonColor(#BT_ChoixSource, #PureCOLOR_SystemColor, $67CFFC)
PureCOLOR_SetGadgetColor(#ChoixSource, $0, $67CFFC)
PureCOLOR_SetGadgetColor(#ChoixDest, $0, $67CFFC)
PureCOLOR_SetButtonColor(#BT_ChoixDest, #PureCOLOR_SystemColor, $67CFFC)
EndIf
EndIf
EndProcedure
OpenWindow_WIN()
Aspect$=""
Resolution$=""
Format$="avi"
Debit$=""
Son$=""
;{- Event loop
Repeat
Event = WaitWindowEvent()
Select Event
; ///////////////////
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
Select EventGadget
Case #P0
Case #BT_ChoixSource
EtatFormat=GetGadgetState(#OP_AVI)
If EtatFormat=1
Format$="avi"
Else
Format$="flv"
EndIf
FichierParDefaut$ = Path$
Filtre$ = "Tous les fichiers (*.*)|*.*"
Filtre = 0
Fichier$ = OpenFileRequester("Choisissez le fichier video à convertir", FichierParDefaut$, Filtre$, Filtre)
If Fichier$
NomFichier$=GetFilePart(Fichier$)
LongueurFichier=Len(Fichier$)
fichierDest$=Chr(34)+Left(Fichier$,LongueurFichier-3)+Format$+Chr(34)
Fichier$=Chr(34)+Fichier$+Chr(34)
SetGadgetText(#ChoixSource,Fichier$)
SetGadgetText(#ChoixDest,fichierDest$)
Else
MessageRequester("Information", "La sélection a été annulée.", 0)
EndIf
Case #BT_ChoixDest
FichierParDefaut$ = Path$
Filtre$ = "Fichier "+Format$+ " (*."+Format$+")|*."+Format$
fichierDest$ = SaveFileRequester("Choisissez le fichier à sauvegarder", FichierParDefaut$, Filtre$, Filtre)
If fichierDest$
If Right(fichierDest$,4)="."+Format$
fichierDest$=fichierDest$
Else
fichierDest$=Chr(34)+fichierDest$+"."+Format$+Chr(34)
EndIf
SetGadgetText(#ChoixDest,fichierDest$)
Else
MessageRequester("Information", "La sélection a été annulée.", 0)
EndIf
Case #ChoixSource
Case #ChoixDest
Case #TXT_1
Case #TXT_2
Case #OP_FLV
Format$="flv"
SetGadgetState(#OP_AVI, 0)
Case #OP_AVI
Format$="avi"
SetGadgetState(#OP_FLV, 0)
Case #TXT_3
;-GO
Case #BT_GO
EtatFormat=GetGadgetState(#OP_AVI)
If EtatFormat=1
Format$="avi"
Else
Format$="flv"
EndIf
If Fichier$=""
MessageRequester("information","Vous devez choisir un fichier à convertir",#MB_ICONEXCLAMATION)
Else
If fichierDest$=""
MessageRequester("information","Vous devez choisir le chemin de sauvegarde",#MB_ICONEXCLAMATION)
Else
If Format$="flv"
parametre$="-i "+Fichier$+esp$+"-f "+Format$+esp$+fichierDest$
Else
parametre$="-i "+Fichier$+esp$+"-sameq -vcodec rawvideo -f "+Format$+esp$+fichierDest$
;parametre$="-i "+Fichier$+esp$+"-f "+Format$+esp$+Aspect$+Son$+Debit$+Resolution$+fichierDest$
EndIf
; RunProgram (FFmpeg$,parametre$)
MessageRequester ("test",FFmpeg$+esp$+parametre$) ;-test
RunProgram(FFmpeg$,parametre$,"",1)
SetClipboardText(FFmpeg$+esp$+parametre$)
CloseFile(1)
EndIf
EndIf
Case #TXT_4
Case #OP_inchange
Aspect$=""
SetGadgetState(#OP_16_9, 0)
SetGadgetState(#OP_4_3, 0)
Case #OP_16_9
Aspect$="-aspect 16:9 "
SetGadgetState(#OP_4_3, 0)
SetGadgetState(#OP_inchange, 0)
Case #OP_4_3
Aspect$="-aspect 4:3 "
SetGadgetState(#OP_16_9, 0)
SetGadgetState(#OP_inchange, 0)
Case #TXT_5
Case #OP_res1
Resolution$=""
SetGadgetState(#OP_128x96, 0)
SetGadgetState(#OP_160x120, 0)
SetGadgetState(#OP_320x240, 0)
SetGadgetState(#OP_640x480, 0)
SetGadgetState(#OP_800x600, 0)
SetGadgetState(#OP_1024x768, 0)
Case #OP_128x96
Resolution$="-s sqcif "
SetGadgetState(#OP_res1, 0)
SetGadgetState(#OP_160x120, 0)
SetGadgetState(#OP_320x240, 0)
SetGadgetState(#OP_640x480, 0)
SetGadgetState(#OP_800x600, 0)
SetGadgetState(#OP_1024x768, 0)
Case #OP_160x120
Resolution$="-s qqvga "
SetGadgetState(#OP_128x96, 0)
SetGadgetState(#OP_res1, 0)
SetGadgetState(#OP_320x240, 0)
SetGadgetState(#OP_640x480, 0)
SetGadgetState(#OP_800x600, 0)
SetGadgetState(#OP_1024x768, 0)
Case #OP_320x240
Resolution$="-s qvga "
SetGadgetState(#OP_128x96, 0)
SetGadgetState(#OP_res1, 0)
SetGadgetState(#OP_160x120, 0)
SetGadgetState(#OP_640x480, 0)
SetGadgetState(#OP_800x600, 0)
SetGadgetState(#OP_1024x768, 0)
Case #OP_640x480
Resolution$="-s vga "
SetGadgetState(#OP_128x96, 0)
SetGadgetState(#OP_res1, 0)
SetGadgetState(#OP_160x120, 0)
SetGadgetState(#OP_320x240, 0)
SetGadgetState(#OP_800x600, 0)
SetGadgetState(#OP_1024x768, 0)
Case #OP_800x600
Resolution$="-s svga "
SetGadgetState(#OP_128x96, 0)
SetGadgetState(#OP_res1, 0)
SetGadgetState(#OP_160x120, 0)
SetGadgetState(#OP_320x240, 0)
SetGadgetState(#OP_640x480, 0)
SetGadgetState(#OP_1024x768, 0)
Case #OP_1024x768
Resolution$="-s qqvga "
SetGadgetState(#OP_128x96, 0)
SetGadgetState(#OP_res1, 0)
SetGadgetState(#OP_160x120, 0)
SetGadgetState(#OP_320x240, 0)
SetGadgetState(#OP_640x480, 0)
SetGadgetState(#OP_800x600, 0)
Case #TXT_6
Case #OP_Debit_Free
debfree$=GetGadgetText(#OP_Debit_Free)
Debit$="-b "+debfree$+esp$
Case #OP_Debit1
Debit$=""
SetGadgetState(#OP_Debit_50, 0)
SetGadgetState(#OP_Debit_100, 0)
SetGadgetState(#OP_Debit_500, 0)
SetGadgetText(#OP_Debit_Free,"")
Case #OP_Debit_50
Debit$="-b 50 "
SetGadgetState(#OP_Debit1, 0)
SetGadgetState(#OP_Debit_100, 0)
SetGadgetState(#OP_Debit_500, 0)
SetGadgetText(#OP_Debit_Free,"")
Case #OP_Debit_100
Debit$="-b 100 "
SetGadgetState(#OP_Debit1, 0)
SetGadgetState(#OP_Debit_50, 0)
SetGadgetState(#OP_Debit_500, 0)
SetGadgetText(#OP_Debit_Free,"")
Case #OP_Debit_500
Debit$="-b 500 "
SetGadgetState(#OP_Debit1, 0)
SetGadgetState(#OP_Debit_50, 0)
SetGadgetState(#OP_Debit_100, 0)
SetGadgetText(#OP_Debit_Free,"")
Case #SON
RezSon=GetGadgetState(#SON)
If RezSon=1
SetGadgetState(#SON,1)
Son$="-an "
Else
SetGadgetState(#SON,0)
Son$=""
EndIf
EndSelect
; ////////////////////////
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
Select EventWindow
Case #WIN
CloseWindow(#WIN)
Break
EndSelect
EndSelect
ForEver
;
;}
vais faire dodo, demain boulot 10h,
a++