FFmpeg con Automator y pregunte los parámetros Iniciar y Detener

2

Yo uso Automator junto con ffmpeg que funciona muy bien. Un comando de script de shell se ejecuta con dos parámetros:

  • -ss 00:00:00 (inicio)
  • -t 00:00:00 (duración del tiempo)

P: ¿Es posible configurar los dos parámetros usando una ventana emergente?

    
pregunta Chili 05.09.2017 - 10:13

1 respuesta

1

Preguntó " ¿Es posible configurar los dos parámetros usando una ventana emergente? " y la respuesta es sí .

Este es un ejemplo de cómo se podría hacer:

Entre la Solicitud de elementos del Finder acción y la Ejecución del script de shell acción agregue una Ejecute AppleScript acción con el siguiente AppleScript código :

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

Luego, en la Ejecución del script de shell , cambie el script al siguiente código :

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

Cómofuncionaesto:

  • LaSolicituddeelementosdelFinderactionpasaunlistdeobjetosdelsistemadearchivosalasiguienteacciónde.

  • LaEjecutarAppleScriptacciónutilizadisplaydialogparaagregarlahoradeinicioylongitudalprincipiodellistqueselepasódesdePreguntaraloselementosdelFinderaction.

  • LaacciónEjecutarshellscriptrecibeloquesedevolviódelaacciónEjecutarAppleScript,enenestecaso,elvalordereturninputcomolistenelquesuprimeritemeseltextreturneddelresultdeldisplaydialog,queeslahoradeinicioyladuración.Estoseestableceenlavariablestart_time_and_lengthyluegoseusashiftparaeliminarladellistquesepasaaforfin"$@" para procesar el items restante en el list .

Nota: si tiene un problema con el AppleScript código , que se muestra arriba, puede usar lo siguiente como solución 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
    
respondido por el user3439894 05.09.2017 - 17:08

Lea otras preguntas en las etiquetas