Live Stream Bitrate Calculator – Encoder Totals, File Size and Upload Headroom
Two numbers decide how a broadcast goes before a single frame reaches the ingest server: what your encoder is sending, and what your line can carry. This live stream bitrate calculator adds your video and audio bitrates into one outbound total, turns that total into the size of the local recording OBS or ffmpeg is writing alongside the stream, and compares it against an upload capacity you supply. Every step is plain arithmetic on figures you typed, performed in your browser, with no network call of any kind.
Bits go out, bytes land on disk
Bitrate is counted in bits per second. File size is counted in bytes. Eight bits make one byte, so the conversion is a division by 8 — and getting that division backwards, or skipping it, is the single most common error in this calculation. It produces an answer wrong by a factor of eight in either direction, which is the difference between a session that fits your drive and one that stops recording halfway through.
Take 6000 kbps of video and 160 kbps of audio over two hours. The total is 6160 kbps, which is 6,160,000 bit/s. Two hours is 7200 seconds, so the session carries 44,352,000,000 bits. Divide by 8 and you have 5,544,000,000 bytes. The working-out panel prints that division on a line of its own, labelled, using your own numbers.
5.54 GB and 5.16 GiB are the same file
Bitrates are always decimal: 1 kbps is exactly 1,000 bit/s and 1 Mbps is exactly 1,000,000 bit/s, never 1,048,576. File sizes are where the ambiguity lives. Under decimal prefixes — what drive manufacturers and most streaming documentation use — 1 GB is 1,000,000,000 bytes, so those 5,544,000,000 bytes read as 5.54 GB. Under binary prefixes, the unit is a gibibyte of 1,073,741,824 bytes, so the same file reads as 5.16 GiB. Windows Explorer counts in binary and still writes “GB” on the label, which is why a file you calculated at 5.54 GB appears as 5.16 GB when you look at the folder.
Nothing changed but the divisor. The units toggle switches which convention every size output uses, each figure is labelled with the convention it actually used, and the byte count is printed in full so the two readings can always be reconciled.
What the headroom reserve is for
An encoder never gets the whole wire. Protocol and packet overhead take a share, other devices on the connection compete for the rest, and real upload speed fluctuates rather than sitting flat at whatever a speed test reported. The reserve is the slack you hold back from your stated capacity to absorb all of that, and it is a field you set rather than a constant this tool asserts, because how much slack a connection needs depends on the connection.
The bandwidth bar draws the outcome in three distinct states: the stream sits inside the reserve, it fits the line rate but reaches past the reserve, or it runs past the capacity altogether — in which case the segments overflow the capacity line and the shortfall is labelled as a positive magnitude. No negative headroom is ever printed as a number.
Why there is no resolution-to-bitrate table
Platform ingest guidance changes, differs by partner status, and depends on the codec and the content — a static talking-head scene and a fast-panning game at the same resolution do not need the same bitrate. Hard-coding a lookup would mean shipping figures that quietly go stale, so the resolution and framerate field here is a label: it is echoed back in the summary and the CSV, and it drives no calculation. Container and muxing overhead is left out for the same reason — its size depends on codec, keyframe interval and container, so the real wire rate sits slightly above the sum of the two streams rather than at an invented multiple of it.
The storage readout turns the total into the figure a creator with a nearly-full drive actually needs: how much the recording has grown at one hour, two hours, four, and at the end of the session, alongside the per-hour and per-minute rates for planning the next one. Copy the summary as plain text or export the whole thing as CSV — every exported cell is quoted, and any cell opening with =, +, - or @ is neutralised so a spreadsheet reads your resolution note as text rather than a formula.