Téléchargez le fichier ffmpeg_2013_08_24.exe fourni pour être certain que les commandes générées seront les bonnes.
Utilisez le script vbs suivant dans un fichier portant l'extention .vbs.
Placez la vidéo à découper (et seulement une) dans le même répertoire que celui du script.
Lancez en script .vbs en double cliquant dessus (par exemple).
Répondez aux questions posées.
Validez les commandes générées dans le fichier .bat qui sera généré puis exécutez le.
'2014 01 04
'2013 12 26
'Genere un fichier bat avec la commande nécessaire au découpage d'un fichier video avec ffmpeg
Dim objFSO 'Objet FSO pour l'accès au système de fichiers
Dim MyFile 'Représente un fichier
Dim objTextFile 'Représente le fichier texte qui contient les réponses
Dim Position
Dim ExtensionFichier
Dim NomFichierSansExtension
'Déclaration des constantes pour la lecture et l'ecriture dans les fichiers
Const ForReading = 1
Const ForWritting = 2
Const ForAppending = 8
Dim DefaultMovieFilePath
Dim MovieFilePathToCut
'Création des objets
Set objFSO = CreateObject("Scripting.FileSystemObject")
CheminScriptActuel = Left(wscript.scriptfullname,Len(wscript.scriptfullname)-Len(wscript.scriptname)-1)
CheminFichierResultat = CheminScriptActuel & "\" & "Script_commandes_FFMpeg_decouper_fichier.bat"
CheminFichierResultat = InputBox("Entrez le chemin du fichier contenant le batch","Chemin du fichier de reponse",CheminFichierResultat)
Set objTextFile = objFSO.OpenTextFile(CheminFichierResultat, ForWritting, True)
'On ecrit dans le batch la lettre du lecteur qui contient le script
If Left(CheminScriptActuel, 2) = "\\" Then
Wscript.echo "Attention : Les chemmins réseau ne sont pas traité correctement."
Else
objTextFile.WriteLine(Left(CheminScriptActuel, 1) & ":")
End If
objTextFile.WriteLine("Cd """ & CheminScriptActuel & """")
CheminRepertoireAExplorer = InputBox("Entrez le chemin du répertoire qui contient le fichier","Chemin du répertoire",CheminScriptActuel)
'On fait un objet qui représente le répertoire à explorer
Set objFolder = objFSO.GetFolder(CheminRepertoireAExplorer)
'Recherche d'un fichier video situé dans le répertoire qui contient ce script
DefaultMovieFilePath = "" 'Valeur par défaut
For Each MyFile In objFolder.Files
ExtensionFichier = ""
Position = InStrRev(MyFile.Name,".")
If (Position > 0) And (Position < Len(MyFile.Name)) Then
ExtensionFichier = Mid(MyFile.Name,Position+1)
NomFichierSansExtension = Left(MyFile.Name,Position-1)
If (Lcase(ExtensionFichier) = "avi") Or (Lcase(ExtensionFichier) = "mp4") Or (Lcase(ExtensionFichier) = "flv") Or (Lcase(ExtensionFichier) = "m2ts") Or (Lcase(ExtensionFichier) = "mt2s") Or (Lcase(ExtensionFichier) = "ts" Or (Lcase(ExtensionFichier) = "mpg")) Or (Lcase(ExtensionFichier) = "mpeg") Or (Lcase(ExtensionFichier) = "mkv") Then
DefaultMovieFilePath = MyFile.Path
Exit For
End If
End If
Next
'Chemin du fichier à découper
MovieFilePathToCut = InputBox("Chemin du fichier a decouper","Chemin du fichier",DefaultMovieFilePath)
ExtensionFichier = ""
Position = InStrRev(MyFile.Name,".")
If (Position > 0) And (Position < Len(MyFile.Name)) Then
ExtensionFichier = Mid(MyFile.Name,Position+1)
NomFichierSansExtension = Left(MyFile.Name,Position-1)
End If
'ffmpeg_2013_08_24.exe -i "P:\Videos\TV\A decouper\input.m2ts" -ss 01:19:24 -t 00:20:35 -c:v copy -c:a copy "P:\Videos\TV\A decouper\Output.m2ts"
PositionDepart = InputBox("Entrez la position de départ au format hh:mm:ss","Position de depart","00:00:00")
PositionFin = InputBox("L'heure de fin au format hh:mm:ss","Position de fin",PositionDepart)
'Calcul de la durée entre la position du début et la position de fin
NbrSecondes = DateDiff("s",PositionDepart,PositionFin) '& ":" & DateDiff("n",PositionDepart,PositionFin) & ":" & DateDiff("s",PositionDepart,PositionFin)
DateRef = "01/01/2010 00:00:00"
Duree = DateAdd("s",NbrSecondes,DateRef)
Duree = ConversionSecondesHHMMSS(Duree)
objTextFile.WriteLine("set fichiersource=""" & MovieFilePathToCut & """")
objTextFile.WriteLine("set fichiercible=""" & CheminRepertoireAExplorer & "\" & NomFichierSansExtension & "_Decoupe." & ExtensionFichier & """")
'objTextFile.WriteLine("ffmpeg_2013_08_24.exe -i """ & MovieFilePathToCut & """ -ss " & PositionDepart & " -t " & Duree & " -c:v copy -c:a copy """ & CheminRepertoireAExplorer & "\" & NomFichierSansExtension & "_Decoupe." & ExtensionFichier & """")
objTextFile.WriteLine("ffmpeg_2013_08_24.exe -i %fichiersource% -ss " & PositionDepart & " -t " & Duree & " -c:v copy -c:a copy %fichiercible%")
If PositionDepart <> "00:00:00" Then
objTextFile.WriteLine("REM ffmpeg_2013_08_24.exe -i %fichiersource% -ss 00:00:01 -t " & PositionDepart & " -c:v copy -c:a copy """ & CheminRepertoireAExplorer & "\" & NomFichierSansExtension & "_Debut." & ExtensionFichier & """")
objTextFile.WriteLine("REM DEL /F """ & MovieFilePathToCut & """")
End If
objTextFile.Close
Set objTextFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
Wscript.echo "Script termine"
Public Function ConversionSecondesHHMMSS(ByVal CheminExecutable)
Dim NbrHeures
Dim NbrMinutes
Dim NbrSecondes
NbrHeures = DatePart("h",Duree)
If Len(NbrHeures) < 2 Then NbrHeures = "0" & NbrHeures
NbrMinutes = DatePart("n",Duree)
If Len(NbrMinutes) < 2 Then NbrMinutes = "0" & NbrMinutes
NbrSecondes = DatePart("s",Duree)
If Len(NbrSecondes) < 2 Then NbrSecondes = "0" & NbrSecondes
ConversionSecondesHHMMSS = NbrHeures & ":" & NbrMinutes & ":" & NbrSecondes
'Wscript.echo "Duree : " & Duree
'Duree = InputBox("Confirmez la durée entre la position de fin et la position du debut","Durée",Duree)
End Function
Public Function LancerExecutableWScriptShellRun(ByVal CheminExecutable, ByVal Arguments, ByVal ModeExecution, ByVal AttendreExecutable)
'Version du 30 septembre 2009 : Retour d un eventuel message d erreur
'Ex Version du 04 avril 2008
'Ex Version du 26 mars 2008
'Ex Version du 5 mars 2008
'LancerExecutableWScriptShellRun ne retourne rien si il n y a pas eu de probleme, sinon retourne un message d erreur
'Valeurs de ModeExecution :
' 0 : Cache et active une autre fenetre
' 1 : active la fenêtre de l executable et l affiche normalement
' 2 : active et minimise la fenetre
' 3 : active et maximise la fenetre
' 4 : ne touche pas a la fenetre active, affiche a la taille la plus recente
' 5 : active la fenetre active, affiche a la taille la plus recente
' 6 :
' 7 : ne touche pas a la fenetre active, minimise la fenetre
' 8
' 9
' 10
'Valeurs de AttendreExecutable
' True
' False
Dim Commande
Dim ObjShell
Dim NumeroErreur
Dim VariableBidon
LancerExecutableWScriptShellRun = "" 'Valeur par defaut
Select Case Cstr(ModeExecution)
Case "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"
VariableBidon = 2
Case Else
ModeExecution = 1
End Select
Select Case AttendreExecutable
Case True
VariableBidon = 2
Case False
VariableBidon = 2
Case Else
AttendreExecutable = True
End Select
Commande = CheminExecutable
If Len(Arguments) > 0 Then
Commande = Commande & " """ & Arguments & """"
'Commande = """" & Commande & " """ & Arguments & """" & """"
'MsgBox Commande
End If
'Creation de l'objet Shell
Err.Clear
On Error Resume Next
Set ObjShell = WScript.CreateObject("WScript.Shell")
NumeroErreur = Err.number
On Error Goto 0
If NumeroErreur = 0 Then
'object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
'1 pour activer la fenêtre et l'afficher normalement
'Commande = "%windir%\notepad.exe" 'Préparation de la ligne de commande a éxecuter
Err.Clear
On Error Resume Next
ObjShell.Run Commande, ModeExecution, AttendreExecutable
NumeroErreur = Err.number
On Error Goto 0
If NumeroErreur = 0 Then
LancerExecutableWScriptShellRun = ""
End If
'Destruction de l'objet Shell
Set ObjShell = Nothing
Else
LancerExecutableWScriptShellRun = "Impossible de lancer la commande """ & Commande & """ car l appel de la fonction WScript.Shell ne fonctionne pas"
End If 'If NumeroErreur = 0 Then
End Function
Lien vers le fichier : cliquez ici
Téléchargement(s)
Nom | Site Web d origine | Description |
---|---|---|
ffmpeg_2013_08_24.exe | http://ffmpeg.org | ffmpeg.exe dans sa version du ffmpeg 24 août 2013 |
Article(s) suivant(s)