FFmpeg avec Automator & ask Paramètres de démarrage et d'arrêt

2

J'utilise Automator avec ffmpeg qui fonctionne très bien. Une commande de script shell est exécutée avec deux paramètres:

  • -ss 00:00:00 (à partir de)
  • -t 00:00:00 (durée)

Q: Est-il possible de définir les deux paramètres à l'aide d'une fenêtre contextuelle?

entrez la description de l'image ici

le Chili
la source

Réponses:

1

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

Flux de travail Automator


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
utilisateur3439894
la source
Les deux AppleScript fonctionnent parfaitement. J'essaie de résoudre les deux valeurs avec deux fenêtres de saisie distinctes, mais c'est toujours parfait. Merci pour votre temps!
Chili