У меня есть структура каталогов с необработанными видео .avi, которые находятся внутри этих каталогов.Я пытаюсь создать скрипт, который будет:
- Скопировать структуру каталогов на NAS
- Сжать необработанные видео .avi в формат .mp4
- Переместитьпреобразованное видео .mp4 в соответствующий каталог на NAS (преобразованный файл должен находиться в каталоге с тем же именем, что и исходный каталог)
- Удалить исходное необработанное видео .avi
Ниже приведена команда ffmpeg, которую я использую для сжатия видео.
ffmpeg -i <origVid>.avi -c:v h264 -crf 17 <convertedVid>.mp4
Я нашел несколько фрагментов PowerShell.Приведенный ниже код скопирует структуру каталогов:
$sourceDir = "D:\Videos"
$targetDir = "H:\Converted"
Copy-Item $sourceDir $targetDir -Filter {PSIsContainer} -Recurse -Force
А следующий фрагмент будет сжимать видео в отдельных папках
$origVids = Get-ChildItem .\*.avi -Recurse
foreach ($origVid in $origVids) {
$convertedVid = [io.path]::ChangeExtension($origVid, '.mp4')
.\ffmpeg.exe -i $origVid -c:v h264 -crf 17 $convertedVid
}
Я мог бы просто переместить все на NAS и выполнитьконвертировать туда и сдуть файлы в каталог на исходном компьютере;однако это немного неэффективно и потребляет тонны полосы пропускания.Я хотел бы сжать видео, а затем переместить меньший преобразованный файл на NAS в соответствующем каталоге.К сожалению, я не могу понять, как переместить преобразованные видео в соответствующие каталоги на NAS.Любая помощь будет принята с благодарностью!
Я должен добавить, я хотел бы, чтобы этот скрипт выполнялся рекурсивно.
Пример структуры каталогов файлов:
longdirectorynameinhashformat1
video1a.avi
video2a.avi
video3a.avi
longdirectorynameinhashformat2
video1b.avi
video2b.avi
video3b.avi
Моя логика заключается в следующем с использованием описанной выше структуры папок, но я не уверен, что это возможно при записи в PowerShell или в пакете MS-DOS:
- Создать 'longdirectoryinhashformat1' на NAS
- Сжать все.avi файлы в один каталог
- Переместить все сжатые (.mp4) файлы в каталог с одинаковым именем на NAS
- Удалить исходный каталог и его содержимое
- Создать 'longdirectoryinhashformat2'на NAS
- ... промойте и повторяйте до тех пор, пока на исходном компьютере ничего не останется.
Примечание. Это будет выполняться ночью в задании cron (или аналоге Windows).