Code:Powershell-script video conversion-010.ps1

Aller à la navigation Aller à la recherche
$CheminSource = "C:\Video\AConvertir\"
$CheminDestinationOriginal = "C:\Video\AConvertir\original\"
$CheminDestinationTraite =   "C:\Video\AConvertir\conv\"
$Suffixe_q23="-q23"
$Suffixe_q23_1280="-q23-1280"

set-location $CheminSource

$CheminSource = $CheminSource+"\*"
$VideoListeATraiter = Get-Item -Include @("*.mp4", "*.avi", "*.divx", "*.mov", "*.mpg", "*.wmv", "*.mkv") -Path $CheminSource;

Clear-Host
Write-Host 
Write-Host "Liste des vidéos à traiter";

$Compteur=1;
foreach ($VideoATraiter in $VideoListeATraiter) {
    Write-Host $Compteur ".- " $VideoATraiter;
    $Compteur++
    }
Write-Host 
        # Pause
    $null = Read-Host -Prompt 'Appuyer sur une touche pour continuer.';

Write-Host -ForegroundColor Green "Début du traitement"

$Compteur=1;
foreach ($VideoATraiter in $VideoListeATraiter) {
    $VideoTraite_q23 = $VideoATraiter.BaseName+$Suffixe_q23+$VideoATraiter.Extension
    $VideoTraite_q23_1280 = $VideoATraiter.BaseName+$Suffixe_q23_1280+$VideoATraiter.Extension
    Write-Host $Compteur ".- " $VideoATraiter
    
        # Déclaration des arguments pour ffmpeg.exe
        # -c:v libx264 -preset slow -crf 22
    #$ArgumentListe = '-i "{0}" -vf scale=1024:0 "{1}"' -f $VideoATraiter, $VideoTraite;
    $ArgumentListe_q23 = '-i "{0}" -r 25 -preset medium -map 0:v -c:v libx264 -map 0:a -c:a copy "{1}"' -f $VideoATraiter, $VideoTraite_q23;
    $ArgumentListe_q23_1280 = '-i "{0}" -r 25 -preset medium -map 0:v -c:v libx264 -map 0:a -c:a copy -vf scale=1280:0 "{1}"' -f $VideoATraiter, $VideoTraite_q23_1280;
        # $ArgumentListe = '-i {0} -c:v libx264 -crf 23 -c:a copy {1}' -f $VideoATraiter, $VideoTraite;
    
    # Write-Host $ArgumentListe
    
        # Démarrage du traitement
    Start-Process -FilePath "C:\Video\AConvertir\ffmpeg.exe" -ArgumentList $ArgumentListe_q23 -Wait -NoNewWindow;
    Start-Process -FilePath "C:\Video\AConvertir\ffmpeg.exe" -ArgumentList $ArgumentListe_q23_1280 -Wait -NoNewWindow;

    Move-Item -Path $VideoATraiter -Destination $CheminDestinationOriginal
    Move-Item -Path $VideoTraite_q23 -Destination $CheminDestinationTraite
    Move-Item -Path $VideoTraite_q23_1280 -Destination $CheminDestinationTraite
    Write-Host -ForegroundColor Cyan "   ==> traitement terminé"
    Write-Host 
    $Compteur++
    }
Write-Host -ForegroundColor Green "Fin du traitement"