使用 ffmpeg 提取所有幀時間戳

使用 ffmpeg 提取所有幀時間戳

Q1.我應該使用哪個ffmpeg命令來提取與其時間戳相關的每個幀號(從影片開始的時間以毫秒為單位)?

預期結果 :

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 不會。其他軟體可能會考慮音訊延遲或編輯清單等來調整計時。

相關內容