ffmpeg를 사용하여 모든 프레임 타임스탬프 추출

ffmpeg를 사용하여 모든 프레임 타임스탬프 추출

Q1.ffmpeg타임스탬프(비디오 시작부터 ms 단위의 시간)와 관련된 각 프레임 번호를 추출하려면 어떤 명령을 사용해야 합니까?

예상 결과 :

frame, ts
1, 34
2, 67
3, 101
4, 123
...

Q2.해당 타임스탬프는 프레임을 가리키는 키로 사용해도 안전한가요?

즉, ffmpeg동일한 작업을 수행하는 대신 다른 도구를 사용하면 정확히 동일한 타임스탬프를 얻게 됩니다.


재료:http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4

답변1

A1. 달리면 가까이 다가갈 수 있다

ffprobe video.mp4 -select_streams v -show_entries frame=coded_picture_number,pkt_pts_time -of csv=p=0:nk=1 -v 0

출력은

0.000000,0
0.040000,3
0.080000,2
0.120000,4
0.160000,1
0.200000,7
0.240000,6
0.280000,8
0.320000,5

제시된 프레임이 n온라인에 있는 경우 n(1부터 시작)

첫 번째 열은 초 단위의 타임스탬프입니다. 두 번째 열은 프레임의 인코딩 및 디코딩과 파일 저장 순서입니다.

A2. 해야한다. 다른 소프트웨어는 시작 오프셋을 제거할 수 있지만 ffprobe는 그렇지 않습니다. 다른 소프트웨어는 오디오 지연이나 편집 목록 등을 고려하여 타이밍을 조정할 수 있습니다.

관련 정보