When I extract the timestamps with this command (mkvextract.exe test_video.mkv timestamps_v2 0:timestamps.txt) with this mkv file, I get this file:
# timestamp format v2
3
45
86
...
20815
20856.708333
From what I understand, the last timestamps correspond to the last frame timestamps + it’s duration.
But, why is it a float number and not a integer like all the other timestamps?
The TimestampScale is 1000000, so I thought all the timestamps would be a integer in milliseconds.
I don’t believe this is a bug, but it is just that my comprehension of the timestamps isn’t good.
Edit:
If I run ffprobe -select_streams 0 -show_entries packet test_video.mkv -print_format json, I can see that the last frame duration_time is 41 ms instead of 41.708333, but I guess that ffprobe is simply truncating the result?
{
"pts": 20815,
"pts_time": "20.815000",
"best_effort_timestamp": 20815,
"best_effort_timestamp_time": "20.815000",
"duration": 41,
"duration_time": "0.041000",
}