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