8

一連の画像からビデオを作成しようとしています。しかし、各画像を異なる秒数で表示する必要があります。FFMPEG でこれを行う方法。

前もって感謝します。

4

2 に答える 2

7

FFmpeg wikiにいくつかのヒントがあります。この 1 つの例 (wiki の最後から 2 番目) は、特にニーズに適している可能性があります。

ffmpeg -loop 1 -f image2 -i img.png -c:v libx264 -t 30 out.mp4

ここで、後の数字-t(例では 30) は動画の長さ (秒単位) です。

次のように、そのコマンドを数回実行するだけです。

ffmpeg -loop 1 -f image2 -i intro.png -c:v libx264 -t 5 out1.mp4
ffmpeg -loop 1 -f image2 -i someimage.png -c:v libx264 -t 15 out2.mp4
ffmpeg -loop 1 -f image2 -i someotherimage.png -c:v libx264 -t 25 out3.mp4
ffmpeg -loop 1 -f image2 -i outro.png -c:v libx264 -t 10 out4.mp4

そして、結果のビデオをマージします (必要な場合):

  1. videos.txtビデオ ファイル名がリストされているテキスト ファイル (例: ) を作成します。

    file 'out1.mp4'
    file 'out2.mp4'
    file 'out3.mp4'
    file 'out4.mp4'

  2. このコマンドを実行します (必要に応じてファイル名を変更します)

    ffmpeg -f concat -i videos.txt -c copy final_video.mp4

ビデオの結合 (連結) の詳細については、wikiを参照してください。

于 2013-06-18T16:18:12.813 に答える
2

これffmpegに関するセクションが含まれています: https://trac.ffmpeg.org/wiki/Slideshow

次に例を示します。

の内容例input.txt:

file '/path/to/dog.png'
duration 5
file '/path/to/cat.png'
duration 1
file '/path/to/rat.png'
duration 3
file '/path/to/tapeworm.png'
duration 2
file '/path/to/tapeworm.png'

次に実行します。

ffmpeg -f concat -i input.txt -vsync vfr -pix_fmt yuv420p -framerate 30 output.mp4

于 2020-02-14T18:07:22.157 に答える