我有一个文件夹,其中包含几个包含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的搜索。
答案 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"