过去几个月,我一直在努力处理 14TB + 视频库,尝试对其进行重复数据删除,并将其整理到可用于生产的文件夹结构中。
我一生都无法找到(花了整整三天时间没有睡觉)一个脚本,可以根据视频文件的尺寸将其文件夹排序为纵向和横向文件夹。
我发现最接近的是这个 -
#!/bin/bash
shopt -s nullglob
for f in *.{mp4,MP4,mov,MOV,m4v,M4V}
do
height=`mdls -raw -name kMDItemPixelHeight "$f"`
width=`mdls -raw -name kMDItemPixelWidth "$f"`
mkdir -p "${height}x${width}"
mv "$f" "${height}x${width}"/
printf "File: $f\n"
printf "> Dimensions: $height x $width \n\n"
done
printf "All done! \n"
通过根据尺寸将它们分类到文件夹中,我可以更接近答案,但这不是我想要实现的。
另外,我发现这个使用 Imagemagick 的图像脚本(我通过 Homebrew 安装)确实会读取文件,尽管它会将它们全部移动到画像目录中。我假设从视频文件中提取高度和宽度的变量可能不同?
#/bin/zsh
mkdir -p portraits
mkdir -p landscapes
for f in ./*.mp4
do
r=$(identify -format '%[fx:(h/w)]' "$f")
if [[ r < 1.0 ]]
then
echo "Portrait detected."
mv "$f" ./portraits/
elif [[ r > 1.0 ]]
then
echo "Landscape detected."
mv "$f" ./landscapes/
fi
done
如果有人有其他解决方案,可以使用文件夹操作或自动程序或任何其他方法。我正在运行带有终端的 Mac OS。