.png)
У меня есть скрипт ниже, который я привык запускать из Терминала, и он отлично работает. Мне просто нужно иметь один .mp4
файл и два .srt
файла в моем пользовательском каталоге, и он автоматически вставит оба субтитра в новый .mp4
файл, а также изменит кодек на HVC1.
Но я хотел бы просто выбрать 3 файла (два .srt
и один .mp4
) из Finder, получить их имена файлов, путь и расширение и запустить это как службу. Как я могу это сделать? Я проверил кучу вариантов в интернете, но я не знаю, как это сделать. Пожалуйста, кто-нибудь может мне помочь?
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
Поместите команду в действие «Выполнить сценарий оболочки», выберите «Передать входные данные: как аргументы», затем используйте эти переменные аргументы вместо фиксированных аргументов:
Биты " $1
" и т. д. — это аргументы скрипта: первый, второй и третий.
Из типов «документов» Automator я бы рекомендовал вам использовать Быстрое действие, Действие папки или Приложение в следующем порядке:
Для быстрого действия вам потребуется выбрать три файла, щелкнуть правой кнопкой мыши по группе, а затем выбрать рабочий процесс Automator из всплывающего меню «Быстрые действия».
Действие папки позволит вам привязать рабочий процесс к определенной папке, в которую вы будете помещать эти файлы.
Приложение будет действовать как капля,апплеткоторое запускается с файлами, которые вы перетаскиваете на него: перетащите три файла на значок приложения, чтобы запустить его с этими файлами в качестве входных данных.
Я не вижу, чтобы этот рабочий процесс был чувствителен к порядку аргументов файлов. Порядок выбора файлов в Finder повлияет на порядок параметров -i
, ffmpeg
но не думаю, ffmpeg
что это имеет значение в данном случае. Единственное, в чем я не уверен, — .mp4
достаточно ли " " в имени выходного файла, чтобы указать, ffmpeg
что вывод нужно записать в формате MP4, а не получать его из первого -i
аргумента. Если так, то вам просто нужно добавить -f mp4
в начале команды.