ffmpeg -pattern_type glob - ファイルが正しい順序でロードされていません。

ffmpeg -pattern_type glob - ファイルが正しい順序でロードされていません。

詰まっています...数分ごとにWebカメラから写真をダウンロードするスクリプトをしばらく使用してきました。命名規則は次の通りで、すべてnew_image((len(files(dir))+1) + '.jpg')が大丈夫でした...今日まで...

画像を読み込むPythonスクリプトがあります。作成日基準OpenGLデータをインポートして映画にダンプします。難しくなく、すべてが大丈夫です。今を除いて何千もの画像があり、このように続けるのはやや非効率的です(素敵でも)自分だけのGUIやオーバーレイなどを作ることができるからです。)..とにかく私はffmpegを使ってショーで結合しています。

ffmpeg -f image2 -r 25 -pattern_type glob -i '*.jpg' -qscale 3 -s 1920x1080 -c:v wmv1 video.wmv

ffmpegはうまく機能しますが、名前付きの順序で画像を取得することは機能しません。これは、ファイルが以下-pattern_type globのような(同じではなくても)方法で取得されるためです。ls

user@host:/storage/photos$ ls
0.jpg     1362.jpg  1724.jpg  2086.jpg  2448.jpg  280.jpg   3171.jpg  3533.jpg  3896.jpg  4257.jpg  4619.jpg  4981.jpg  5342.jpg  5704.jpg  6066.jpg  650.jpg
1000.jpg  1363.jpg  1725.jpg  2087.jpg  2449.jpg  2810.jpg  3172.jpg  3534.jpg  3897.jpg  4258.jpg  461.jpg   4982.jpg  5343.jpg  5705.jpg  6067.jpg  651.jpg

0, 1000, 1, 2000, 2...それが論理lsなので、画像シーケンス(時間経過)はすべて処理されます。

ffmpegを使用してより整頓された方法で画像をロードする方法についてのアイデアはありますか?

ベストアンサー1

ffmpegは同じファイル形式をリンクします

次のコマンドを使用して、任意の方法でファイルのリストをリンクできます。

ffmpeg -f concat -i <( for f in *.wav; do echo "file '$(pwd)/$f'"; done ) \
         output.wav

上記の方法は、リンクするファイルがすべて同じコーデックである場合にのみ機能します。たとえば、すべて.wavまたは.mpgである必要があります。

メモ:concat demuxerを使用するにはffmpeg v1.1以降が必要です。上記の例と、この手法を使用してさまざまなコーデックを接続する方法について詳しく学んでください。ffmpegのウェブサイト

printfフォーマッタを使用したffmpeg

FFmpegはprintfフォーマッタ(たとえば)を使用することもできます%d。これは、ゼロから始まり、順番に上に上がる数字と一致します。数字が000 - 099のような構造で構成されている場合は、%03dゼロパディングを使用して一連の3桁の数字を表すこのフォーマッタを使用できます。

だからあなたはこれを行うことができます:

ffmpeg -r 25 -i %d.png -qscale 3 -s 1920x1080 -c:v wmv1 video.wmv

上記は私には適しておらず、ffmpegこのオプションについて不平を言っています-c:v。私はオプションを省略しましたが、そのバージョンのコマンドが期待どおりに機能しました。

ffmpeg -r 25 -i %d.png -qscale 3 -s 1920x1080 video.wmv

おすすめ記事