Réponses:
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 listdes objets du système de fichiers à l'autre l' action .
La course AppleScript l' action utilise un display dialogpour ajouter le temps de démarrage et la longueur au début du listpassé 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 inputcomme listdans lequel sa première itemest le text returneddu resultdu display dialog, étant l'heure de début et la durée. Cela se prépare à la start_time_and_length variable de puis shiftest utilisé pour le retirer de la listqui est transmis à for f in "$@"pour traiter le reste itemsdans 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