Найдите в подпапках файлы mp4 с определенными именами файлов и извлекайте из них фреймы каждую секунду с помощью ffmpeg - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть папка с несколькими подпапками, которые содержат файлы mp4.
Я хочу извлекать кадры из этих файлов mp4 каждую секунду, но только файлов mp4, которые содержат "abc" в имени файла .
Эти кадры должны быть сохранены в отдельной папке «images» с именами, в которых есть количество кадров соответствующего видео.

Структура файла с папками и подпапками, и как я представляю себе имя файлафреймов:

|main_folder
|
├── folder1 
|   ├── abc123.mp4
|   └── xyz123.mp4
├── folder2
|   ├── abc456.mp4
|   └── xyz456.mp4
|       ├── folder2.1
|          └──abc183.mp4
|          └──xyz183.mp4
├── folder3
|   ├── abc789.mp4
|   └── xyz789.mp4
├── images
    ├── video1-frame1.jpg
    ├── video1-frame30.jpg
    ├── video1-frame60.jpg
     ...
    ├── video2-frame1.jpg
    ├── video2-frame30.jpg
    ├── video2-frame60.jpg

Пока у меня есть только это, и я не могу получить больше: (

for file in *.mp4; do ffmpeg -i "$file" -vf fps=1 -q:v 3 "images/${i%.*}_frames%d.jpg"; done

Я пропускаю поиск в подкаталогах и поиск mp4sв имени файла есть только "abc".

1 Ответ

0 голосов
/ 18 февраля 2019

попробуй с find:

find /home/phillip -type f -iname '*abc*.mp4' | xargs -I %% ffmpeg -i %% -vf fps=1 -q:v 3 "images/${i%.*}_frames%d.jpg"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...