页面代码没有启动。

直接从文件夹打开 index.html 会阻止 JavaScript 模块加载,所以选择一段视频后不会有任何反应。 请改用 http 方式提供此目录:

powershell -ExecutionPolicy Bypass -File serve.ps1

Then open http://localhost:8080/.

MP4 转换

不管从录屏、压制还是相机里出来的是什么,都变成 MP4 里的 H.264 和 AAC。能复制的原样复制,非改不可的才重新编码。

查看源码
你的视频在你自己的浏览器里处理,不做任何上传。

你选的那段视频,读取、拆开、重新写成一个 MP4,全都在这台机器的内存里完成,用的是你自己浏览器里的编解码器,和从这个地址发来的代码。这里根本没有能做上传的东西,这一页的另一头也没有服务器可以接收。一个 GB 的文件不会为了变成另一个 GB 而先跑一趟上传。

实时检查: 核对中…

离线: 核对中…

别听我们说。打开开发者工具,盯着网络面板,然后转点什么。没有任何一条请求带着视频、一帧画面或者文件名。或者干脆断网,照样能转。

1 选那段视频

2 看看什么会变,什么不会

到哪都传得上去的 MP4,是 H.264 的画面加 AAC 的声音。你的文件已经有的那一样原样复制过去;没有的那一样在你的机器上重新编码。不该重新编码的,一样都不动。

把声音去掉 给那些反正会静音播放的视频,或者浏览器读不了的声音轨道。

3 转换

以 Markdown 查看

怎么把视频转成 MP4

  1. 选那段视频。一次一个:WebM、MKV、MOV、M4V 或 MP4。浏览器直接从你的硬盘读它,页面会说它是什么:多长、多大、画面多大、装在什么容器里。
  2. 读那两句话。一句说画面,一句说声音。每一句要么说这条轨道已经是 MP4 要的样子、会原样复制过去,要么说它现在是什么、会被重新编码成什么。没有什么要设的,文件自己决定。要是声音是浏览器读不了的格式,或者你宁愿这段视频没有声音,勾上那个框把声音去掉。
  3. 转换,然后读那句写着「已核对」的话。该复制的复制,该重新编码的一帧一帧重新编码,进度条会说到哪了。然后做好的文件会在这里重新打开,它必须跟原来一样长、是 H.264、并且带着说好的声音。它在下载按钮下面从内存里播放,你能亲眼看到它还好好的。

更完整的说明

如何把视频转为普遍接受的 MP4 可顺利上传的 MP4 包含什么,WebM、MKV 和 iPhone MOV 为何被拒,哪些转换无损,以及如何在浏览器中无需上传完成。

有疑问?

画质会变差吗?

复制过去的部分不会,页面会说哪些是复制的。H.264 的帧和 AAC 的包一个字节不差地过去,所以一个里面是 H.264 的 MKV 出来就是画面一模一样的 MP4。非重新编码不可的轨道(VP9、VP8、AV1、HEVC 的画面;Opus、Vorbis、MP3、FLAC 的声音)会离相机远一代,码率按原文件花的量来定,所以丢的是一点而不是没有。无论哪种,都留着你的原文件。

为什么不把 HEVC 或 VP9 留在 MP4 里?它们更小。

因为那样的文件能打开的地方比你手上这个还少,而转换的意义就是让它到哪都能打开。MP4 里的 HEVC 需要机器可能没有的授权;MP4 里的 VP9 或 AV1 被大多数上传表单和每一个邮件客户端拒绝。H.264 加 AAC 是唯一没有人拒绝的组合,所以页面写的就是它,代价也事先说清,而不是藏起来。

我的 WebM 是录屏。声音能保住吗?

能。浏览器录的是 Opus,MP4 装不下它,所以会解码后重新编码成 160 kbit/s 的 AAC,比麦克风需要的多得多。画面(VP8 或 VP9)重新编码成 H.264。两样都在你的机器上做,做好的文件会在这里重新打开,核对它跟原来一样长、声音还在。

我的 MOV 为什么要转?它不就是 MP4 吗?

差不多。MOV 和 MP4 是同一个设计,一个里面是 H.264 和 AAC 的 MOV 几秒钟就原样复制过去,一帧都不重新编码,变的只是容器,而这正是那个只看扩展名的表单在拒绝的东西。里面是 HEVC 的 iPhone MOV 是另一种情况:画面会重新编码成 H.264,只要浏览器解得开 HEVC,大多数机器可以,但不是全部。

它读哪些文件?

WebM 和 MKV,画面是 VP8、VP9、AV1、H.264 或 HEVC,声音是 Opus、Vorbis、AAC、MP3 或 FLAC;MP4、MOV 和 M4V,画面是 H.264、HEVC、VP9 或 AV1,声音是 AAC。浏览器解不开的会点名:画面解不开就停下转换,声音解不开就去掉,画面照样转。AVI、WMV、FLV 和 MPEG-2 这里不读。

要多久?

复制大约等于把文件读两遍的时间:大多数视频几秒钟。重新编码要花你的机器编码画面所需的时间,有硬件编码器的话(大多数笔记本和近年的每一部手机都有)比视频本身还短;没有的话更慢,一段很长的 4K 视频怎么都要等一会儿。进度条会说到第几帧了,取消立刻停下,什么都不写。

我的视频会被上传到哪里吗?

不会。文件由你自己的浏览器在你自己的硬件上读取、按需解码、编码、写出,这一页的 Content-Security-Policy 列出了它可以联系的每一个地址,没有一个属于本站。最简单的自证办法是断开网络照样用。对这么大的文件来说,这也是最快的办法:上传通常比转换本身还慢。

手机上能用吗?

浏览器能解码和编码视频的手机上能用,而且手机自带的硬件编码器很快。手机缺的是内存:做好的文件会一直放在内存里直到你保存它,所以一段很长的视频可能超出手机能装下的量。先用视频剪辑剪短,或者在笔记本上转。

有大小限制吗?要钱吗?

文件是分块从硬盘读的,所以进来的文件比内存还大也没问题;做好的文件会一直放在内存里直到你下载,而且这里写出的 MP4 不能超过 4 GB。它是免费的,不注册、不登录,也没有试用期。本站带广告,那是养活它的东西;广告拿不到任何关于你视频的内容。

断网能用吗?

能。把页面加载一次,然后断开网络,它照样能用。这也是证明什么都没被上传的最简单的办法:一个把你的视频发出去转换的工具,你一拔网线它就停了。