AVI 转 MP4
在浏览器中完成,无需上传
MP4
DivX · Xvid · MJPEG → H.264 · 重新编码
视频
AVI → MP4规格
7 项| 项目 | 数值 | 备注 |
|---|---|---|
| 输入 | AVI | 或 FFmpeg 能读的任何视频 |
| 输出 | MP4,H.264 + AAC | 手机、浏览器和剪辑软件都能播放 |
| 画面 | 重新编码为 H.264 | x264,veryfast 预设,CRF 23 |
| 声音 | AAC | 已经是 AAC 或 MP3 时直接复制,否则 AAC 128 kbps |
| 时间 | 开始前测量 | 在这台设备上试编码 2 秒 |
| 引擎 | 这个浏览器自带的编码器,或 FFmpeg(16.8 MB) | 只有浏览器做不了时才下载 FFmpeg,而且要按下写着它的按钮 |
| 处理位置 | 这个浏览器 | 不发送到服务器 |
会发生什么
5会发生什么,为什么
AVI 是微软 1992 年推出的容器,现在还能找到的 AVI 文件大多来自之后的那些年:DivX 和 Xvid 下载、卡片相机用 Motion JPEG 拍的片段、老剪辑软件的采集。手机、浏览器和现在的剪辑软件大多打不开它们,里面的编码也常常是现在没有东西能解码的。FFmpeg 几乎都能解码。
画面重新编码为 H.264,这让文件到处都能播放。AVI 里的声音常常已经是 MP3,而 MP4 能原样装下 MP3,所以声音是 MP3 或 AAC 时原样复制,只重新编码画面;其他声音——例如未压缩的 PCM——重新编码为 128 kbps 的 AAC。结果下方的说明会写出是哪一种。
页面先问浏览器自己。浏览器自带视频通话和屏幕录制用的编码器——H.264、VP9、AAC、Opus,通常在显卡上——当这个浏览器能用它们读取你的文件并写出结果时,就这样做:什么都不下载,先在这里测出时间,标签下面的那行会说明是浏览器的编码器完成的。MP4、MOV、WebM 和 MKV 文件通常都可以。AVI、WMV、FLV 不行,生成 MP3 也不行,这些走下面的方式。
处理由 FFmpeg 完成——大多数视频软件都建立在它之上——它被编译成 WebAssembly,在这个页面里运行。它很大——16.8 MB——不按下写着它的按钮就不会下载。下载后它读取你的文件,从中间取 2 秒试编码,然后在开始任何工作之前告诉你整个文件在这台设备上要多久。这个数字是在这里测出来的,而不是从表格里查的:同样的引擎和设置,你的处理器,你的视频。它仍然是估计值,并标明是估计值。
它比电脑上安装的程序慢。这里 FFmpeg 只用一个处理器核心,因为浏览器只在网站带有特定的安全响应头时才允许页面使用更多核心,而且完全不能使用显卡的视频编码器。一个长的高分辨率视频可能要好几分钟,在手机上更久。估计值会在你决定之前说明这一点,进度条随时显示剩余时间,按“取消”会立即停止。浏览器自带的编码器能做时会快得多,而且什么都不用下载。
常见问题
4为什么不直接把文件改名为 .mp4
因为容器不同:改名为 .mp4 的 AVI 里面仍然是 AVI,读文件内容而不是名字的播放器会拒绝它。而且大多数 AVI 文件里的画面编码——DivX、Xvid、Motion JPEG——本来就不是 MP4 播放器能播放的。
会损失画质吗
会损失一点,任何重新编码都是如此,标签会这样说明。画面用 x264 以 CRF 23 编码,这是一种恒定质量设置,把码率用在画面需要的地方;正常观看时多数人分辨不出与原视频的差别。损失的部分不会因为转回去而恢复。
为什么这么慢
每一帧都要在浏览器里、用你处理器的一个核心解码再编码。安装的程序会用上所有核心,通常还有显卡的编码器;网页默认两者都用不到。页面会在你开始之前测出在你的设备上要多久,所以等待不会出乎意料。
视频会上传吗
不会。引擎下载到你的浏览器,你的文件在那里读取和写出。本网站没有上传接口,视频根本无处可去。