Utilizzando l'automatore e il freno a mano cli per convertire i video in modo automatico

Sto provando ad automatizzare il process di conversione video utilizzando la versione CLI Automator e Handbrake. Sto cercando di implementare la funzionalità che each volta che un video viene scaricato nella mia cartella dropbox sul mio PC viene convertito e inserito in un'altra cartella. Attualmente sto provando con una cartella di prova (non in dropbox quindi sto copiando i file su di esso per testare). Quando un mette un singolo file o più file nella cartella contemporaneamente funziona. Ma quando ho messo un file (o molti) e lo script sta eseguendo cioè la conversione dei video e ho messo un altro file nella cartella, allora per quel nuovo script di file non viene mai chiamato in modo che il nuovo video non sia convertito.

Quindi, come posso raggiungere questa funzionalità quando si esegue lo script e aggiunge un nuovo file, viene avviata un'altra istanza di script per il nuovo file.

E anche il nuovo file salva con solo la prima parola nel nome se il nome ha molte parole (cioè la rottura dello spazio)

Ecco lo screenshot della mia configuration dell'automazione:

Immagine di Automator

Grazie in anticipo per il vostro aiuto.

Ecco il mio script da eseguire script shell come hai chiesto @: Tony Williams

for f in "[email protected]" 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 

Processo in background

Idealmente, il tuo script deve completare il più rapidamente ansible. Il modo più semplice è quello di spin off l'elaborazione dei filmati nei processi di background. È ansible farlo aggiungendo uno spazio e un ampersand & alla fine della linea HandBrakeCLI .

Sposta prima dell'elaborazione

Tuttavia, questo non risolve il problema dei nuovi file che vengono ignorati. Infatti, i file potrebbero ora essere elaborati due volte se l'elaborazione non è terminata prima che venga visualizzato il nuovo file successivo.

Il tuo script deve spostare each nuovo file in un'altra cartella non monitorata prima dell'inizio dell'elaborazione. Si consideri l'aggiunta di un command mv prima della linea HandBrakeCLI . In alternativa, è ansible che Automator esegua la mossa.

La cartella di destinazione deve essere idealmente sulla stessa unità, pertanto è completa e non ritarda lo script.

Vi consiglio vivamente lo script di transcode-video di Don Melton (ex capo di Safari Apple) per la conversione di file video. L'argomento e lo script sono trattati in profondità sul podcast Vector di iMore, l' episodio 22 .

Per automatizzare, lo script potrebbe essere avvolto in un'azione di cartella o vedere il commento di Don's Gist (24 giugno) su come trasforma i bit in batch.

Ricorda inoltre che c'era / è HandBreakeBatch che, come il nome indica, è destinato a fare l'elaborazione batch HandBreak.

Ma come dice lo sviluppatore sul suo sito web http://www.osomac.com/2013/08/08/handbrake-adds-real-batch-processing/

Habdbreak ora dovrebbe sostenere l'elaborazione batch da loro selfes.