1 选那段视频
2 说它最多能有多大
声音原样复制,容器占一点,剩下的摊到视频的时长上,就是画面可以花的。然后画面会沿着一架大家熟悉的尺寸阶梯往下缩,直到每一帧分到的足够让它看起来像一幅画面,并且从不往上。
阶梯是上限:画面从不会被放得比进来时更大,而一个小数字配一个大画面,就是一个糊掉的画面。
不要声音 不勾的话,声音会原样复制过去,花它本来就花的那些。去掉它,整个数字都归画面。
3 压缩
# 视频压缩 说一个它最多能有多大。剩下的工具来算,做完先量一遍再交给你。 > 在浏览器里把视频压到 8、16、25 或任意兆字节以下。说出大小,工具选画面尺寸和码率,编码,再量结果。什么都不上传,声音原样复制过去。 This is an interactive browser tool at https://httcup.github.io/tools/compress-video/. Files are processed on the device running that browser. Any deliberate sharing or optional network feature is described on the page. What follows is its written explanation; open the address to use it. ## Your 视频 are **processed in your browser**. No processing upload. 你选的那段视频,解码、缩小、重新编码、写回,全都在这台机器的内存里完成,用的是你自己浏览器里的编解码器,和从这个地址发来的代码。这里根本没有能做上传的东西,这一页的另一头也没有服务器可以接收。一个 GB 的文件不会为了变小而先跑一趟上传。 - ✗ 不上传 - ✗ 不注册 - ✓ 断网可用 - ✓ 开源 - ✓ 文件留在你的设备上 ## 怎么把视频压到一个发得出去的大小 1. **选那段视频。** 一次一段,MP4 或者 MOV。浏览器直接从你的硬盘上把它读进来,页面会说它是什么:多长、多大、画面尺寸多少、每秒花多少。 2. **说它最多能有多大。** 打一个兆字节数,或者按下别人给你的那个上限,8、16、25、50、100,或者现在这个文件的一半、四分之一。下面那一行会说这个数字能买到什么:视频的时长和声音给画面留下的尺寸和码率,以及结果大概会出来多大。要是你宁愿把整个数字都给画面,就把声音去掉。 3. **想自己定画面尺寸也可以。** 数字会自己选一级阶梯。你更清楚的时候就自己选,一段必须在 1080p 下还能看清字的录屏、一段只会在手机上看的视频,码率就摊在你选的那一级上。阶梯是上限:画面从不会被放得比进来时更大。 4. **压缩,然后读那句写着「已量过」的话。** 画面一帧一帧地解码、缩小、重新编码,进度条说它到了哪里。接着做好的文件会拿去对着数字量一遍,再在这里重新打开核对时长;要是超了,就再紧一点编码一次,页面会说。结果在下载按钮下面从内存里播放,你能亲眼看到它还好好的。 ## The longer version [如何把视频压到可以发送的大小](https://httcup.github.io/tools/guides/compress-a-video/): 大小上限让视频付出什么,容量花在哪里,为什么先降低尺寸,以及怎样在浏览器中少损失、无需上传地压缩。 ## Also in the box - [MP4 转换](https://httcup.github.io/tools/convert-to-mp4/): 不管从录屏、压制还是相机里出来的是什么,都变成 MP4 里的 H.264 和 AAC。能复制的原样复制,非改不可的才重新编码。 - [视频旋转](https://httcup.github.io/tools/rotate-video/): 转四分之一圈、半圈,或者往另一边转。使用文件头旋转时,每一帧画面保持原样。 - [图片转视频](https://httcup.github.io/tools/images-to-video/): 一个文件夹的图片,变成一段视频。 - [视频剪切](https://httcup.github.io/tools/trim-video/): 一边看一边标出要留的段落,最后拿回一个视频。 ## Questions ### 视频能压到多小? 压到你打的那个数字那么小,直到什么都看不清的那个点为止,页面会告诉你那个点在哪。声音原样复制,所以它花多少就是多少(普通立体声大约每分钟一兆),画面在最小的尺寸下也需要每秒几百 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` 列出了它可以联系的每一个地址,其中没有一个属于本站。最简单的验证办法,是把网线拔掉,照样用这一页。对这么大的文件来说,这也是最快的办法:上传通常比编码还久。 ### 手机上能用吗? 浏览器能编码视频的手机上能用,而且手机自带的硬件编码器很快。手机缺的是内存:做好的文件会一直放在内存里直到你保存它,所以一段很长的视频可能超出手机能装下的量。先用[视频剪辑](https://httcup.github.io/trim-video/)剪短,或者在笔记本上压。 ### 有大小限制吗?要钱吗? 工具里没有写死任何限制。视频是分块从硬盘读的,所以进来的文件比内存还大也没问题;限制在做好的文件,它会一直放在内存里直到你下载,几百兆的结果一台笔记本吃得下。它是免费的,不注册、不登录,也没有试用期。本站带广告,那是养活它的东西;广告拿不到任何关于你视频的内容。 ### 断网能用吗? 能。把页面加载一次,然后断开网络,它照样能用。这也是证明什么都没被上传的最简单的办法:一个把你的视频发出去压缩的工具,你一拔网线它就停了。 ## How the privacy claim is verifiable - **上传才是最慢的那一步,而这一步在这里不会发生。** 视频是大多数人这辈子试着发出去的最大的文件,这正是它发不出去的原因。每一个在线压缩工具都要先把整个文件收过去,900 MB 沿着你的网络传上去,才能拿回 25 MB,而那次上传通常比它换来的编码本身还要久,这还没算上谁留着这个文件的问题。这一页用你浏览器里本来就有的编解码器,在你自己的机器上编码,唯一移动的字节是从你的硬盘到内存再回来。页面的 `Content-Security-Policy` 列出了这一页可以联系的每一个地址,其中没有一个属于本站,把网络断掉它照样能用。 - **它从那个数字出发,因为那个数字才是重点。** 聊天软件允许 8 MB 或者 25 MB;邮件允许 25 MB;表单允许它写着的那个数。你要的是文件压到那个数以下,并且在数字允许的范围内尽量少丢东西。所以页面先问数字,再算剩下的:声音原样复制,容器占一点,剩下的摊到视频的时长上,就是画面可以花的码率。码率只有相对于它要画的像素数才有意义,所以画面会沿着一架大家熟悉的尺寸阶梯往下走,直到每一帧分到的比特足够让它看起来像一幅画面,并且从不往上走。这些页面在开始之前全都会说,画面尺寸你也可以自己定。 - **压缩过的视频是重新编码过的视频,页面会这么说。** 压缩在本地解码并重新编码画面,原始音频样本则原样复制。输出为包含 H.264 视频的 MP4,支持广泛,但接收端还须支持所复制的音频编码和视频配置。发送前请测试成品。 - **结果会量一遍,超了就再紧一次。** 编码器落在码率附近,而不是正好落在上面,所以文件会按比数字略低一点去要,然后量。要是量出来还是超了,就按超了多少重新算码率,把视频再编码一遍;两遍总是够的,用了两遍的时候页面会说。接着做好的文件会在这里重新打开,时长必须跟原来一样:一个丢掉最后一秒、或者丢掉声音的压缩工具,做出来的文件也一样更小,只有把结果读回来才分得出区别。 - **它在你机器上的代价,如实说。** 编码要花多久,取决于你的机器。有硬件编码器的话,最近十年的大多数笔记本和每一部手机都有,它比视频本身的时长还快;没有的话就慢一些,一段很长的 4K 视频不管怎样都要等一阵。整个文件是分块从硬盘读的,所以比内存还大的视频没问题,但做好的文件会一直放在内存里直到你下载它,笔记本的上限就在这里。取消随时有效。 - **它读哪些文件,不读哪些。** MP4 和 MOV,也就是手机、相机和录屏软件写出来的那种,里面装着 H.264、HEVC、VP9 或者 AV1 都行,只要你的浏览器解得开。iPhone 的 HEVC 视频在有 HEVC 许可的机器上都打得开,大多数机器都有。WebM、MKV 和 AVI 这里还不读,页面会明说,而不是含糊地失败。 - **Google 加载了什么,又没拿到什么。** 广告和统计脚本来自 Google。这两个都没有拿到关于你视频的任何东西:不是文件,不是一帧,不是文件名、大小、时长,也不是你要求的数字。每一行读取、编码或者写出视频的代码都由这个源站发出,并且列在代码仓库里。 - **打赏按钮加载了什么,又没拿到什么。** 页眉上那个「Buy me a coffee」按钮,是由 cdnjs.buymeacoffee.com 的一段脚本画出来的,字体取自 Google Fonts。它就是一个链接,仅此而已:它不上报访问,也拿不到任何关于你或者你视频的东西。你不点它就什么都不会发生,而点下去要去的是别人的网站。 - **断网也能用。** 把网络断掉,这一页上的所有功能照常。这是最简单的一个证明:一个把你的视频发出去压缩的工具,这时候就停了。 **Check it yourself.** None of the above has to be taken on trust. This page is generated from the templates and config in the repository by a build script you can read and run yourself, and the result is committed to the `dist` branch — so you can diff what is served against what a build of the sources produces: https://github.com/httcup/tools The files worth reading first are `config/site.toml` for the Content-Security-Policy,一个数字是怎么变成画面尺寸和码率的,看 `src/plan.js`;解码、缩小、编码,以及绕在它们外面原样复制的声音,看 `src/encode.js`。这几个都够不着网络,旁边负责读和写的部分也一样。
怎么把视频压到一个发得出去的大小
- 选那段视频。一次一段,MP4 或者 MOV。浏览器直接从你的硬盘上把它读进来,页面会说它是什么:多长、多大、画面尺寸多少、每秒花多少。
- 说它最多能有多大。打一个兆字节数,或者按下别人给你的那个上限,8、16、25、50、100,或者现在这个文件的一半、四分之一。下面那一行会说这个数字能买到什么:视频的时长和声音给画面留下的尺寸和码率,以及结果大概会出来多大。要是你宁愿把整个数字都给画面,就把声音去掉。
- 想自己定画面尺寸也可以。数字会自己选一级阶梯。你更清楚的时候就自己选,一段必须在 1080p 下还能看清字的录屏、一段只会在手机上看的视频,码率就摊在你选的那一级上。阶梯是上限:画面从不会被放得比进来时更大。
- 压缩,然后读那句写着「已量过」的话。画面一帧一帧地解码、缩小、重新编码,进度条说它到了哪里。接着做好的文件会拿去对着数字量一遍,再在这里重新打开核对时长;要是超了,就再紧一点编码一次,页面会说。结果在下载按钮下面从内存里播放,你能亲眼看到它还好好的。
更完整的说明
如何把视频压到可以发送的大小 大小上限让视频付出什么,容量花在哪里,为什么先降低尺寸,以及怎样在浏览器中少损失、无需上传地压缩。
盒子里还有什么
有疑问?
视频能压到多小?
压到你打的那个数字那么小,直到什么都看不清的那个点为止,页面会告诉你那个点在哪。声音原样复制,所以它花多少就是多少(普通立体声大约每分钟一兆),画面在最小的尺寸下也需要每秒几百 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 列出了它可以联系的每一个地址,其中没有一个属于本站。最简单的验证办法,是把网线拔掉,照样用这一页。对这么大的文件来说,这也是最快的办法:上传通常比编码还久。
手机上能用吗?
浏览器能编码视频的手机上能用,而且手机自带的硬件编码器很快。手机缺的是内存:做好的文件会一直放在内存里直到你保存它,所以一段很长的视频可能超出手机能装下的量。先用视频剪辑剪短,或者在笔记本上压。
有大小限制吗?要钱吗?
工具里没有写死任何限制。视频是分块从硬盘读的,所以进来的文件比内存还大也没问题;限制在做好的文件,它会一直放在内存里直到你下载,几百兆的结果一台笔记本吃得下。它是免费的,不注册、不登录,也没有试用期。本站带广告,那是养活它的东西;广告拿不到任何关于你视频的内容。
断网能用吗?
能。把页面加载一次,然后断开网络,它照样能用。这也是证明什么都没被上传的最简单的办法:一个把你的视频发出去压缩的工具,你一拔网线它就停了。