Code:Powershell-script video conversion-020.ps1

Révision datée du 7 mars 2022 à 19:55 par Fylip22 (discussion | contributions) (Page créée avec « <source> 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... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
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
    }
 }