1 选那段视频
2 看看什么会变,什么不会
到哪都传得上去的 MP4,是 H.264 的画面加 AAC 的声音。你的文件已经有的那一样原样复制过去;没有的那一样在你的机器上重新编码。不该重新编码的,一样都不动。
把声音去掉 给那些反正会静音播放的视频,或者浏览器读不了的声音轨道。
3 转换
# MP4 转换 不管从录屏、压制还是相机里出来的是什么,都变成 MP4 里的 H.264 和 AAC。能复制的原样复制,非改不可的才重新编码。 > 在浏览器里把 WebM、MKV、MOV 或任何 MP4 变成装着 H.264 和 AAC 的 MP4,也就是每一部手机、每一个浏览器和上传表单都收的那种文件。已经是 H.264、AAC 的轨道原样复制;其余的在你的机器上重新编码。什么都不上传。 This is an interactive browser tool at https://httcup.github.io/tools/convert-to-mp4/. 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. 你选的那段视频,读取、拆开、重新写成一个 MP4,全都在这台机器的内存里完成,用的是你自己浏览器里的编解码器,和从这个地址发来的代码。这里根本没有能做上传的东西,这一页的另一头也没有服务器可以接收。一个 GB 的文件不会为了变成另一个 GB 而先跑一趟上传。 - ✗ 不上传 - ✗ 不注册 - ✓ 断网可用 - ✓ 开源 - ✓ 文件留在你的设备上 ## 怎么把视频转成 MP4 1. **选那段视频。** 一次一个:WebM、MKV、MOV、M4V 或 MP4。浏览器直接从你的硬盘读它,页面会说它是什么:多长、多大、画面多大、装在什么容器里。 2. **读那两句话。** 一句说画面,一句说声音。每一句要么说这条轨道已经是 MP4 要的样子、会原样复制过去,要么说它现在是什么、会被重新编码成什么。没有什么要设的,文件自己决定。要是声音是浏览器读不了的格式,或者你宁愿这段视频没有声音,勾上那个框把声音去掉。 3. **转换,然后读那句写着「已核对」的话。** 该复制的复制,该重新编码的一帧一帧重新编码,进度条会说到哪了。然后做好的文件会在这里重新打开,它必须跟原来一样长、是 H.264、并且带着说好的声音。它在下载按钮下面从内存里播放,你能亲眼看到它还好好的。 ## The longer version [如何把视频转为普遍接受的 MP4](https://httcup.github.io/tools/guides/convert-a-video-to-mp4/): 可顺利上传的 MP4 包含什么,WebM、MKV 和 iPhone MOV 为何被拒,哪些转换无损,以及如何在浏览器中无需上传完成。 ## Also in the box - [视频旋转](https://httcup.github.io/tools/rotate-video/): 转四分之一圈、半圈,或者往另一边转。使用文件头旋转时,每一帧画面保持原样。 - [图片转视频](https://httcup.github.io/tools/images-to-video/): 一个文件夹的图片,变成一段视频。 - [视频剪切](https://httcup.github.io/tools/trim-video/): 一边看一边标出要留的段落,最后拿回一个视频。 - [视频裁剪](https://httcup.github.io/tools/crop-video/): 把片子切到只剩要紧的那块。 ## Questions ### 画质会变差吗? 复制过去的部分不会,页面会说哪些是复制的。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` 列出了它可以联系的每一个地址,没有一个属于本站。最简单的自证办法是断开网络照样用。对这么大的文件来说,这也是最快的办法:上传通常比转换本身还慢。 ### 手机上能用吗? 浏览器能解码和编码视频的手机上能用,而且手机自带的硬件编码器很快。手机缺的是内存:做好的文件会一直放在内存里直到你保存它,所以一段很长的视频可能超出手机能装下的量。先用[视频剪辑](https://httcup.github.io/trim-video/)剪短,或者在笔记本上转。 ### 有大小限制吗?要钱吗? 文件是分块从硬盘读的,所以进来的文件比内存还大也没问题;做好的文件会一直放在内存里直到你下载,而且这里写出的 MP4 不能超过 4 GB。它是免费的,不注册、不登录,也没有试用期。本站带广告,那是养活它的东西;广告拿不到任何关于你视频的内容。 ### 断网能用吗? 能。把页面加载一次,然后断开网络,它照样能用。这也是证明什么都没被上传的最简单的办法:一个把你的视频发出去转换的工具,你一拔网线它就停了。 ## How the privacy claim is verifiable - **上传才是最慢的那一步,而这一步在这里不会发生。** 视频是大多数人这辈子要挪动的最大的文件,而每一个在线转换器都要先把整个文件拿到手:一个 GB 沿着你的网络传上去,为的是换一个不一样的 GB 传回来,上传花的时间通常比它换来的转换还长,这还没算谁留着那份文件的问题。这一页用从这个地址发来的代码读文件,用你浏览器里本来就有的编解码器写新文件,所以唯一在动的字节,是从你的硬盘到内存再回去。这一页的 `Content-Security-Policy` 列出了它可以联系的每一个地址,没有一个属于本站,而且断了网它照样能用。 - **这里的「MP4」是什么意思,以及为什么别的都不写。** 到哪都传得上去的那种文件,是普通 MP4 容器里的 H.264 画面加 AAC 声音。手机录出来的是它,每一个浏览器播的是它,聊天软件、邮件客户端和上传表单不问一句就收的也是它。WebM、MKV,或者里面装着 HEVC、VP9、AV1 的 MP4,被拒的地方多到人们会带着它来这里。所以这一页只写这一种。它从不把 H.264 之外的画面编码原样复制进结果,不管那个编码多好,因为一个能打开的地方比原文件还少的文件,不叫转换。 - **能复制的复制,非改不可的才重新编码,而且会说清是哪一种。** 转换不一定是重新编码。MKV 里的 H.264 帧和 MP4 要的是同一串字节,所以它们一帧一帧原样复制过去,什么都不丢;AAC 也一样。WebM 里的 VP9 或 VP8、iPhone MOV 里的 HEVC、声音里的 Opus 或 Vorbis:这些要解码后重新编码,结果离相机又远了一代。页面在你按任何东西之前就算好每条轨道是哪一种,用两句话说出来,好让「转换」这个词从来不用来遮住一次重新编码。 - **结果会重新打开核对一遍。** 一个丢了最后一秒、或者写了声音轨道却没写进声音的转换器,做出来的仍然是一个 MP4。所以做好的文件会在这里重新打开,用的就是读你上传那个文件的同一个读取器,它必须跟原来一样长、是 H.264、并且带着说好的声音。它在下载按钮下面从内存里播放,你保存之前就能亲眼看到它还好好的。 - **它在你机器上的代价,如实说。** 复制很快:文件读一遍拿布局,写的时候再读一遍。重新编码要花你的机器编码这段视频所需的时间,有硬件编码器的话(大多数笔记本和近年的每一部手机都有)比视频本身还短;没有的话会更慢,一段很长的 4K 视频怎么都要等一会儿。文件是分块从硬盘读的,所以进来的文件比内存还大也没问题,但做好的文件会一直放在内存里直到你下载它,笔记本的上限就在这里。「取消」随时有效。 - **它读哪些文件,不读哪些。** WebM 和 MKV(同一种格式的两个名字),里面可以是 VP8、VP9、AV1、H.264 或 HEVC 的画面,配 Opus、Vorbis、AAC、MP3 或 FLAC 的声音;还有 MP4、MOV 和 M4V,里面是 H.264、HEVC、VP9 或 AV1 的画面,配 AAC 的声音。浏览器解不开的画面(最常见的是没有授权的机器上的 HEVC)会点名拒绝;解不开的声音会点名去掉,画面照样转。AVI、WMV、FLV 和 MPEG-2 这里不读,页面会直说,而不是含糊地失败。 - **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/convert.js`;WebM 和 MKV 是怎么读的,看 `src/shared/mkv-reader.js`。这几个都够不着网络,旁边负责读和写的部分也一样。
怎么把视频转成 MP4
- 选那段视频。一次一个:WebM、MKV、MOV、M4V 或 MP4。浏览器直接从你的硬盘读它,页面会说它是什么:多长、多大、画面多大、装在什么容器里。
- 读那两句话。一句说画面,一句说声音。每一句要么说这条轨道已经是 MP4 要的样子、会原样复制过去,要么说它现在是什么、会被重新编码成什么。没有什么要设的,文件自己决定。要是声音是浏览器读不了的格式,或者你宁愿这段视频没有声音,勾上那个框把声音去掉。
- 转换,然后读那句写着「已核对」的话。该复制的复制,该重新编码的一帧一帧重新编码,进度条会说到哪了。然后做好的文件会在这里重新打开,它必须跟原来一样长、是 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。它是免费的,不注册、不登录,也没有试用期。本站带广告,那是养活它的东西;广告拿不到任何关于你视频的内容。
断网能用吗?
能。把页面加载一次,然后断开网络,它照样能用。这也是证明什么都没被上传的最简单的办法:一个把你的视频发出去转换的工具,你一拔网线它就停了。