Intereting Posts
Создание команд с переменным расширением в цикле Установленный Linux, теперь Windows больше не загружается Какова цель каталога pts в linux Как minicom «постоянно» переводит входящую новую строку (\ n) в CR + LF? Что требуется POSIX для цитирования здесь документов внутри подстановки команд? Количество слов из файла с оболочкой Linux Как отправить надстройку stdout в multilog и второй процесс Linux переустанавливает порядок событий для включения ffmpeg Как изменить права доступа к файлам для вновь созданных файлов в каталоге больших файлов Mercurial? Почему диапазон расширения скобок использует две точки вместо трех (эллипсис)? Диск является узким местом. Фоновые процессы ухудшают ситуацию. Как улучшить отзывчивость? Конфигурация ssh без запроса пароля Проблема с установкой phpmyadmin Самый быстрый метод хэширования в OpenWRT? Определение переменной в bash с использованием локального ключевого слова

Массовое перекодирование видео в каталог 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 заменяющая строка для аналогичного примера.