上传文件
  1. base64hub
  2. 文件工具
  3. MP4 转 Base64

MP4 转 Base64

拖入 MP4,复制 data:video/mp4;base64, URI 或用于 JSON 请求的纯 Base64。预览播放器可以确认片段,指示条会显示字符串有多长。

免费 无需注册,不限次数 本地 不上传任何内容 更新于 2026年10月27日
将文件拖到这里、粘贴或选择文件
输入 –输出 –大小 –

在你的浏览器中处理。此页面无法将你的数据发送到任何地方: 我们如何确认

如何把 MP4 转为 Base64

  1. 把 .mp4 文件拖到框中,或用文件选择器选择。
  2. 在预览中播放。如果这里播放不了,在这个浏览器中通过 data URI 多半也播放不了。
  3. 用于 <video> 标签时,输出为 保持为 Data URI;用于 API 时选择 纯 Base64 或 JSON。
  4. 按 复制输出;文件很大时可以按 另存为 .txt。

各码率下编码后的长度

MP4 的大小大致等于码率 × 时长。以 10 秒的片段为例:

总码率文件大小Base64 长度
0.5 Mbps625,000 字节833,336 个字符
1 Mbps1,250,000 字节1,666,668 个字符
2.5 Mbps3,125,000 字节4,166,668 个字符
5 Mbps6,250,000 字节8,333,336 个字符

手机录像的码率常常在 10 Mbps 以上,所以 10 秒未经处理的手机视频就会超过 1600 万个字符。请先以更低的分辨率和码率重新编码;视频转 Base64 提供了一条经过测试的 ffmpeg 命令。

开头几个字符中的 ftyp brand

MP4 的第一个 box 声明了主 brand,告诉播放器文件遵循哪种规范。它在 Base64 中清晰可见:

Brand含义Base64(ftyp box 为 32 字节时)
isomISO 基础媒体文件,通用 brand(ffmpeg 的默认值)AAAAIGZ0eXBpc29t
mp42MP4 第 2 版AAAAIGZ0eXBtcDQy
M4VApple 的 MP4 视频变体AAAAIGZ0eXBNNFYg
qtQuickTime 影片(.mov)AAAAIGZ0eXBxdCAg

第五个字符随 box 大小变化(24 字节为 G,28 字节为 H,32 字节为 I),所以检测代码应在前五个字符之后查找 GZ0eXB。brand 为 qt 的文件其实是取了 .mp4 名字的 QuickTime 影片;它也许仍能播放,但如果接收方会检查类型,请标记为 video/quicktime。

嵌入与发送

在自包含的 HTML 页面中嵌入一段静音的短循环视频:

<video autoplay muted loop playsinline src="data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21p..."></video>

在 Node.js 中通过 JSON 请求发送一个片段:

import { readFile } from "node:fs/promises";

const video = await readFile("clip.mp4");
const body = JSON.stringify({
  mimeType: "video/mp4",
  data: video.toString("base64"),
});

这里的字段名只是占位符,请使用 API 文档中规定的名称。更多内容见 Node.js 中的 Base64。

可能遇到的问题

  • data URI 在 Safari 中能播放,在 Chrome 或 Firefox 中不能。 视频轨道多半是 HEVC。请重新编码为 H.264。
  • 页面加载时卡住。 浏览器正在解析一个巨大的字符串。超过几 MB 的 data URI 最好换成文件 URL 或 Blob URL。
  • 接收方说文件已损坏。 把解码后的长度与指示条中的原始文件大小对比;字符串被截断会切掉文件末尾,而很多 MP4 的索引就放在末尾。Base64 转 MP4 可以显示解码后的片段能否播放。

常见问题

为什么 MP4 的 Base64 以 AAAA 开头?

MP4 以第一个 box(ftyp)的大小开头,这是一个 4 字节的数字。对于任何正常的头部,前三个字节都是零,而零字节编码为 A。后面跟着 ftyp box 名称和 brand,例如 brand 为 isom 时是 AAAAIGZ0eXBpc29t。

我的 MP4 能在所有浏览器中通过 data URI 播放吗?

如果使用 H.264 视频和 AAC 音频,可以。使用 HEVC(H.265)的 MP4 文件能在 Safari 中播放,在其他浏览器中则要看系统,只有部分能播放。仅凭容器格式并不能保证可以播放。

怎样以 Base64 把 MP4 发送给 API?

除非 API 文档注明使用 data URI,否则请选 纯 Base64,并把媒体类型设为 video/mp4。对照 API 的大小限制检查编码后的长度,它比文件大三分之一。