Use o Automator para executar um comando FFmpeg (dois .SRT em um .MP4)

Use o Automator para executar um comando FFmpeg (dois .SRT em um .MP4)

Tenho o script abaixo que estou acostumado a rodar no Terminal e funciona perfeitamente. Eu só preciso ter um único .mp4arquivo e dois .srtarquivos em meu diretório de usuário e ele inserirá automaticamente as duas legendas em um novo .mp4arquivo, ao mesmo tempo que altera o codec para HVC1.

Mas eu gostaria de simplesmente selecionar 3 arquivos (dois .srte um .mp4) no Finder, obter seus nomes de arquivo, caminho e extensão e executá-los como um serviço. Como eu poderia fazer isso? Verifiquei várias opções na internet, mas não sei como fazer. Por favor, alguém poderia me ajudar?

ffmpeg -i movie-1.mp4 -i movie-2.srt -i movie-3.srt \
-map 0:v -map 0:a -map 1 -map 2 \
-c:v copy  -tag:v hvc1 -c:a copy -c:s mov_text \
-metadata:s:s:0 language=por -metadata:s:s:1 language=eng \
/Users/allanmentzingen/Desktop/output.mp4

Responder1

Coloque seu comando em uma ação "Executar Shell Script", selecione "Passar entrada: como argumentos" e use esses argumentos variáveis ​​no lugar de seus argumentos fixos:

captura de tela do fluxo de trabalho

Os bits " $1" etc. são os argumentos do script, primeiro, segundo e terceiro.

Dos tipos de “documentos” do Automator, recomendo que você use uma Ação Rápida, uma Ação de Pasta ou um Aplicativo, nesta ordem:

  1. Uma Ação Rápida exigiria que você selecionasse os três arquivos, clicasse com o botão direito no grupo e, em seguida, escolhesse o fluxo de trabalho do Automator no menu suspenso Ações Rápidas.

  2. Uma ação de pasta faria com que você vinculasse o fluxo de trabalho a uma pasta específica na qual você colocaria esses arquivos.

  3. Um aplicativo atuaria como uma gota, umminiaplicativoque é executado com os arquivos que você arrasta e solta: arraste os três arquivos para o ícone do aplicativo para executá-lo com esses arquivos como entrada.

Não vejo que esse fluxo de trabalho seja sensível à ordem dos argumentos dos arquivos. A ordem em que você seleciona os arquivos no Finder afetará a ordem das -iopções ffmpeg, mas não acho que ffmpegisso se importe neste caso. A única coisa que não tenho certeza é se o " .mp4" no nome do arquivo de saída é suficiente para ffmpegescrever a saída no formato MP4, em vez de obtê-la no primeiro -iargumento. Nesse caso, você só precisa adicionar -f mp4no início do comando.

informação relacionada