Estoy tratando de automatizar el proceso de conversión de video usando la versión CLI de Automator y Handbrake. Estoy tratando de implementar la funcionalidad de que cada vez que un video se descarga en mi carpeta de Dropbox en mi PC, se convierte y se coloca en otra carpeta. Actualmente lo estoy probando con una carpeta de prueba (no en Dropbox, así que solo estoy copiando archivos para probar). Cuando se pone un solo archivo o varios archivos en la carpeta simultáneamente, funciona. Pero cuando pongo un archivo (o muchos) y el script se está ejecutando, es decir, la conversión de los videos y pongo otro archivo en la carpeta, entonces ese nuevo archivo nunca se llama para que el nuevo video no se convierta.
Entonces, ¿cómo puedo lograr esta funcionalidad que cuando el script se está ejecutando y se agrega un nuevo archivo, se inicia otra instancia del script para el nuevo archivo.
Y también el nuevo archivo se guarda con solo la primera palabra en el nombre si el nombre tiene muchas palabras (es decir, se rompe en el espacio)
Aquí está la captura de pantalla de mi configuración de automatizador:
Gracias de antemano por tu ayuda.
Aquí está mi script de ejecutar script de shell como usted preguntó @: Tony Williams
for f in "$@"
do
Applications/HandBrakeCLI -i "$f" -t 1 --angle 1 -c 1 -o "/Users/abc/Desktop/TestVidDest/$(basename $f)" -f mp4 -4 -O --decomb="fast" -w 1280 -l 720 --modulus 16 -e x264 -b 3800 -2 -T --cfr -a 1 -E faac -6 dpl2 -R 48 -B 128 -D 0 --gain 0 --audio-fallback ffac3 --x264-preset=slow --x264-profile=high --x264-tune="film" --h264-level="4.0" --verbose=1
done
fuente
for
bucle consleep 30 && mv "$f" /tmp
y ver si se copian todos los archivos o solo los que se colocan primero?for i in "$@" ...
debería quedar obsoleto ...Respuestas:
Proceso en segundo plano
Idealmente, su secuencia de comandos debe completarse lo más rápido posible. La forma más fácil es separar el procesamiento de las películas en procesos en segundo plano. Puede hacer esto agregando un espacio y un ampersand
&
al final de suHandBrakeCLI
línea.Mover antes de procesar
Sin embargo, esto no resuelve el problema de los nuevos archivos que se ignoran. De hecho, sus archivos ahora podrían procesarse dos veces si el procesamiento no se completa antes de que aparezca el siguiente archivo nuevo.
Su secuencia de comandos debe mover cada archivo nuevo a otra carpeta no supervisada antes de que comience el procesamiento. Considere agregar un
mv
comando antes de suHandBrakeCLI
línea. Alternativamente, puede hacer que Automator realice el movimiento.Lo ideal es que la carpeta de destino esté en la misma unidad, por lo que se completa rápidamente y no retrasa el script.
fuente
Recomiendo encarecidamente el script de transcodificación de video de Don Melton (ex jefe de Apple Safari) para convertir archivos de video. El tema y el guión se tratan en profundidad en el podcast Vector de iMore, episodio 22 .
Para automatizar, el script podría estar envuelto en una Acción de carpeta, o ver el comentario de Don's Gist (24 de junio) sobre cómo realiza las transcodificaciones por lotes.
fuente
También tenga en cuenta que hubo / hay HandBreakeBatch que, como su nombre indica, está destinado a realizar el procesamiento por lotes de HandBreak.
Pero como dice el desarrollador en su sitio web http://www.osomac.com/2013/08/08/handbrake-adds-real-batch-processing/
Habdbreak ahora debería admitir el procesamiento por lotes por ellos mismos.
fuente