I apologize if this is the incorrect forum for my question, so please point me to the right place if it doesn't belong here.
I thought I understood how SMPTE timecode works, but I cannot seem to grasp the conversion from sample number to time/frame.
I have a tiny mp4 file (227 frames = 233,472 samples = ~5 seconds) that I read into a Python program using PyAV (Python bindings for ffmpeg). Looking at the data within Python I see that this short file has a sample rate of 44,100 Hz and I count 1024 samples for every frame. However, this math does not make sense.
(44100 samples/sec)/(1024 samples/frame) = 43.06641 frames/sec.
While I can't find where the fps value is in Python, I uploaded the file to https://www.onlinemp4parser.com/ and it tells me it's at 25 fps.
So none of these numbers make sense. Is it 43.06 frames per second or 25? Why would this not be a standard frame rate anyway? I need an accurate way of converting sample number to time.
Thanks for the help!