Используйте find
для этого.Он обрабатывает рекурсию подкаталога для вас.Например:
find . -type f -name "*.mp4" -exec ffmpeg -i {} -codec copy -acodec copy -shortest -map 0:v -map 0:m:language:eng {} \; -print
find
автоматически обработает текущий каталог и все его подкаталоги -type f
: для поиска только файлов - `-name "* .mp4": только файлы с расширением mp4
-exec COMMAND {} \;
: выполнить эту команду для всех найденных файлов.{}
будет заменено именем файла каждого файла.\;
для завершения команды. -print
: напечатает, какой файл был обработан
Что касается вашего кода, существует вероятность, что каталогне будет файлов "* .mp4", поэтому ошибка no such file or directory, stat '*.mp4'
при попадании в такой каталог.