Why isn't -ss option of ffmpeg work accurate when providing exact keyframe

0

I am using copy stream codec and I need not have negative PTS values in output.
This is how the command looks

ffmpeg -y -ss 00:44.002292 -to 01:04.022292 -i "https://drive.google.com/uc?authuser=0&id=1tEt19OyfM0BH43WcoECwQnGzu8eallRC" -c copy -avoid_negative_ts 1 11.mp4 -hide_banner .

values for -ss and -to are keyframe timestamps. But the output video starts at a timestamp previous(at pkt_pts_time=38.997292) to what i specify. So i decided to specify next keyframe value for -ss option but soon i realized that it works accurately on other videos.
ffmpeg version: 4.1.1

Why this happens? What is specific about this video?

Edit
Seek time is subtracting in my case by 3*AV_TIME_BASE / 23 value (ffmpeg_opt.c:1179)

Tiko

Posted 2019-04-23T08:36:44.103

Reputation: 101

1This must be the saddest video of all time. Just from quick observation, once you go to 44.1, you get a more correct (?) starting point. Could be rounding. Run ffmpeg with -debug_ts to see what happens. – slhck – 2019-04-23T14:06:28.363

@slhck yes it works for 44.1, -debug_ts prints pkt_dts:1715200 pkt_dts_time:38.8934 off:-44002292, i enabled debug logging and noticed this: Setting codecpar->delay to 2 for stream st: 1 and i found out that it is seeking based on DTS and the final seek_timestamp is subtracting by 3*AV_TIME_BASE / 23 this value (ffmpeg_opt.c:1179) and i'm not an expert so i don't get it – Tiko – 2019-04-24T10:35:01.097

No answers