다음 코드를 사용하여 ffmpeg를 사용하여 트위치 스트림의 스크린샷을 찍고 있습니다.
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
속도(초당 프레임 수)를 설정하면 처음부터 2초마다 1프레임을 얻게 됩니다. -ss
다른 시간에 시작하도록 선택할 수도 있습니다 .
-frames:v 5
스크린샷을 찍은 후에는 로그아웃됩니다 5
. 1
예제에서와 같이 루프에서 이 명령을 실행하는 경우 스크린샷을 찍고 종료할 수도 있습니다. 하지만 내 생각에는 ffmpeg
이를 위해 (루프 없이) 프로세스를 호출하는 것이 더 좋을 것 같습니다.