How to extract the "real frames" without rely on fps?
You don't quite understand how this works.
h.264 doesn't save single images, but much rather one image, than f.e. 4 estimations what should come after.

For example:
Imagine a ball rolling from left to right, you could noe either store 30 frames of the ball rolling, or you store 1 frame of the ball in the beginning and one in the end, and when you play the video, just take the first image, and copy the ball a bit to the right.

This means, that I Frame compression can be smaller, than single frames.