He estado luchando con una biblioteca de video de más de 14TB durante los últimos meses tratando de desduplicar y ordenar todo en una estructura de carpetas lista para la producción.
Por mi parte no he podido encontrar (he pasado 3 días enteros sin dormir) un script que ordene una carpeta de archivos de vídeo, usando sus dimensiones, en carpetas Vertical y Horizontal.
Lo más parecido que he encontrado es esto -
#!/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"
Lo que me acerca a clasificarlos en carpetas en función de las dimensiones, pero no es lo que intento conseguir.
Alternativamente encontré este script para imágenes usando Imagemagick, (que instalé a través de Homebrew) sí lee los archivos, aunque los mueve TODOS al directorio de retratos. ¿Supongo que las variables pueden ser diferentes para extraer la altura y la anchura de un archivo de vídeo?
#/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
Si CUALQUIERA QUE ESTÉ AHÍ FUERA puede ayudarme con esto, para mí vale un PayPal. Sé que es un trabajo rápido para la mente correcta.
Lo mismo, si alguien tiene otra solución usando acciones de carpeta o automator o CUALQUIER otra cosa. Estoy corriendo Mac OS con terminal.
Se agradece mucho.
jason@speedheathens.com