使用 Automator 執行 FFmpeg 指令(兩個 .SRT 合而為一 .MP4)

使用 Automator 執行 FFmpeg 指令(兩個 .SRT 合而為一 .MP4)

我有下面的腳本,我習慣從終端運行它,它運行得很好。我只需要在我的使用者目錄中有一個.mp4文件和兩個文件,它就會自動將兩個字幕輸入到一個新文件中,同時還將編解碼器更改為 HVC1。.srt.mp4

但我只想從 Finder 中選擇 3 個檔案(兩個.srt和一個.mp4),取得它們的檔案名稱、路徑和副檔名,然後將其作為服務運行。我怎麼能這麼做呢?我在互聯網上檢查了很多選項,但我不知道該怎麼做。請問有人可以幫助我嗎?

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

答案1

將命令放入“運行 Shell 腳本”操作中,選擇“傳遞輸入:作為參數”,然後使用這些變數參數來取代固定參數:

工作流程螢幕截圖

$1」等位是腳本的參數,第一、第二和第三。

在 Automator「文件」類型中,我建議您按順序使用快速操作、資料夾操作或應用程式:

  1. 快速操作需要您選擇三個文件,右鍵單擊該群組,然後從「快速操作」彈出式選單中選擇您的 Automator 工作流程。

  2. 資料夾操作可讓您將工作流程綁定到您將這些文件放入其中的特定資料夾。

  3. 一個應用程式將充當一個液滴,一個小程式與您拖放到其上的文件一起運行:將三個文件拖到應用程式圖標上,以將這些文件作為輸入來運行它。

我不認為此工作流程對文件參數排序敏感。您在 Finder 中選擇文件的順序將影響 的選項順序-i,但我認為在這種情況下ffmpeg並不關心。ffmpeg我唯一不確定的是.mp4輸出檔案名稱上的“”是否足以告訴ffmpeg以 MP4 格式寫入輸出,而不是從第一個-i參數獲取它。如果是這樣,那麼您只需要-f mp4在命令中儘早添加。

相關內容