Base64 is a way of representing arbitrary binary data using only printable text characters. It takes three bytes of input and emits four characters of output, which makes it approximately 33% larger by construction, plus a little more for the line breaks MIME inserts — about 37% in practice.
It exists because email was designed to carry text. SMTP and the message formats around it cannot be relied upon to pass arbitrary bytes intact, so every attachment is encoded into text on the way out and decoded on the way in.
The consequence is the one that catches people:
25 MB file -> about 34 MB encoded message
18 MB file -> about 25 MB encoded message
Providers enforce their limit on the message, not on your file. So Gmail's documented 25 MB attachment limit corresponds to a source file of roughly 18 MB, and a video compressed to precisely 25 MB is refused — having done exactly what the documentation appeared to ask for.
Almost every guide to emailing video repeats the 25 MB figure without this correction, which is why the failure is so common and so confusing: the file matches the stated limit and still bounces.
Elsewhere on the web base64 shows up in data URIs, where the same 33% penalty applies and is the reason inlining a large image or video into HTML or CSS is usually a false economy.