FFmpeg com Automator e pergunte os parâmetros Start e Stop

2

Eu uso o Automator junto com o ffmpeg, o que funciona muito bem. Um comando de script de shell é executado com dois parâmetros:

  • -ss 00:00:00 (iniciando)
  • -t 00:00:00 (duração)

P: É possível definir os dois parâmetros usando uma janela pop-up?

insira a descrição da imagem aqui

Pimenta
fonte

Respostas:

1

Você perguntou " É possível definir os dois parâmetros usando uma janela pop-up? " E a resposta é sim .

Aqui está um exemplo de como isso pode ser feito:

Entre a ação Solicitar Itens do Finder e a ação Executar Script do Shell , adicione uma ação Executar AppleScript com o seguinte código AppleScript :

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

Em seguida, na ação Executar Script do Shell , altere o script para o seguinte 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

Fluxo de trabalho do Automator


Como isso funciona:

  • A ação Solicitar itens do Finder passa um dos objetos do sistema de arquivos para a próxima ação .list

  • A ação Executar AppleScript usa a para adicionar a hora e o comprimento de início ao início da passagem a partir da ação Solicitar itens do Finder .display dialoglist

  • O Run Shell Script ação recebe o que foi retornado do Run AppleScript ação , neste caso, o valor de return inputcomo um listem que o seu primeiro itemé o text returneddo resultdo display dialog, sendo o horário de início e duração. Isso é definido como a start_time_and_length variável e, em seguida, shifté usado para removê-lo do listque é passado for f in "$@"para processar o restante itemsno list.


Nota: Se você tiver um problema ao usar o código AppleScript , mostrado acima, poderá usar o seguinte como solução 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
user3439894
fonte
O AppleScript funciona perfeitamente. Eu tento resolver os dois valores com duas janelas de entrada separadas, mas ainda é perfeito. Obrigado pelo seu tempo!
Chili