在子文件夹中找到具有特定文件命名的mp4文件,并使用ffmpeg每秒钟从中提取帧

时间:2019-02-18 19:58:20

标签: bash macos ffmpeg

我有一个文件夹,其中包含几个包含mp4文件的子文件夹。
我想每秒提取这些mp4文件的帧,但提取文件名称中包含 “ abc” 的mp4文件。
这些帧应保存在单独的“图像”文件夹中,并命名为具有相应视频的帧数。

带有文件夹和子文件夹的文件结构以及我如何想象框架的文件命名:

|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

我缺少子目录中的搜索以及文件名中仅包含“ abc”的mp4的搜索。

1 个答案:

答案 0 :(得分:1)

尝试find

find /home/phillip -type f -iname '*abc*.mp4' | xargs -I %% ffmpeg -i %% -vf fps=1 -q:v 3 "images/${i%.*}_frames%d.jpg"