El script de Bash no funciona en Automator pero funciona desde la terminal

1

Tengo este script de bash que funciona perfectamente en la terminal

#!/bin/bash

for f in "$@"; do

  DIRNAME="$(dirname "$f")"

  filename=$(basename "$f")
  name="${filename%.*}"
  extension="${filename##*.}"

  /usr/local/bin/ffmpeg -i "$f" -filter_complex 'scale=1920:1080, pad=2134:1200:107:60' "$DIRNAME"/OUTPUT_"$name"."$extension"
  /usr/local/bin/ffmpeg -i OUTPUT_"$name"."$extension" -vf 'scale=1920:1080' FINAL_"$name"."$extension"

 done

Estoy tratando de crear un servicio para el buscador que acepte archivos de películas y los procese usando este script. El servicio está configurado para pasar la entrada a la entrada estándar. Cuando selecciono películas en el buscador y ejecuto ese servicio, no pasa nada. Como dije, el script funciona perfectamente desde la terminal.

¿Algunapista?

Estapreguntaessimilara ffmpeg trabajando desde la línea de comandos en Terminal pero no en un script de Automator shell , pero aplicar la respuesta (ruta completa a ffmpeg ) no resolvió mi problema.

    
pregunta SpaceDog 21.11.2015 - 20:04

1 respuesta

1

Además de especificar la ruta completa a ffmpeg , se deben resolver dos problemas adicionales:

  1. La ruta a los archivos de salida también son necesarios.

  2. La opción pass input de la acción del script de shell se debe configurar as arguments .

Elguiónfinalesesto:

#!/bin/bashforfin"$@"; do

  DIRNAME="$(dirname "$f")"

  filename=$(basename "$f")
  name="${filename%.*}"
  extension="${filename##*.}"

  /usr/local/bin/ffmpeg -i "$f" -filter_complex 'scale=1920:1080, pad=2134:1200:107:60' "$DIRNAME"/OUTPUT_"$name"."$extension"
  /usr/local/bin/ffmpeg -i "$DIRNAME"/OUTPUT_"$name"."$extension" -vf 'scale=1920:1080' "$DIRNAME"/FINAL_"$name"."$extension"


done

Observe cómo se agregó la ruta a ffmpeg y también que $DIRNAME se agregó a los archivos de salida, que no fue mencionado por la otra pregunta.

    
respondido por el SpaceDog 22.11.2015 - 00:42

Lea otras preguntas en las etiquetas