Video/ audio file sizes

I have some MP3 audio files and AVI video files on my PC.

Looking at the properties of one of the MP3 files:

Size: 3,697,105 bytes
MP3 Audio 128 Kbps
Duration: 3m 51s

which makes sense- 128Kbps is 16 kilobytes per second, so this 231 second file uses (231 * 16) = 3696 kilobytes, which matches the file size.

Now, looking at the properties of one of the video files:

Size: 736,661,760 bytes
Duration: 2h 6m 44s
Audio stream: MP3 Audio 128 Kbps
Video stream: 25 fps XVID encoded, 94 Kbps

My first thought was “Woah! The video stream uses LESS data than the audio stream?”. This seemed unlikely- video is surely much more data-intensive than audio.

Furthermore, the sums don’t add up. The audio and video added up is 222 Kbps, or 13.875 kilobytes per second. The duration of the file is 7604 seconds. So the total file size should be (7604 * 13.875) = 105.5 Mb* approx- about 1/7 of the actual size.

Then I thought “Maybe the video stream is given in kiloBYTEs per second, not kiloBITs”, but the result still doesn’t tally: combined audio and video would then be 110 kilobytes per second, for a total file size of (7604 * 110) = 836.4 Mb approx

What gives?

  • I know, I know- 1Mb <> 1,000,000 bytes. I said approximately

I`d like to hear a comprehensive answer myself.

WAG, but is there some sort of synchronization data to synch the audio to the video that makes up the difference?

Can’t give a comprehensive answer, but according to my limited understanding about video formats calculating the video size in your example is pretty easy. It’s the video stream line that gives your info, even if it’s presented wrong. In that case, 94 Kbps means 94 kilobytes, which is something like 752 kilobits per second. Audio stream is counted into that number. Short calc 9410247604 = 732 000 000 bytes rounded, so the actual bitrate is a bit over 94 kilobytes per second, probably closer 760 in kilobits and we get the actual size of file. Seems to be correct. And I bet there are tutorials about the structure of AVI files everywhere to be found with little searching. :slight_smile:

Video streams are VBR, meaning that the bitrate varies constantly and widely throughout the file. The encoder is designed to make sure the file averages out to a target bitrate, but beyond that it’s allowed to use whatever bitrate it needs to. Apparently, the program you’re using doesn’t understand that and is only reading the bitrate of the first frame.