Я только что установил »FileManager-Actions«
Теперь я пытаюсь получить команду, работающую для объединения JPG-файла (его всегда 1920x1080px) с MP3-файлом в MP4-файл.
Обычно эта команда используется в терминале, чтобы сделать это:
ffmpeg -r 1 -loop 1 -i image.jpg -i audio.mp3 -acodec copy -r 1 -shortest -vf scale=1920:1080 video.mp4
Но я действительно не понимаю, как сделать возможным с FileManager-Actions, что я мог бы просто выбрать JPG-файл и MP3-файл и выполните команду для создания MP4-файла, как в моей команде ранее.
Я знаю, что мне придется изменить это »image.jpg« и »audio.mp3« в моей команде. Но во что ???
Спасибо!
В действиях Filemanager используются те же символы-заполнители , что и в файлах запуска .desktop. Это может ответить на ваш вопрос, какие символы-заполнители использовать.
%F
- это заполнитель, который возвращает все выбранные файлы в отдельных строках. В самом простом, но не надежном способе вам потребуется дисциплина для выбора сначала аудиофайла, а затем файла изображения (или наоборот). Затем вы читаете первый файл из %F
в переменную AUDIO, а второй файл - в переменную PICTURE. Наконец, вы выполняете команду, подставляя $ AUDIO "для аудиофайла и" $ PICTURE "для файла изображения. Используйте кавычки, чтобы пробелы в именах файлов обрабатывались правильно.
Чтобы сделать его более надежным, вы может потребоваться добавить еще немного кода для проверки и подготовки сценария перед выполнением действительной команды для присоединения файлов путем чтения и анализа списка файлов. Это также может иметь преимущество в том, что можно выбирать файлы аудио и изображений в любом порядке. и предотвратит непредвиденные проблемы, если будут выбраны неподходящие файлы.
Таким образом, ваш скрипт должен:
zenity
для этого), если это не так; file
здесь полезна), и назначьте каждое из имен файлов соответствующая переменная, т. е. AUDIO для музыкального файла и PICTURE для изображения. Сгенерируйте ошибку и выйдите, если (один из ) выбранные файлы недействительны. Если все это хорошо, сценарий продолжает выполнение команды.