顺序图像的通配符

aba*_*ter 5 jpeg ffmpeg avconv

我正在尝试使用av​​conv为一系列jpg文件制作动画.基于众多示例,我正在尝试使用%d.jpg来指定文件.或%05d.jpg.但是,我得到了:

avconv -i %d.jpg a.avi
avconv version 0.8.3-4:0.8.3-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav developers built on Jun 12 2012 16:37:58 with gcc 4.6.3
%d.jpg: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这是我目录列表的一个片段:

10380.jpg
10390.jpg
10400.jpg
1040.jpg
10410.jpg
10420.jpg
10430.jpg
10440.jpg
Run Code Online (Sandbox Code Playgroud)

有从00000.jpg到14400.jpg的jpeg

我不太了解通配符系统,但这就是示例中的内容.

(注意:我将其标记为ffmpeg,因为avconv的标签不存在,而avconv取代ffmpeg)

更新 我正在根据@ av501的答案更新问题.

首先,我有一个按顺序排序10的png文件列表.它们的文本在5位整数之前.例如:

SkinMattekNutrient_py_00000.png
SkinMattekNutrient_py_00010.png
SkinMattekNutrient_py_00020.png
...
SkinMattekNutrient_py_10440.png
Run Code Online (Sandbox Code Playgroud)

批量转换为jpg的方法是什么?我试过了

convert ...
SkinMattekNutrient_py_%05d.png %05d.jpg
Run Code Online (Sandbox Code Playgroud)

convert ...
SkinMattekNutrient_py_%5d.png %5d.jpg
Run Code Online (Sandbox Code Playgroud)

但我得到:

convert SkinMattekNutrient_py_%05d.png %05d.jpg
convert: missing an image filename `%05d.jpg' @ error/convert.c/ConvertImageCommand/3011.
Run Code Online (Sandbox Code Playgroud)

av5*_*501 6

您需要将%5d用于您的文件.但你似乎有两个问题

要使%5d工作,您必须有5位数的编号.[你有一个1040.jpg]也是连续的.00000.jpg然后00001.jpg.你的文件名似乎跳了10.

如果所有这些都是10的倍数,那么你可以使用%d50.jpg [但你仍然需要修复你的1040.jpg]

否则命令行在这里工作[我正在使用ffmpeg -i%5d.jpg out.avi和ffmpeg -i%5d0.jpg out.avi]


mee*_*tar 5

这是在 Bash shell 中批量转换图像文件的一种方法:

for f in *.png; do ffmpeg -i "$f" "${f%.png}.jpg"; done
Run Code Online (Sandbox Code Playgroud)

我相信这种技术适用于任何需要单独列出输入和输出文件的命令。在您的情况下,这将是:

for f in *.png; do convert "$f" "${f%.png}.jpg"; done
Run Code Online (Sandbox Code Playgroud)