6

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から14400.jpgまでのjpegがあります

私はそのワイルドカードシステムをよく理解していませんが、それは例にあるものです.

(注:avconvのタグが存在せず、avconvがffmpegに取って代わるため、ffmpegのタグを付けました)

更新 @av501による以下の回答に基づいて質問を更新しています。

まず、10 ずつ順番に並べられた 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

2 に答える 2

7

ファイルには%5dを使用する必要があります。しかし、あなたは2つの問題を抱えているようです

%5dが機能するには、5桁の番号が必要です。[あなたは1040.jpgを持っています]そしてまた連続しています。00000.jpg、次に00001.jpg。あなたのファイル名は10ジャンプしているようです。

それらすべてが10の倍数である場合は、%d50.jpgを使用できます[ただし、1040.jpgを修正する必要があります]

それ以外の場合、コマンドラインはここで機能します[私はffmpeg -i%5d.jpgout.aviとffmpeg-i%5d0.jpgout.aviを使用しています]

于 2012-09-11T04:58:50.027 に答える
5

Bash シェルでイメージ ファイルをバッチ変換する 1 つの方法を次に示します。

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

この手法は、入力ファイルと出力ファイルを別々にリストする必要があるすべてのコマンドで機能すると思います。あなたの場合、これは次のようになります。

for f in *.png; do convert "$f" "${f%.png}.jpg"; done
于 2012-12-09T20:53:42.167 に答える