私はavconvを使用して多数のpngをビデオにしようとしていますが、pngにはfilename_<number>
したがって、通常は次のコマンドを使用します。
avconv -r 10 -i filename_%d.png -b:v 1000k test.mp4
ファイルのサブセットからビデオを作成したいfilename_8
-filename_50
と言うことができるので、これらのファイルを新しいディレクトリにコピーし、同じコマンドを試しましたが、エラーが発生しました。
filename_%d.png: No such file or directory
これは、番号付けが1から始まっていないためだと思いますか?
どうすればこれを達成できますか?
ファイルをcatで連結し、image2pipeデマルチプレクサを使用してavconvでそれらを読み取ることができます。お気に入り cat filename* | avconv -f image2pipe -i - ...
これをチェックしてください。 ffmpegによると、これは彼らがそれを行う方法であり、それが機能する
img1.jpg, img2.jpg, img3.jpg, ...
次に、実行することができます:
ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg
%d
が画像番号に置き換えられていることに注意してください。
img%03d.jpg
は、シーケンスimg001.jpg
、img002.jpg
などを意味します。
「-start_number」オプションを使用して、シーケンスの開始番号を宣言します。これは、シーケンスがimg001.jpg
で始まっていないが、まだ番号順である場合に役立ちます。次の例は、img100.jpg
で始まります。
ffmpeg -f image2 -start_number 100 -i img%d.jpg /tmp/a.mpg
名前を変更する画像が多数ある場合は、次のコマンドを使用して負担を軽減できます。このコマンドは、bourne Shell構文を使用して、* jpgに一致する現在のディレクトリ内のすべてのファイルを、/tmp
、img001.jpg
などの順序でimg002.jpg
ディレクトリにシンボリックにリンクします。
x=1;
for i in *jpg;
do counter=$(printf %03d $x);
ln -s "$i" /tmp/img"$counter".jpg;
x=$(($x+1));