2012-09-11 22 views
5

我試圖使用avconv爲一系列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 

這裏是我的目錄列表的剪斷:

10380.jpg 
10390.jpg 
10400.jpg 
1040.jpg 
10410.jpg 
10420.jpg 
10430.jpg 
10440.jpg 

有從00000.jpg JPEG文件到14400.jpg

我真的不理解通配符系統,但這就是例子。

(注:我標記它的ffmpeg因爲avconv標籤不存在,並avconv替代的ffmpeg)

更新 我更新由@ AV501基於下面的答案的問題。

首先,我有一個按順序排列的png文件列表。它們的前面有一個5位整數的文本。例如:

SkinMattekNutrient_py_00000.png 
SkinMattekNutrient_py_00010.png 
SkinMattekNutrient_py_00020.png 
... 
SkinMattekNutrient_py_10440.png 

將這些批量轉換爲jpg的方式是什麼?我試圖

convert ... 
SkinMattekNutrient_py_%05d.png %05d.jpg 

convert ... 
SkinMattekNutrient_py_%5d.png %5d.jpg 

,但我得到:

convert SkinMattekNutrient_py_%05d.png %05d.jpg 
convert: missing an image filename `%05d.jpg' @ error/convert.c/ConvertImageCommand/3011. 

回答

4

您需要使用%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]

+0

我更新了我的問題,使其更簡單 - 簡單地將png文件轉換爲jpg。我仍然無法弄清楚如何正確使用通配符系統。我試過搜索,但找不到任何解釋。什麼是正確的語法?謝謝。 – abalter

+0

convert是一個不同的工具,對吧? ffmpeg是一個不同的。我正在使用ffmpeg並且它在這裏工作正常。 – av501

+0

無論我正在使用哪個程序,我都會收到無法找到的文件錯誤。我不知道我的系統有什麼問題?我發現的所有例子都顯示了相同的情況。 – abalter

4

這裏有一種方法來批量轉換圖片文件在Bash shell:

for f in *.png; do ffmpeg -i "$f" "${f%.png}.jpg"; done 

我相信這種技術將適用於需要輸入和輸出文件被列出的任何命令separ ately。在你的情況下,這將是:

for f in *.png; do convert "$f" "${f%.png}.jpg"; done