Файл всегда пропускается и никогда не кодируется.
аюсь выполнить команду find bash для обработки сотен видеофайлов с именамиvideo-original.mp4
но находятся в подкаталогах родительского каталога.
Вот пример структуры каталогов:
videos
├── 01a
│ └── video-original.mp4
├── 01b
│ └── video-original.mp4
├── 02a
│ └── video-original.mp4
├── 02b
│ └── video-original.mp4
├── 03a
│ └── video-original.mp4
└── 03b
└── video-original.mp4
Я использую следующую команду:
find ./ -name 'video-original.mp4' -exec bash -c 'ffmpeg -i "$0" -f mp4 -vcodec libx264 -preset veryslow -profile:v high -acodec aac -movflags faststart video.mp4 -hide_banner' {} \;
У меня проблема в том, что он сохраняет файлvideo.mp4
в родительскомvideos
каталог, а не в подкаталоге рядом с оригиналомvideo-original.mp4
После этого я хочу удалить файлvideo-original.mp4
, В настоящее время мой процесс влечет за собой ожидание перекодирования всех видео, а затем, после его завершения, ввод отдельной команды для удаления файлаvideo-original.mp4
:
find ./ -name 'video-original.mp4' -exec bash -c 'rm -rf "$0"' {} \;
И мой последний шаг будет извлечь скриншот новогоvideo.mp4
в 10 секунд и сохранить его какthumbnail.jpg
, Опять же, в настоящее время я делаю это как отдельный шаг, который я выполняю после завершения двух предыдущих шагов.
find ./ -name 'video.mp4' -exec bash -c 'ffmpeg -i "$0" -ss 00:00:10 -vframes 1 thumbnail.jpg' {} \;
То, что я хотел бы сделать, это объединить эти три шага в одну команду, чтобы конечный результат был:
videos
├── 01a
│ ├── thumbnail.jpg
│ └── video.mp4
├── 01b
│ ├── thumbnail.jpg
│ └── video.mp4
├── 02a
│ ├── thumbnail.jpg
│ └── video.mp4
├── 02b
│ ├── thumbnail.jpg
│ └── video.mp4
├── 03a
│ ├── thumbnail.jpg
│ └── video.mp4
└── 03b
├── thumbnail.jpg
└── video.mp4
Наконец, было бы здорово сохранить это как скрипт bash и включить его в мой путь в/usr/local/bin
или же~/bin
как исполняемый файл, чтобы я мог просто выдать командуreencode
и это побежит. Было бы еще лучше, если бы входной файл мог иметь любой видеофайл, например,random_name.mp4
или жеrandom_name.mov
или жеrandom_name.webm
в основном любой видео файл (но пропускаяvideo.mp4
на этапе кодирования).