¿Los elementos del Buscador de filtros del automatizador pueden procesar música según la duración?

1

Quiero hacer un flujo de trabajo de automatización para encontrar ciertos archivos de audio en una carpeta, pero quiero que mire la duración de esos archivos. Estoy buscando muestras de audio bastante cortas de menos de 2 segundos. No parece tener la capacidad de filtrar por duración. ¿Hay alguna otra manera de lograr esto en Automator?

Alternativamente, puedo crear fácilmente una carpeta inteligente que contenga lo que estoy buscando, pero luego Automator no puede encontrar el contenido de dicha carpeta inteligente para poder manipularlos aún más. ¿Hay alguna forma de obtener el contenido de una carpeta inteligente en Automator?

    
pregunta Jonathan van Clute 18.04.2017 - 02:49

1 respuesta

2

Supongamos que tiene alguna acción que pasa de archivos a Elementos del buscador de filtros acción , establecida como Buscar archivos donde: Todas las siguientes son verdaderas y Kind is music .

Esto asegura lo que se pasa a la siguiente acción , una Ejecutar script de shell acción , establecida como Shell: / bin / bash y Pasar información como argumentos son archivos de música.

Reemplace el código predeterminado en la Ejecución del script de shell , con la configuración anterior, con el siguiente código :

for f in "$@"; do
    d="$(afinfo -r "$f" | awk '/estimated duration:/{print int($3)}')"
    if [[ $d -lt 2 ]]; then
        echo "$f"
    fi
done

Los resultados del código anterior deben ser el nombre de ruta completo de los archivos de música con menos de 2 segundos de duración y se pasan a la siguiente acción como lista .

Para dirigir su segundo comentario a mi respuesta original, use el siguiente código en lugar del código anterior:

for f in "$@"; do
    d="$(afinfo -r "$f" | awk '/estimated duration:/{print $3}')"
    if (( $(echo "1.5 > $d" | bc -l) )); then
        echo "$f"
    fi
done
    
respondido por el user3439894 18.04.2017 - 07:07

Lea otras preguntas en las etiquetas