1 votes

Exécution de FFmpeg dans Automator/AppleScript

J'ai écrit un script apple précédemment pour automatiser une tâche que je fais dans mon travail plusieurs fois.

Avec la mise à jour d'Apple vers Catalina, je vais perdre l'utilisation de Quicktime 7 (qui fait partie de mon flux de travail de séquençage d'images) Je veux profiter de l'occasion pour réécrire mon script.

J'y vais étape par étape et la première est de lancer FFmpeg.

J'ai écrit un script :

ffmpeg -r 25 -f image2 -pattern_type glob -i '*.JPG' -codec:v prores_ks -profile:v 0 imagemagick_TL_Test_01.mov

Cela fonctionne dans Terminal si je navigue vers le dossier et que je l'exécute. Super.

Je veux maintenant trouver un moyen de rendre l'action drag and dropable.

J'ai essayé d'adapter mon ancien code pour inclure ceci à la section appropriée pour exécuter le ffpmeg sur le dossier déposé mais j'ai rencontré erreur après erreur. L'idéal serait de renommer le fichier de sortie pour qu'il porte le nom du dossier grand-parent et de le sauvegarder dans le dossier parent.

on open dd

    repeat with d in dd
        set d to d's contents
        tell application "Finder"
            set seq1 to (d's file 1 as alias)
            set dparent to d's container as alias
            set mov to "" & dparent & (dparent's name) & ".mov"
        end tell
        do shell script "d=" & d's POSIX path's quoted form & "
    /opt/local/bin/ffmpeg -r 25 -f image2 -i \"" & seq1 & "\" '*.JPG' -codec:v prores_ks -profile:v 0 \"" & dparent & ".mov\" && exit
    "
    end repeat
end open

Cela me donne l'erreur :

[image2 @ 0x7ff9cd000000] Could find no file with path '***:Users:***:Desktop:imagemagick_TL_Test:01:_DAN7741.JPG' and index in the range 0-4
***:Users:***:Desktop:imagemagick_TL_Test:01:_DAN7741.JPG: No such file or directory

Tout conseil serait grandement apprécié ! Je vous remercie !

1voto

Kerry Jones Points 145

Lorsqu'on programme, il est important de prévoir un plan pour déboguer son code. Voici comment j'aurais codé le code pour le déboguer.

Il est difficile de déboguer un gestionnaire d'ouverture. J'ajoute un gestionnaire on run où je peux simplifier l'entrée vers une routine commune qui est appelée par on run et on open. fyi : J'ai corrigé la façon dont l'entrée était traitée par on open.

(* 
   AskDifferent question:
     https://apple.stackexchange.com/questions/366992/running-ffmpeg-in-automator-applescript
 Use log statements.

 It is easier to diagnose problems with debug information. I suggest adding log statements to your script to see what is going on.  Here is an example.

For testing, run in the Script Editor.
    1) Click on the Event Log tab to see the output from the log statement
    2) Click on Run

 *)
on run
    --  debug lines
    set desktopPath to (path to desktop) as string

    -- here is a log statment.
    log "desktopPath = " & desktopPath

    -- Be sure to select a file on your DESKTOP.
    set see to alias (desktopPath & "auto-show-2015.mp4")

    -- Simulate dropped items list.
    set dropped_items to {see}

    common(dropped_items)

end run

-- Gets invoked here when something is dropped on this AppleScript icon

on open dropped_items

    common(dropped_items)

end open

on common(dd)

    repeat with d in dd
        set d to d's contents
        log d
        tell application "Finder"
            --set seq1 to (d's file 1 as alias)  -- dropped items come in as an array of aliased items. 
            set seq1 to d
            set dparent to d's container as alias
            set mov to "" & dparent & (dparent's name) & ".mov"
            log "mov is " & mov
        end tell

        set toUnix to "d=" & d's POSIX path's quoted form & " /opt/local/bin/ffmpeg -r 25 -f image2 -i \"" & seq1 & "\" '*.JPG' -codec:v prores_ks -profile:v 0 \"" & dparent & ".mov\" && exit
    "
        log "toUnix is " & toUnix
        set fromUnix to do shell script toUnix
        log "fromUnix is " & fromUnix
    end repeat
end common

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X