シーケンスパターン

シーケンスパターン

0 から任意の番号までの画像がいっぱい入ったフォルダーがあり、これらの画像をビデオに変換する必要があります。これらはすべて .PNG ファイルです。私が使用しているコマンドは次のとおりです。

ffmpeg.exe -f image2 -framerate 30 -pattern_type sequence -start_number 1 -r 30 -i "img%%04d.jpg" -s 1280x720 test.avi

これを実行すると、次のエラーが発生します:

[image2 @ 002be580] Could find no file with path 'img%04d.jpg' and index in the range 1-5

img%04d.jpg: No such file or directory

これを機能させるには何を変更すればよいでしょうか?

答え1

シーケンスパターン

デフォルトのパターン タイプ。、などがimg%d.jpg想定されます。 を使用すると、、 などが想定されます。img1.jpgimg2.jpgimg%04d.jpgimg0001.jpgimg0002.jpg

ffmpeg -framerate 30 -i img%d.jpg -vf scale=1280:-1,format=yuv420p output.mp4

グロブパターン

glob ワイルドカード パターン タイプは柔軟です。このパターン タイプは、libavformat が glob サポート付きでコンパイルされている場合に使用できます。

ffmpeg -framerate 30 -pattern_type glob -i "*.png" -vf scale=1280:-1,format=yuv420p output.mp4

ノート

  • を参照してくださいFFmpeg image2 デマルチプレクサのドキュメント詳細については。

  • scaleフィルターこの例では、幅が 1280 に変更され、アスペクト比を維持するために高さが自動的に計算されます。

  • バージョン、入力タイプ(PNGなど)、エンコーダ(特にlibx264)、エンコードオプションによっては、ffmpegクロマサブサンプリングを回避または最小限に抑えようとする場合がありますが、FFmpegベースではないほとんどのプレーヤーでは出力を適切にデコードできません。formatフィルター出力では、これらのプレーヤーと互換性のあるクロマ サブサンプリング スキームが使用されるようになります。

答え2

私の場合は、同じディレクトリで cmd を実行して次のようにするとうまくいきました。

ffmpeg -framerate 20 -i Animation%3d.jpg -r 5 -y fileout.mp4

Animation000~999.jpg という名前のファイルの場合。

これは私にはうまくいきませんでした:

ffmpeg -framerate 20 -pattern_type glob -i "*.jpg" -vcodec libx264 out.mp4

次のエラーが発生しました:

パターン タイプ 'glob' が選択されましたが、この libavformat ビルドでは globbing はサポートされていません *.jpg: 関数は実装されていません

関連情報