ffmpegを実行してx個のスクリーンショットを撮るには?

ffmpegを実行してx個のスクリーンショットを撮るには?

次のコードを使用して、ffmpegを使用してTwitchストリームのスクリーンショットを撮っています。

counter = 0

while counter <=5:
    os.system('ffmpeg -i ' + stream + f' -r 0.5 -f image2 {dir_path}/output_%09d.jpg')
    counter += 1

これを初めて使用するffmpegので、制御するカウンタがあるwhileループだけが必要だと思いましたが、実際には何千ものスクリーンショットが必要でした。ffmpegスクリプト全体を停止せずに停止する方法はありますか?

ベストアンサー1

~からman ffmpeg

    -vframes number (output)
        Set the number of video frames to output. This is an obsolete alias
        for "-frames:v", which you should use instead.

既存のコマンドに基づく例:

ffmpeg -i <stream> -r 0.5 -frames:v 5 -f image2 output_%05d.jpg

-r 0.5速度(1秒あたりのフレーム数)を設定すると、最初から2秒ごとに1フレームが得られます。-ss別の時間に開始することもできます。

-frames:v 5スクリーンショットを撮った後はログアウトします51例のように、ループでこのコマンドを実行している場合は、スクリーンショットを撮って終了することもできます。しかし、私の考えでは、ffmpegこのために(ループなしで)プロセスを呼び出す方が良いと思います。

おすすめ記事