Используйте для цикла. Этот пример предназначен для bash и использует манипулирование переменными bash , но его можно адаптировать для других оболочек типа unix/linux.
Примечание: это предполагает, что вы находитесь в каталоге с файлами, и что видео- и аудиофайлы присутствуют с одинаковыми именами, отличающимися только расширением (.m4v - видео, .m4a - аудио).
for v in *.m4v; do ffmpeg -i "${v}" -i "${v//.m4v/.m4a}" -acodec copy -vcodec copy "${v//.m4v/.mp4}"; done
объяснение
for v in *.m4v Выполните следующие действия для каждого файла, заканчивающегося на «.m4v». v - это имя переменной, которая будет присваиваться каждому видеофайлу в текущем каталоге, по одному, bash . bash автоматически преобразует *.m4v в список файлов .m4v в текущем каталоге и передает их в цикл for. Вам не нужно вводить имена файлов вручную.
Переменная v содержит разные имена видеофайлов на каждой итерации цикла, например, "video_file_1.m4v" , затем "video_file_2.m4v" и т.д. ${v//pattern/replacement} replace } сообщает bash найти вхождения pattern и заменить их с replacement . Например, ${v//.m4v/.mp4} преобразует имя файла "video_file_1.m4v" в "video_file_1.mp4" .