找到视频文件的分辨率高度后批量重命名

找到视频文件的分辨率高度后批量重命名

尝试我的第一个脚本,进展不顺利。也许有人知道一个程序或可以帮助指出正确的方向。我想按顺序查找大量视频文件分辨率档案 - 仅高度(我知道两种方法可以实现这一点,使用 ffprobe 和 mediainfo);如果 720 或 1080 附加为后缀,在扩展名之前。如果文件不是 720 或 1080,则分为 2 个目录(650+ 和 649-)。我知道如何查找分辨率、创建目录、移动和重命名文件。我特别遇到的问题是按顺序排列多个文件,如果/和/或使用以及如何使用 ffprobe 或 mediainfo 进行重命名。谢谢。

答案1

这个简单的例子应该可以帮助你入门:

#!/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

正如您所见,该逻辑并不完美,因为它仅将高度小于 720 像素的视频移动到相应的目录中,但它显示了基本内容。(由于有待开会,没有时间对其进行改进。)此外,它不是递归的。不确定这是否是必需的。

另请参阅:

相关内容