Пакетное переименование видеофайлов после определения высоты разрешения

Пробую мой первый сценарий, но не все гладко. Может быть, кто-то знает о программе или может помочь указать в правильном направлении. Я хочу последовательно найти большой архив разрешений видеофайлов - только высоту (я знаю 2 способа сделать это, используя ffprobe и mediainfo); если 720 или 1080 добавляются как суффикс, предшествующий расширению. Если файл не 720 или 1080, разделите его на 2 каталога (650+ и 649-). Я знаю, как найти разрешение, создавать каталоги, перемещать и переименовывать файлы. У меня возникли проблемы, особенно с несколькими файлами в последовательном порядке, если / и / или использовать и как конвейер для переименования с помощью ffprobe или mediainfo. Спасибо.

1
задан 20 July 2020 в 04:53

1 ответ

This simplistic example should get you started:

#!/bin/bash

if [ ! -d "650+" ] && [ ! -d "649-" ]; then
  mkdir "650+" "649-"
fi

for f in *.mp4
do
height=$(ffprobe -v error -show_entries stream=height -of csv=p=0 "$f")
if [ "$height" -eq 1080 ] || [ "$height" -eq 720 ]; then
  mv "$f" "${f%.*}_$height.${f##*.}"
fi
if [ "$height" -lt 650 ]; then
  mv "$f" "649-"
else
  mv "$f" "650+"
fi

done

As you can see the logic isn't perfect because it only moves videos with a height less than 720 px into the appropriate directories, but it shows the basics. (Ran out of time to make it better due to a pending meeting.) Also, it's not recursive. Wasn't sure if that was a requirement.

Also see:

2
ответ дан 30 July 2020 в 22:05

Другие вопросы по тегам:

Похожие вопросы: