MediaConverter.io 如何在不上传文件的情况下完成转换
当你在 MediaConverter.io 上转换视频或音频文件时,处理工作在你的浏览器标签页中进行,也就是在你自己的电脑或手机上完成。文件从不会发送到我们的服务器。本页先用通俗的语言解释这意味着什么,再为想了解的读者介绍技术细节。
简而言之
普通的在线转换器会把你的文件上传到服务器,在那里完成转换,再把结果发回给你。MediaConverter.io 省去了这一来一回:转换代码会像页面的其他部分一样下载到你的浏览器中,由你的设备完成处理工作。
- 在你的设备上
你选择一个文件
将文件拖放到页面上,或通过文件对话框选择文件,即可让这个浏览器标签页读取这一个文件。不会有任何内容复制到服务器。
- 在你的浏览器中
页面读取文件
工具直接在标签页中检查文件:它的格式、编码格式、时长、分辨率,以及音轨或字幕轨。
- 在你的设备上
你的设备完成转换
由浏览器内置的媒体引擎,或在页面中运行的一份 FFmpeg,对文件进行解码,并将其编码为新格式。
- 在你的设备上
你保存结果
完成的文件会从标签页的内存直接进入浏览器的下载内容。关闭标签页后,所有尚未保存的内容都会消失;我们这边没有任何需要删除的东西。
这对你意味着什么
隐私。你的录制内容、影片或语音备忘录都保留在你的设备上。我们的服务器上没有任何副本,因此不存在泄露、保存时间超出你的预期或事后需要删除的问题。和大多数网站一样,我们使用 Google Analytics 和 Microsoft Clarity 统计网站的使用情况:访问的页面、点击,以及转换了哪些格式、四舍五入到最接近的兆字节的文件大小等事件。这些工具从不会接收文件本身。
速度。无需等待上传,也无需下载结果,而对于大型视频,这些步骤花的时间可能比转换本身还长。转换本身的速度取决于你的设备。当浏览器能够使用电脑或手机内置的视频硬件时,转换会很快;当工具不得不改用 FFmpeg 时,所有工作都由处理器完成,速度会较慢。
限制。由于一切都在你设备的内存中进行,实际限制取决于浏览器能使用多少内存,而不是我们设定的某个数字。转换器会将整个源文件载入内存(它们使用的 FFmpeg 引擎本身的上限约为 2 GB),因此每个文件约 2 GB 是实际上限,更大的文件可能无法打开。手机的内存比电脑少、处理器也比电脑慢,因此耗时更长,也会更早达到这一限制。请保持标签页打开,直到转换完成;关闭标签页会停止转换并丢弃结果。
技术原理:WebCodecs、mediabunny 和 FFmpeg
读取文件。你选择的文件会以浏览器 File 对象的形式提供给页面。检查文件是在原处进行的:mediabunny 只读取它需要的字节范围,FFmpeg 的 ffprobe 则通过延迟挂载读取文件信息,而不复制文件。之后,使用 FFmpeg 的转换步骤会把整个文件复制到 FFmpeg 的内存中,这正是每个文件约 2 GB 上限的由来。
快速路径:WebCodecs。WebCodecs 是一种浏览器 API,让网页可以直接使用浏览器本身自带的视频和音频解码器与编码器;在可用的情况下,它们能利用你设备的视频硬件。这些工具通过 mediabunny 来驱动它。mediabunny 是一个开源的 TypeScript 库,可以读取 MP4、MOV、Matroska(MKV 和 WebM)、MPEG-TS、WAV、Ogg、FLAC、MP3 和 ADTS AAC 文件,将帧送入 WebCodecs 处理,并写出 MP4、MOV、MKV、WebM 以及常见的音频容器格式。
后备方案:编译为 WebAssembly 的 FFmpeg。对于快速路径无法完成的所有工作,页面会运行 ffmpeg.wasm,即编译为 WebAssembly 的 FFmpeg 0.12.10 核心。它由我们自己的域名提供(而不是第三方 CDN),在处理器上单线程运行,并且只用于 WebCodecs 无法完成的工作:写入 AVI、FLV 和 TS 文件以及读取 FLV(它在容器之间搬移画面,而不对画面进行编码)、转换 AVI 文件和你的浏览器无法解码的视频(DivX、Xvid、MPEG-2 等),以及编码大多数音频格式。它比 WebCodecs 慢,但在所有浏览器中的表现都一样。
| 工作 | 引擎 |
|---|---|
| 添加文件时读取文件信息 | FFmpeg(ffprobe),在原处读取文件,而不是复制文件 |
| 重新编码来自 MP4、MOV、M4V、MKV、WebM、MPEG-TS 和 H.264 FLV 的视频,包括输出为 AVI、FLV 或 TS 的情况 | 通过 mediabunny 使用 WebCodecs,在浏览器支持时启用硬件加速 |
| 视频转换器中的音轨和字幕轨 | FFmpeg,在视频转换完成之后 |
| 音频转换器,以及将视频的声音保存为音频文件 | FFmpeg |
| 视频压缩器(视频和音频) | 通过 mediabunny 使用 WebCodecs,以 FFmpeg 作为后备 |
| 写入 AVI、FLV 和 TS 文件,以及读取 H.264 FLV | FFmpeg,仅在 WebCodecs 处理的前后于容器之间搬移画面 |
| 来自 FLV 的、或写入 AVI、FLV 或 TS 的未改动 H.264 画面(来自 AVI 的画面只能写入另一个 AVI) | 由 FFmpeg 复制,不进行任何重新编码 |
| 将 AVI 转换为其他格式(AVI 只保存按解码顺序排列的帧时间,因此即使是其中的 H.264 也会重新编码),以及浏览器无法解码的视频(DivX/Xvid、MPEG-2、Sorenson Spark 和 VP6) | 整个文件都由 FFmpeg 处理 |
选择路径。在转换之前,视频转换器和视频压缩器会询问 mediabunny:能否打开该文件、能否解码其视频、能否写出目标格式。只要有一个答案是否定的,或者浏览器将不得不丢弃视频轨,整个任务就会改交给 FFmpeg 处理。因此,遇到不受支持的编码格式时,结果只是转换变慢,而不是得到损坏的文件。
结果。转换后的文件在内存中组装完成,并以本地 blob: 链接的形式交给你的浏览器,最终保存到你的下载文件夹中。如果工具提供“全部下载”,ZIP 也同样是在页面中生成的。
网站的哪些部分确实会使用服务器
下方列出的免费工具,以及每一个格式转换页面(例如 MP4 转 MP3),都只在你的设备上处理文件。我们的服务器负责提供网页、工具代码和 FFmpeg 引擎,这与任何网站都一样。
有两项功能的工作方式不同,它们与本页介绍的转换工具是分开的:
- AI 工作室(我们的 AI 助手,也以 ToolGPT 的形式提供)会将你的聊天消息发送给运行在服务器上的 AI 模型。它的大部分文件处理工作都像这里的工具一样在你的浏览器中运行,但降噪以及人声或音乐分离是在云服务上运行的:经你允许后,音频会被上传以进行处理。
- 时间线视频编辑器中的自动字幕会将项目的音频发送到转录服务,以生成字幕。
试用这些工具
常见问题
01
02
03
04
05
06