页面代码没有启动。

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

powershell -ExecutionPolicy Bypass -File serve.ps1

Then open http://localhost:8080/.

视频压缩

说一个它最多能有多大。剩下的工具来算,做完先量一遍再交给你。

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

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

实时检查: 核对中…

离线: 核对中…

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

1 选那段视频

2 说它最多能有多大

声音原样复制,容器占一点,剩下的摊到视频的时长上,就是画面可以花的。然后画面会沿着一架大家熟悉的尺寸阶梯往下缩,直到每一帧分到的足够让它看起来像一幅画面,并且从不往上。

阶梯是上限:画面从不会被放得比进来时更大,而一个小数字配一个大画面,就是一个糊掉的画面。

不要声音 不勾的话,声音会原样复制过去,花它本来就花的那些。去掉它,整个数字都归画面。

MB

画面尺寸

3 压缩

以 Markdown 查看

怎么把视频压到一个发得出去的大小

  1. 选那段视频。一次一段,MP4 或者 MOV。浏览器直接从你的硬盘上把它读进来,页面会说它是什么:多长、多大、画面尺寸多少、每秒花多少。
  2. 说它最多能有多大。打一个兆字节数,或者按下别人给你的那个上限,8、16、25、50、100,或者现在这个文件的一半、四分之一。下面那一行会说这个数字能买到什么:视频的时长和声音给画面留下的尺寸和码率,以及结果大概会出来多大。要是你宁愿把整个数字都给画面,就把声音去掉。
  3. 想自己定画面尺寸也可以。数字会自己选一级阶梯。你更清楚的时候就自己选,一段必须在 1080p 下还能看清字的录屏、一段只会在手机上看的视频,码率就摊在你选的那一级上。阶梯是上限:画面从不会被放得比进来时更大。
  4. 压缩,然后读那句写着「已量过」的话。画面一帧一帧地解码、缩小、重新编码,进度条说它到了哪里。接着做好的文件会拿去对着数字量一遍,再在这里重新打开核对时长;要是超了,就再紧一点编码一次,页面会说。结果在下载按钮下面从内存里播放,你能亲眼看到它还好好的。

更完整的说明

如何把视频压到可以发送的大小 大小上限让视频付出什么,容量花在哪里,为什么先降低尺寸,以及怎样在浏览器中少损失、无需上传地压缩。

有疑问?

视频能压到多小?

压到你打的那个数字那么小,直到什么都看不清的那个点为止,页面会告诉你那个点在哪。声音原样复制,所以它花多少就是多少(普通立体声大约每分钟一兆),画面在最小的尺寸下也需要每秒几百 kbit 才勉强是一幅画面。把声音去掉,它那份就归画面,对一段上限很紧的短视频来说,这常常是能看和糊成一团之间的差别。

为什么画面尺寸变了?

因为码率只有相对于它要画的像素数才有意义。每秒两兆比特在 720p 下很宽裕,在 4K 下就是一团泥,所以数字定下码率之后,画面会沿着阶梯往下走,直到每一帧分到的比特足够让它像一幅画面。一幅小而清楚的画面胜过一幅大而糊的,每一个接收上传的服务都在悄悄这么干。这里是在开始之前就说出来,你也可以自己选哪一级。

画质会变差吗?

重新编码画面可能丢失细节或产生压缩瑕疵。码率、画面尺寸、源文件和场景复杂程度都会影响可见变化;文件大小上限不能决定精确的画质损失量。音频保持原样复制。请播放结果,比较重要的文字和动作,并保留原本。

它写出来的是什么格式?

输出包含 H.264 视频和原始音频轨道副本的 MP4。MP4 中的 H.264 支持广泛,但接收端还必须支持所复制的音频编码和视频配置。请在目标应用中测试成品。本工具不输出 WebM、HEVC 或 AV1。

它读哪些文件?

MP4 和 MOV,也就是手机、相机和录屏软件写出来的那种,里面装着 H.264、HEVC、VP9 或者 AV1 都行,只要你的浏览器解得开。iPhone 的 HEVC 视频在有 HEVC 许可的机器上都打得开,大多数机器都有。WebM、MKV 和 AVI 这里还不读;碰到的时候页面会明说,而不是含糊地失败。

要多久?

取决于你的机器编码这段视频要多久。有硬件编码器的话,大多数笔记本和最近的每一部手机都有,它比视频本身的时长还快;一分钟的 1080p 通常不到一分钟。没有的话就慢一些,一段很长的 4K 视频不管怎样都要等一阵。进度条说它到了哪一帧,取消立刻停下,什么都不写。

为什么编了两遍?

因为编码器落在它被要求的码率附近,而不是正好落在上面,画面很忙的视频可能落在上方。文件会按比数字略低一点去要,然后量;要是量出来还是超了,就按超了多少重新算码率,再编码一遍。两遍总是够的,用了两遍的时候页面会说。

我的视频会被上传到什么地方吗?

不会。视频是你自己的浏览器在你自己的硬件上读取、解码、编码、写出的,页面的 Content-Security-Policy 列出了它可以联系的每一个地址,其中没有一个属于本站。最简单的验证办法,是把网线拔掉,照样用这一页。对这么大的文件来说,这也是最快的办法:上传通常比编码还久。

手机上能用吗?

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

有大小限制吗?要钱吗?

工具里没有写死任何限制。视频是分块从硬盘读的,所以进来的文件比内存还大也没问题;限制在做好的文件,它会一直放在内存里直到你下载,几百兆的结果一台笔记本吃得下。它是免费的,不注册、不登录,也没有试用期。本站带广告,那是养活它的东西;广告拿不到任何关于你视频的内容。

断网能用吗?

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