2 votos

Bash script no funciona en Automator, pero trabajando desde la terminal

Tengo este script en bash que funciona perfectamente en un 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 de buscador que acepte archivos de película y el proceso usando este script. El servicio está configurado para pasar de la entrada de stdin. Cuando yo seleccione películas en el finder y ejecutar ese servicio, no pasa nada. Como he dicho, el script funciona perfectamente desde la terminal.

enter image description here

Alguna pista?


Esta pregunta que parece similar a la de ffmpeg trabajando desde la línea de comandos en Terminal, pero no en un Automator secuencia de comandos de shell! pero la aplicación de la respuesta (ruta de acceso completa a ffmpeg) no se soluciona mi problema.

2voto

SpaceDog Puntos 499

Además de especificar la ruta de acceso completa a ffmpeg dos problemas adicionales necesarios para ser resuelto:

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

  2. El pass input opción de la secuencia de comandos de shell acción as arguments.

enter image description here

El guión final es entonces este:

#!/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 "$DIRNAME"/OUTPUT_"$name"."$extension" -vf 'scale=1920:1080' "$DIRNAME"/FINAL_"$name"."$extension"


done

Observe cómo el camino fue añadido a ffmpeg y también que $DIRNAME fue añadido a los archivos de salida, que no fue mencionado por la otra pregunta.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X