Vous avez demandé " Est-il possible de définir les deux paramètres à l'aide d'une fenêtre contextuelle? " Et la réponse à cette question est oui .
Voici un exemple de la façon dont cela pourrait être fait:
Entre le demander Finder articles l' action et l' exécution de script Shell l' action ajouter une course AppleScript l' action avec ce qui suit AppleScript Code :
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
Ensuite, dans l' action Exécuter un script Shell , remplacez le script par le code suivant :
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
Comment ça marche:
Le Demander Finder articles l' action passe un list
des objets du système de fichiers à l'autre l' action .
La course AppleScript l' action utilise un display dialog
pour ajouter le temps de démarrage et la longueur au début du list
passé lui de la question du Finder articles l' action .
Le script Shell Run l' action reçoit ce qui a été renvoyée de la course AppleScript l' action , dans ce cas , la valeur de return input
comme list
dans lequel sa première item
est le text returned
du result
du display dialog
, étant l'heure de début et la durée. Cela se prépare à la start_time_and_length
variable de puis shift
est utilisé pour le retirer de la list
qui est transmis à for f in "$@"
pour traiter le reste items
dans le list
.
Remarque: Si vous rencontrez un problème d'utilisation du code AppleScript , présenté ci-dessus, vous pouvez utiliser les solutions suivantes pour contourner le problème :
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