Come posso fare in modo che un servizio di Automator esegua uno script di shell e mostri l'output?

5

Uso Automator per eseguire uno script di shell (ffmpeg transcodifica in h264) come un 'servizio', così posso fare semplicemente clic con il pulsante destro del mouse sul file .mov ad alta risoluzione e selezionare il servizio. Funziona bene, ma dato che è ffmpeg sarebbe bello vedere l'output in una finestra di Terminale. C'è un modo per vedere l'output in tempo reale?

Non dovrebbe fare la differenza, ma ecco lo script per ogni evenienza:

for f in "$@"
do
/usr/local/bin/ffmpeg -i "$f" -c:v libx264 -vf yadif -pix_fmt yuv420p -crf 21 -preset slow -movflags faststart -c:a copy ${f%.*}_h264_yadif.mov
done
    
posta user1148106 26.08.2014 - 13:11
fonte

2 risposte

4

Questo AppleScript avvierà una finestra di Terminale con il comando specificato:

on run {input, parameters}
    tell application "Terminal"
        activate
        set filesString to ""
        repeat with file_ in input
            set filesString to filesString & " " & quoted form of (POSIX path of file_)
        end repeat
        do script "for f in" & filesString & "; do
/usr/local/bin/ffmpeg -i \"$f\" -c:v libx264 -vf yadif -pix_fmt yuv420p -crf 21 -preset slow -movflags faststart -c:a copy ${f%.*}_h264_yadif.mov
done"
    end tell
    return input
end run

Crea un'azione "Esegui AppleScript" in Automator e incollala lì.

    
risposta data 28.08.2014 - 21:12
fonte
4

La soluzione semplice e pulita è visualizzare il messaggio tramite il Centro notifiche. Basta eseguire il seguente comando del terminale nel tuo script.

osascript -e 'display notification "All files converted" with title "ffmpeg converter"'
Il comando

'osascript' esegue qualsiasi AppleScript dal terminale, 'notifica di visualizzazione' fa apparire una bella notifica.

Inoltrepuoiusare'avvisodisplay'.NonhalimitidilunghezzadelmessaggioedèfacileaggiungereilpulsanteOKadesso.

osascript-e'setalertResulttodisplayalert"Bad news :( Error converting your video file." buttons {"OK"} as warning'

Qui è riferimento ai comandi di Apple Script. Cerca "notifica display" e "avviso display" per ulteriori informazioni.

    
risposta data 28.08.2014 - 11:11
fonte

Leggi altre domande sui tag