Some fixes

This commit is contained in:
Isaac Shoebottom 2023-11-21 04:56:52 -04:00
parent e1debf99fd
commit f4386b1785
2 changed files with 25 additions and 11 deletions

View File

@ -1,10 +1,8 @@
# Output to a flat directory as I am going to use picard to rename the files after the fact
# Read each line in the file # Read each line in the file
$filePaths = Get-Content -Path $args[0] $filePaths = Get-Content -Path $args[0]
$files = @() $files = @()
foreach ($filePath in $filePaths) { foreach ($filePath in $filePaths) {
$files += Get-Item -Path $filePath $files += Get-Item -Path "$($filePath)" -Force
} }
# Save to output folder "Output" # Save to output folder "Output"
@ -20,7 +18,21 @@ foreach ($file in $files) {
ffmpeg -i $file.FullName -c:a flac -sample_fmt s16 -ar 44100 $destinationPath ffmpeg -i $file.FullName -c:a flac -sample_fmt s16 -ar 44100 $destinationPath
} }
#> #>
$prefix = "Z:\Music-HQ\"
$files | ForEach-Object -Parallel { $files | ForEach-Object -Parallel {
$destinationPath = $destination + "\" + $_.Name $oldLocation = $_.FullName
ffmpeg -i $_.FullName -c:a flac -sample_fmt s16 -ar 44100 $destinationPath # Remove the prefix
$newLocation = $oldLocation.Substring($prefix.Length)
# Remove the name of the file for folder creation
$newLocation = $newLocation.Substring(0, $newLocation.IndexOf($_.Name))
# Create the folder if it doesn't exist
if (-not (Test-Path -Path $destination\$newLocation)) {
New-Item -Path $destination\$newLocation -ItemType Directory
}
$destinationPath = $destination + "\" + $newLocation + $_.Name
Write-Host $destinationPath
# ffmpeg -i $_.FullName -c:a flac -sample_fmt s16 -ar 44100 $destinationPath
} }

View File

@ -3,12 +3,10 @@
# Get all files with the .flac extension # Get all files with the .flac extension
$files = Get-ChildItem -Path . -Filter *.flac -Recurse $files = Get-ChildItem -Path . -Filter *.flac -Recurse
Write-Host "Found" $files.Count "files" # Write-Host "Found" $files.Count "files"
# For each file, run ffprobe with json ouptut, and include it in a new list if it has a sample rate above 44100, and a bit depth above 16 # For each file, run ffprobe with json ouptut, and include it in a new list if it has a sample rate above 44100, and a bit depth above 16
$hq = @()
<# This is the old way, use the new way below using -Parallel <# This is the old way, use the new way below using -Parallel
foreach ($file in $files) { foreach ($file in $files) {
$ffprobe = ffprobe -v quiet -print_format json -show_format -show_streams $file.FullName $ffprobe = ffprobe -v quiet -print_format json -show_format -show_streams $file.FullName
@ -21,6 +19,8 @@ foreach ($file in $files) {
} }
} }
#> #>
$hq = @()
$files | ForEach-Object -Parallel { $files | ForEach-Object -Parallel {
$ffprobe = ffprobe -v quiet -print_format json -show_format -show_streams $_.FullName $ffprobe = ffprobe -v quiet -print_format json -show_format -show_streams $_.FullName
$ffprobe = $ffprobe | ConvertFrom-Json $ffprobe = $ffprobe | ConvertFrom-Json
@ -32,7 +32,9 @@ $files | ForEach-Object -Parallel {
} }
} }
# Doesn't work, so use input redirection instead "script.ps1 *> input.txt" because of read host, or "(pwsh -c script.ps1) > hq.txt"
# Save each file in hq to a text file with its full path # Save each file in hq to a text file with its full path
foreach ($file in $hq) { # New-Item -Path . -Name hq.txt -ItemType File -Quiet
$file.FullName | Out-File -FilePath hq.txt -Append # foreach ($file in $hq) {
} # $file.FullName | Out-File -FilePath hq.txt -Append
# }