ffmpeg를 실행하여 x개의 스크린샷을 찍는 방법은 무엇입니까?

ffmpeg를 실행하여 x개의 스크린샷을 찍는 방법은 무엇입니까?

다음 코드를 사용하여 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이를 위해 (루프 없이) 프로세스를 호출하는 것이 더 좋을 것 같습니다.

관련 정보