Массовое перекодирование видео в каталог ffmpeg

У меня есть множество видео с разными вещами и разными расширениями (некоторые mp4, некоторые wmv и т. Д.).

Я хотел бы выполнить команду ниже, но для каждого видео в определенном каталоге, а затем сохранить его в другом каталоге, без перезаписи исходных файлов.

Некоторые видео могут дублироваться, если это произойдет, следует приостановить сценарий. Например, возможно, что video1.mp4 и video1.avi не могут быть video1.mp4 в /home/videos/processed processing, поэтому сценарий должен остановиться.

 ffmpeg -i '/home/videos/unprocessed/vidabc.mp4' -f mp4 -vcodec libx264 -preset fast -profile:v main -acodec aac -movflags +faststart '/home/videos/processed/vidabc.mp4' ffmpeg -i '/home/videos/unprocessed/vidxyz.mp4' -f mp4 -vcodec libx264 -preset fast -profile:v main -acodec aac -movflags +faststart '/home/videos/processed/vidxyz.mp4' 

Вы можете обработать каждый файл в каталоге, используя команду find с флагом -execdir .

Пример:

 find /home/videos/unprocessed -type f \ -execdir ffmpeg -i '{}' -f mp4 -vcodec libx264 -preset fast \ -profile:v main -acodec aac -movflags +faststart '/home/videos/processed/{}.mp4' \; 

-type f указывает, что вы хотите найти только файлы, а не каталоги.

После флага -execdir '{}' заменяется путем к файлу, например ./vidabc.mp4 .

В конце команды -execdir \; прекратить команду.

Обратите внимание, что в этом примере ваши имена файлов могут выглядеть следующим образом:

  • /home/videos/processed/vidabc.mp4.mp4
  • /home/videos/processed/vidxyz.avi.mp4
  • /home/videos/processed/vidxyz.mp4.mp4

Если это проблема, есть способы решить эту проблему. Смотрите команду «find» -exec заменяющая строка для аналогичного примера.