비디오/스트림에서 프레임을 추출하고 각 프레임의 타임스탬프를 기록하는 데 사용할 수 있는 명령 도구가 있습니까?

비디오/스트림에서 프레임을 추출하고 각 프레임의 타임스탬프를 기록하는 데 사용할 수 있는 명령 도구가 있습니까?

ffmpeg는 현재 프레임 타임스탬프를 출력 파일 이름으로 기록하는 명령줄 인수를 지원하지 않기 때문에 비디오/비디오 스트림에서 이미지 추출을 지원하고 현재 프레임 타임스탬프를 파일 이름으로 출력하는 명령줄 도구를 필사적으로 찾고 있습니다.

그러한 요구 사항에 사용할 수 있는 도구가 있습니까?

답변1

ffmpeg와 다음과 같은 일괄 이름 바꾸기 도구를 사용하여 다단계 프로세스로 이 작업을 수행할 수 있습니다.고급 이름 바꾸기.

40번째 프레임마다 추출하고 싶다고 가정해 보겠습니다.

#1프레임과 프레젠테이션 타임스탬프 목록을 추출합니다.

ffmpeg -i in.mp4 -vsync 0 -vf select=not(mod(n\,40)) frames-%d.jpg
       -vf select=not(mod(n\,40)) -f mkvtimestamp_v2 pts.txt

이미지 외에도 다음과 같은 pts.txt도 얻을 수 있습니다.

# timecode format v2
0
1600
3200
4800
6400
8000
9600
11200
12800
14400
16000

이는 추출된 프레임의 타임스탬프이며 밀리초 단위로 표시됩니다.

#2그런 다음 목록을 사용하여 프레임의 파일 이름을 수정하는 이름 바꾸기를 지원하는 일괄 이름 바꾸기 앱을 사용하십시오. 아니면 쉘 스크립트.

관련 정보