[FFmpeg-trac] #11080(undetermined:new): FFmpeg timestamps do not consistently agree with packet timestamps

FFmpeg trac at avcodec.org
Fri Jul 5 15:16:35 EEST 2024


#11080: FFmpeg timestamps do not consistently agree with packet timestamps
-------------------------------------+-------------------------------------
             Reporter:  markfilipak  |                    Owner:  (none)
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:
                                     |  undetermined
              Version:  unspecified  |               Resolution:
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Comment (by Balling):

 Damn, VQ analyzer is a monster. IT CAN FULLY EXPORT ANY FRAME IN ITS
 ENTERITY! I frame e.g. is 15 MB (!!!) when you convert its binary
 bitstream into actual names of parameters. This is no NATO tank, this is
 actual complexity.

 Here are all the warnings on your 11055 file (had to convert that to Annex
 B .h264 file, cause there is a bug apparently, lol, in VQ analyzer version
 7.4.0.80497 that it cannon open m2ts files).

 https://i.imgur.com/ZhtJsc8.png
  (in particular it warns that first nal is actually just non-IDR I frame,
 while it must be IDR I frame, and it also sees that frame_num has a gap in
 176th NAL (non-IDR I frame too) and has a gap in 182 NAL, so I believe
 maybe you copied the second Open GOP incorrectly).

 Also, I can see in hierarchy tab that it has some insane stuff. Basically
 on this image 2 red dots are the I frames (**still non-IDR**, remember),
 blue dots in one line are the P frames, remember the I frames and then P
 frames can be decoded independently without yet decoding B frames, so it
 is very nice property. https://i.imgur.com/jwFuQTE.png BUT THEN you can
 some horrible B frames dependency. You have First level B frames and then
 2nd level. And 1st level B frames are kinda normal, but then you have B
 frame 15/50 depending on 14/13. So 50th actual frame depends on 13th in
 presentation order. And, yes, they are 15th and 14th in DTS, but still.


 Also here are the warnings for your 11088: https://i.imgur.com/pGbfjYE.png
 (this shows you introduce another frame_num error on the analyzer (cause
 there is now no frame_num 228 as opposed to 11055), I believe that is
 another key issue here, clearly you cannot just cut frames with ffmpeg,
 because this is a warning about gap INSIDE the link between I and P in the
 initial I, b, B, P, where b is first level hierarchy and B is second level
 hierarchy in presentation order)

 and here is the hierarchy: https://i.imgur.com/LQGR7Jh.png

 I think I proved to you that the leading two B frames must be left in the
 file, why? Because recovery point behind the I frame says that you can
 decode all frames after recovery point, but you remove the 228 B frame
 which is as I understand must be decoded, and to decode that you need to
 decode another B frame.
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/11080#comment:49>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list