Zhongfarewell

How Data Travels Across the Network: From Bandwidth and Bitrate to Smooth Video Playback

If I upload a 2GB video file to the server, will I be able to play it smoothly anytime and anywhere?

Recently, while tinkering with cloud servers and MinIO, I encountered a very natural question:

If I upload a 2GB video file to the server, can I play it smoothly anytime, anywhere?

At first glance, this seems like a storage problem:

  • Where should the file be placed?
  • Can MinIO store it?
  • Is the server performance sufficient?

But after digging deeper, you find that what really determines the playback experience is often not storage, but the network.

This leads to several key concepts:

  • Bandwidth
  • Bitrate
  • Throughput
  • Instantaneous Bitrate

These concepts seem similar, but they describe things at different levels.

#I. Bandwidth: How Thick Is the "Pipe" of the Network

First, understand bandwidth.
Bandwidth describes:
The maximum amount of data that can be transmitted over a network link per unit of time.
For example, a cloud server is labeled:

txt
Public network bandwidth: 3Mbps

This means theoretically:

txt
3 Megabit / second

Note:

The Mbps in networks uses bit, while file sizes usually use Byte.

The relationship between the two:

txt
1 Byte = 8 bit

So:

txt
3Mbps ÷ 8 ≈ 0.375MB/s

That is to say, a server with a 3Mbps public network egress has a theoretical maximum transfer speed of approximately:

txt
375KB/s

At this point, we can establish a simple model:

txt
Server | | Network egress | User

Bandwidth is the maximum transport capacity of the line in the middle.

Analogous to:

  • File = cargo

  • Network = road

  • Bandwidth = road width

The wider the road, the more vehicles can pass per unit of time.


#II. Why Are Videos Especially Dependent on Bandwidth?

If you are just accessing a web page:

txt
Request API Return JSON Load images

The data volume is usually very small.

A single request might only be:

txt
Tens of KB A few MB

Even with low bandwidth, it won't significantly affect the experience.

But video is different.

The essence of video playback is:

Continuously fetching data.

For example:

A video bitrate:

txt
5Mbps

Means:

The player needs to fetch on average per second:

txt
5 Megabit

of data.

If the server can only provide:

txt
3Mbps

Then:

txt
Video consumption speed > Network supply speed

The player's buffer will eventually be depleted.

The manifestation is:

txt
Play Buffer decreases Pause to load Resume playback

#III. Bitrate: How Much Data the Video Needs per Second

So what is bitrate?

Simply put:

Bitrate represents the amount of data contained in the video per unit of time.

For example:

txt
Video bitrate: 5Mbps

Means:

On average, per second it needs:

txt
5Mb of data

Conversion:

txt
5 ÷ 8 ≈ 0.625MB/s

That is:

Approximately consumes per second:

txt
625KB

The network needs to continuously provide this speed for the video to play in real time.


#IV. The Relationship Between Video Size and Bitrate

There is an easily confused point here:

Many people think:

The larger the video, the higher the bitrate must be.

Actually, this is not entirely correct.

The accurate relationship is:

txt
Average bitrate = File size × 8 ÷ Video duration

For example:

A video:

txt
Size: 2GB Duration: 2 hours

Calculation:

txt
2GB × 8 ÷ 7200 seconds ≈ 2.2Mbps

So:

The average bitrate of this video is approximately:

txt
2.2Mbps

If another video:

txt
Size: 2GB Duration: 30 minutes

Then:

txt
2GB × 8 ÷ 1800 seconds ≈ 8.9Mbps

Although the file sizes are the same, the playback requirements are completely different.

So:

File size determines storage cost, bitrate determines network demand during playback.


#V. So What Exactly Determines Bitrate?

If you already know the final file size, you can calculate the average bitrate.

But the question arises:

Why are the final sizes of two videos different?

This involves video encoding.

Influencing factors include:

#1. Resolution

For example:

txt
720p 1080p 4K

The higher the resolution:

The more pixels need to be described.

Usually requires a higher bitrate.


#2. Frame Rate

For example:

txt
24 FPS 60 FPS

60 FPS means:

More frames need to be processed per second.

Therefore usually requires more data.


#3. Scene Complexity

Two videos both at 1080p:

Video A:

txt
Fixed camera Person talking Little background change

Video B:

txt
War scene Lots of motion Rapid cuts

Video B usually requires a higher bitrate.

The reason is that video compression relies on:

Predicting changes.

If consecutive frames change very little, the encoder can reuse a lot of information.

For example:

Previous frame:

txt
A person standing there

Next frame:

txt
This person moved a bit

The encoder only needs to record the change.

But:

Previous frame:

txt
A building

Next frame:

txt
The building is covered by an explosion

The change is huge and requires more data.


#4. Encoding Format

Different encoding formats have different efficiencies.

For example:

txt
H.264 H.265 AV1

More advanced encoding formats can usually use a lower bitrate at the same quality.


So the final size of a video:

Is not determined by duration alone.

Rather:

txt
Original video | Encoder | Bitrate setting | Final file size