web-dev-qa-db-ja.com

avconv:画像のサブセットからビデオを作成します

私は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から始まっていないためだと思いますか?

どうすればこれを達成できますか?

21
Aly
avconv -r 10 -start_number 8 -i filename_%d.png -b:v 1000k test.mp4

-start_numberオプションには、 avconv の最新の9.xバージョンが必要です。バージョン0.8.xではありません。あるいは、最新バージョンの ffmpeg を使用することもできます。または、デフォルトでそれらの名前をチェックするため、ファイルの名前を0から4の間の番号で変更します。

29
mark4o

ファイルをcatで連結し、image2pipeデマルチプレクサを使用してavconvでそれらを読み取ることができます。お気に入り cat filename* | avconv -f image2pipe -i - ...

7
Anton Khirnov

これをチェックしてください。 ffmpegによると、これは彼らがそれを行う方法であり、それが機能する

  1. 最初に、写真の名前を変更して、数字の順序に従います。例:img1.jpg, img2.jpg, img3.jpg, ...
  2. 次に、実行することができます:

    ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg
    

    %dが画像番号に置き換えられていることに注意してください。

    img%03d.jpgは、シーケンスimg001.jpgimg002.jpgなどを意味します。

  3. 「-start_number」オプションを使用して、シーケンスの開始番号を宣言します。これは、シーケンスがimg001.jpgで始まっていないが、まだ番号順である場合に役立ちます。次の例は、img100.jpgで始まります。

    ffmpeg -f image2 -start_number 100 -i img%d.jpg /tmp/a.mpg
    
  4. 名前を変更する画像が多数ある場合は、次のコマンドを使用して負担を軽減できます。このコマンドは、bourne Shell構文を使用して、* jpgに一致する現在のディレクトリ内のすべてのファイルを、/tmpimg001.jpgなどの順序でimg002.jpgディレクトリにシンボリックにリンクします。

    x=1;  
    for i in *jpg;  
    do counter=$(printf %03d $x);  
    ln -s "$i" /tmp/img"$counter".jpg;  
    x=$(($x+1));
    
5
Alex