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?
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:
LaSolicituddeelementosdelFinderactionpasaunlist
deobjetosdelsistemadearchivosalasiguienteacciónde.
LaEjecutarAppleScriptacciónutilizadisplaydialog
paraagregarlahoradeinicioylongitudalprincipiodellist
queselepasódesdePreguntaraloselementosdelFinderaction.
LaacciónEjecutarshellscriptrecibeloquesedevolviódelaacciónEjecutarAppleScript,enenestecaso,elvalordereturninput
comolist
enelquesuprimeritem
eseltextreturned
delresult
deldisplaydialog
,queeslahoradeinicioyladuración.Estoseestableceenlavariablestart_time_and_length
yluegoseusashift
paraeliminarladellist
quesepasaaforfin"$@"
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
Lea otras preguntas en las etiquetas bash command-line applescript automation automator