Code:Powershell-script video conversion-020.ps1
Aller à la navigation
Aller à la recherche
cls set-location C:\Support\ffmpeg # Attention. Pour les noms de fichiers qui contiennent des espaces, le script de fonctionne pas. # en solution rapide, prévoir de renommer le fichier avant traitement. $listefichier = gci *.mp4 $compteur = 0 foreach ($fichier in $listefichier) { $tl=$listefichier.length $compteur = $compteur + 1 $tailleliste = $listefichier.length # récupération des dates des fichiers $datecreation = $fichier.CreationTime $datemodif = $fichier.LastWriteTime $dateacces = $fichier.LastAccessTime $taille = $fichier.Length/1024 # renommage des fichiers $fichierNom=$fichier.BaseName $fichierExt=$fichier.Extension $fichierAncien = $fichier.BaseName + "-vieux" + $fichier.Extension Rename-item -Path $fichier -NewName $fichierAncien $fichierNouveau = $fichier # arguments pour le traitement vidéo $arg="-i " + $fichierAncien + " -r 25 -b:v 2048k -b:a 96k -vf scale=1280:720 " + $fichierNouveau # $arg="-i " + $fichierAncien + " -r 25 -b:v 2048k -b:a 96k -vf scale=720:1280 " + $fichierNouveau # l'option -Wait permet d'attendre la fin d'un traitement avant de lancer le suivant try { $debuttraitement = Get-Date # Début de traitement write-host $compteur "/" $tailleliste " : " $fichier.name $taille.tostring("#") " | En cours" start-process -Wait ffmpeg.exe -argumentlist $arg $fintraitement = Get-Date # Fin de traitement $duree = $fintraitement - $debuttraitement write-host " Terminé. Durée de traitement :" $duree.TotalSeconds "s" Start-Sleep -s 3 # modification des dates des nouveaux fichiers $(Get-Item $fichier).creationtime=$($datemodif) $(Get-Item $fichier).LastWriteTime=$($datemodif) $(Get-Item $fichier).lastaccesstime=$($datemodif) } catch { write-host write-host $compteur "/" $tailleliste " : " $fichier.name $taille.tostring("#") " | Erreur fichier " $fichierAncien } }