FFmpeg con Automator e chiedere i parametri Start e Stop

2

Uso Automator insieme a ffmpeg che funziona alla grande. Un comando di shell script viene eseguito con due parametri:

  • -ss 00:00:00 (iniziale)
  • -t 00:00:00 (durata)

D: È possibile impostare i due parametri usando una finestra popup?

    
posta Chili 05.09.2017 - 10:13
fonte

1 risposta

1

Hai chiesto " È possibile impostare i due parametri usando una finestra popup? " e la risposta è si .

Ecco un esempio di come potrebbe essere fatto:

Tra Chiedi elementi Finder azione e Esegui script shell azione aggiungi un Esegui AppleScript azione con il seguente codice AppleScript :

on run {input, parameters}
    display dialog "Enter the start time and length:" default answer "-ss 00:00:00 -t 00:00:00" buttons {"Cancel", "OK"} ¬
        with title "Set FFMPEG Start Time and Length: -ss 00:00:00 -t 00:00:00"
    set beginning of input to text returned of result
    return input
end run

Quindi nello Esegui script shell azione , modifica lo script nel seguente codice :

start_time_and_length="$1"
shift

for f in "$@"
do
    /usr/local/Cellar/ffmpeg/3.2.4/bin/ffmpeg -i "$f" $start_time_and_length -c:v copy -c:a copy -f mp4 "${f%.*}.mp4"
done

Comefunziona:

  • IlChiedielementidelFinderazionepassaunlistdioggettidelfilesystemallasuccessivaazione.

  • L'azioneEseguiAppleScriptutilizzaundisplaydialogperaggiungereoradiinizioelunghezzaaliniziodilistpassatoadessodalChiediaglielementidelFinderazione.

  • IlEseguiscriptdishellazionericeveciòcheèstatorestituitodall'azioneEseguiAppleScript,ininquestocasoilvaloredireturninputcomelistincuiilsuoprimoitemèiltextreturneddalresultdidisplaydialog,essendol'oradiinizioelalunghezza.Questovieneimpostatosullastart_time_and_lengthvariabileequindivieneutilizzatoshiftperrimuoverlodallistchevienepassatoaforfin"$@" per elaborare il items rimanente in list .

Nota. Se riscontri un problema con il codice AppleScript , mostrato sopra, puoi utilizzare quanto segue come soluzione alternativa:

on run {input, parameters}
    set tempList to {}
    display dialog "Enter the start time and length:" default answer "-ss 00:00:00 -t 00:00:00" buttons {"Cancel", "OK"} ¬
        with title "Set FFMPEG Start Time and Length: -ss 00:00:00 -t 00:00:00"
    set end of tempList to text returned of result
    repeat with i from 1 to (count of input)
        set end of tempList to item i of input
    end repeat
    copy tempList to input
    return input
end run
    
risposta data 05.09.2017 - 17:08
fonte

Leggi altre domande sui tag