« Code:Powershell-script video conversion-020.ps1 » : différence entre les versions
Aller à la navigation
Aller à la recherche
mAucun résumé des modifications |
mAucun résumé des modifications |
||
Ligne 1 : | Ligne 1 : | ||
<source> | <source> | ||
Clear-Host | |||
Set-Location C:\Support\ffmpeg | |||
# Attention. Pour les noms de fichiers qui contiennent des espaces, le script de fonctionne pas. | # 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. | # en solution rapide, prévoir de renommer le fichier avant traitement. | ||
$ | $listeFichier = Get-ChildItem *.mp4 | ||
$compteur = 0 | $compteur = 0 | ||
ForEach ($fichier in $listeFichier) { | |||
$tl=$ | $tl = $listeFichier.length | ||
$compteur = $compteur + 1 | $compteur = $compteur + 1 | ||
$ | $tailleListe = $listeFichier.Length | ||
# récupération des dates des fichiers | # récupération des dates des fichiers | ||
$ | $dateCreation = $fichier.CreationTime | ||
$ | $dateModif = $fichier.LastWriteTime | ||
$ | $dateAcces = $fichier.LastAccessTime | ||
$taille = $fichier.Length/1024 | $taille = $fichier.Length/1024 | ||
# renommage des fichiers | # renommage des fichiers | ||
$fichierNom=$fichier.BaseName | $fichierNom = $fichier.BaseName | ||
$fichierExt=$fichier.Extension | $fichierExt = $fichier.Extension | ||
$fichierAncien = $fichier.BaseName + "-vieux" + $fichier.Extension | $fichierAncien = $fichier.BaseName + "-vieux" + $fichier.Extension | ||
Rename- | Rename-Item -Path $fichier -NewName $fichierAncien | ||
$fichierNouveau = $fichier | $fichierNouveau = $fichier | ||
# arguments pour le traitement vidéo | # 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=1280:720 " + $fichierNouveau | ||
# $arg="-i " + $fichierAncien + " -r 25 -b:v 2048k -b:a 96k -vf scale=720:1280 " + $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 | # 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 | $duree = $fintraitement - $debuttraitement | ||
Write-Host " Terminé. Durée de traitement :" $duree.TotalSeconds "s" | |||
Start-Sleep -s 3 | Start-Sleep -s 3 | ||
# modification des dates des nouveaux fichiers | # modification des dates des nouveaux fichiers | ||
$(Get-Item $fichier). | $(Get-Item $fichier).CreationTime = $($datemodif) | ||
$(Get-Item $fichier).LastWriteTime=$($datemodif) | $(Get-Item $fichier).LastWriteTime = $($datemodif) | ||
$(Get-Item $fichier). | $(Get-Item $fichier).LastAccessTime = $($datemodif) | ||
} | } | ||
Catch { | |||
Write-Host $compteur "/" $tailleliste " : " $fichier.Name $taille.ToString("#") " | Erreur fichier " $fichierAncien | |||
} | } | ||
} | } |
Dernière version du 27 novembre 2023 à 23:56
Clear-Host 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 = Get-ChildItem *.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 $compteur "/" $tailleliste " : " $fichier.Name $taille.ToString("#") " | Erreur fichier " $fichierAncien } }