名前の異なる50枚の画像があります。
同じフォルダに names.txt そのフォルダ内のすべての画像の名前を含むファイルです。
apples.jpg
oranges.jpg
blackberries.jpg
etc.
そして私は1つのオーディオファイルを持っています、 sound.wav
各画像をsound.wavファイルと混合して、50個のビデオを生成します。
apples.mp4
oranges.mp4
blackberries.mp4
etc.
何か案は?
これは、各画像を手動で変換するために私にとって有効なスクリプトです。
ffmpeg -loop 1 -y -i oranges.jpg -i sound.wav -shortest oranges.mp4
しかし、私はこれをスケールしたいのですが、多分各行を通るスクリプトがあるでしょう。 names.txt 画像の名前を取得し、その画像をビデオに変換してから次の画像に移動します。
ありがとう
お使いのオペレーティングシステムは何ですか?あなたはまだ何か試しましたか?
—
slhck
Windows 10、64ビットOS。まだ何も試していない、何かアイデアはありますか? :)
—
Duraid
ファイルから行単位で読み取る方法についてWeb検索を行う場合、Windowsでそれを実行する方法の例がいくつかあります。あなたがスタートのために必要なのは取り替えることだけです
—
slhck
-i oranges.jpg
と -i %a
どこで %a
テキストファイルから読み込んでいる行に置き換えられます。
その方法を私は理解することができませんでした。しかし、私は別の解決策を見つけました。基本的には、スクリプトをCSVで連結し、それをコピーしてコマンドプロンプトに貼り付けるという方法です。好きです:
—
Duraid
ffmpeg -loop 1 -y -i apples.jpg -i intro5.wav -shortest apples_video.mp4 & ffmpeg -loop 1 -y -i oranges.jpg -i intro5.wav -shortest oranges_video.mp4 & ffmpeg -loop 1 -y -i blackberries.jpg -i intro5.wav -shortest blackberries_video.mp4
しかし、ビデオの長さに問題があります。音声は28秒ですが、最後のビデオは常に30秒になります(最後の2秒間は無音です)。何か案は?
交換することで目的の結果を達成することができました
—
Duraid
-shortest
と -t 28
(28は最終ビデオファイルの秒数です)。悪くないが、あなたが最終的なファイルの長さを指定する必要なしに同じ結果を達成するための別の方法を知っているならば、私はそれを聞くのが大好きだ。 :)ありがとう