1 选那段视频
2 转一下
手机拍横了的时候并没有把像素转过来:它往文件头里写了一个四分之一转,播放器会照着转。使用文件头旋转时,这一页改变显示矩阵,每一帧画面原样复制。声音会原样复制、重新编码为 AAC 或去掉。
把旋转烧进画面 把每一帧转好画出来,再重新编码成 H.264,给少数不认文件头的老桌面播放器。会丢一代画质,要花一次编码的时间;除非有播放器把片段放横了,否则别勾。
3 旋转
# 视频旋转 转四分之一圈、半圈,或者往另一边转。使用文件头旋转时,每一帧画面保持原样。 > 在浏览器里旋转视频。使用文件头旋转时,每一帧画面原样复制;为老播放器把旋转烧进画面时,画面会重新编码。AAC 声音原样复制,其他能解码的声音重新编码为 AAC,也可以去掉声音。MP4、MOV、WebM、MKV 进,MP4 出。什么都不上传。 This is an interactive browser tool at https://httcup.github.io/tools/rotate-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、M4V、WebM 或 MKV。浏览器直接从你的硬盘读它,页面会说它是什么,以及它现在是朝哪边显示的。 2. **选方向,看预览。** 往右转四分之一圈、往左转四分之一圈,或者倒过来。第一帧会按你选的方向、用文件将要写进去的同一套算法画出来,所以你看到的就是播放器会做的。只有播放器把片段放横了的时候才勾「烧进画面」;宁愿这段视频没有声音的话,勾上去掉声音。 3. **旋转,然后读那句写着「已核对」的话。** 文件头写好,每一帧复制过去,只要几秒;烧进画面要花一次编码的时间,进度条会说到哪了。然后做好的文件会在这里重新打开,它必须跟原来一样长、按你要的方向显示、并且带着它的声音。它在下载按钮下面从内存里播放,你能看到它是正的。 ## The longer version [如何无损旋转视频](https://httcup.github.io/tools/guides/rotate-a-video/): 手机视频为什么横着播放,文件头九个数字做什么,为什么多数旋转器白白重编码,什么时候该转像素,以及怎样无需上传。 ## Also in the box - [图片转视频](https://httcup.github.io/tools/images-to-video/): 一个文件夹的图片,变成一段视频。 - [视频剪切](https://httcup.github.io/tools/trim-video/): 一边看一边标出要留的段落,最后拿回一个视频。 - [视频裁剪](https://httcup.github.io/tools/crop-video/): 把片子切到只剩要紧的那块。 - [视频倒放](https://httcup.github.io/tools/reverse-video/): 最后一帧排在最前,连声音一起。 ## Questions ### 旋转会损失画质吗? 使用文件头旋转时,每一帧画面一个字节不差地复制过去,画质不变。只有把旋转烧进画面才会重新编码画面。AAC 声音原样复制;其他能解码的声音会重新编码为 AAC,除非选择去掉。声音也原样复制时,文件大小几乎不变。 ### 为什么在某个播放器里文件还是横的? 因为那个播放器不理显示矩阵。每一部手机、每一个浏览器、每一个现代播放器和剪辑软件都认它;少数老的桌面播放器不认,直接把存着的帧放出来。勾上「把旋转烧进画面」,帧本身会被转过来并重新编码成 H.264,那样每个播放器放出来都一样,代价是丢一代画质。 ### 往右转四分之一圈是哪边? 顺时针,就是你把手机往右转的时候画面顶部移动的方向。预览会把第一帧按你选的方向画出来,所以挑那个让它看起来是正的按钮,然后按大的那个。 ### 它读哪些文件? MP4、MOV 和 M4V,里面是什么画面都行,因为写进文件头的旋转不在乎帧是什么。WebM 和 MKV,里面是 H.264 就原样复制帧,其余的烧进画面,因为 MP4 的文件头只能围着 H.264 搭起来。AAC 声音原样复制;Opus、Vorbis、MP3 和 FLAC 重新编码成 AAC;浏览器解不开的声音会点名去掉。结果永远是 MP4。 ### 要多久? 普通的旋转只要几秒:文件读一遍拿布局,写的时候再读一遍,一个 GB 走的是你硬盘的速度。烧进画面要花你的机器编码这段视频所需的时间,有硬件编码器的话(大多数笔记本和近年的每一部手机都有)比视频本身还短;没有的话更慢。 ### 我的视频会被上传到哪里吗? 不会。文件由你自己的浏览器在你自己的硬件上读取、换文件头、重新写出,这一页的 `Content-Security-Policy` 列出了它可以联系的每一个地址,没有一个属于本站。最简单的自证办法是断开网络照样用。对这么大的文件来说,这也是最快的办法:上传比整件活儿还慢。 ### 手机上能用吗? 能。使用文件头旋转时,画面不解码,直接原样复制;声音可能需要编码为 AAC。做好的文件会放在内存里直到保存,手机通常可以容纳几百兆的结果。把旋转烧进画面还需要编码画面,手机的硬件编码器可以加速。 ### 有大小限制吗?要钱吗? 文件是分块从硬盘读的,所以进来的文件比内存还大也没问题;做好的文件会一直放在内存里直到你下载,而且这里写出的 MP4 不能超过 4 GB。它是免费的,不注册、不登录,也没有试用期。本站带广告,那是养活它的东西;广告拿不到任何关于你视频的内容。 ### 断网能用吗? 能。把页面加载一次,然后断开网络,它照样能用。这也是证明什么都没被上传的最简单的办法:一个把你的视频发出去旋转的工具,你一拔网线它就停了。 ## How the privacy claim is verifiable - **画面的旋转是文件头里的九个数字。** 手机把画面按传感器看到的样子存下,再把旋转写进轨道的显示矩阵,播放器会在屏幕上应用它。使用文件头旋转时,这一页写下你选的矩阵,每一帧画面原样复制,不重新编码。AAC 声音原样复制;其他能解码的声音会重新编码为 AAC,除非你选择去掉声音。声音也原样复制时,文件大小几乎不变。 - **上传才是最慢的那一步,而这一步在这里不会发生。** 每一个在线旋转工具都要先把整个文件拿到手:一个 GB 沿着你的网络传上去,为的是换一个转过的 GB 传回来,上传花的时间通常比它换来的活儿还长,这还没算谁留着那份文件的问题。它们多半还会重新编码一遍,为一件只需要九个数字的事丢掉一代画质。这一页用从这个地址发来的代码读文件,在内存里写出新文件,所以唯一在动的字节,是从你的硬盘到内存再回去。这一页的 `Content-Security-Policy` 列出了它可以联系的每一个地址,没有一个属于本站,而且断了网它照样能用。 - **谁认这个文件头,少数不认的怎么办。** 每一部手机、每一个浏览器、每一个现代播放器和剪辑软件都会应用显示矩阵;从 2010 年起手机拍的视频就是这么被正着显示的。少数老的桌面播放器不理它,直接把存着的帧横着放出来。为了它们,也为了那些你没法亲自检查的去处,页面提供把旋转烧进画面:每一帧转好画到画布上,再重新编码成 H.264。这会丢一代画质,也要花一次编码的时间,所以它是第二选择,页面也把它当第二选择来写。 - **结果会重新打开核对一遍。** 一个写错了矩阵、或者矩阵对了尺寸错了的旋转工具,做出来的文件仍然打得开。所以做好的文件会在这里重新打开,用的就是读你拿来那个文件的同一个读取器,它必须跟原来一样长、按你要的方向显示、尺寸也对得上、并且带着说好的声音。它在下载按钮下面从内存里播放,你保存之前就能看到它是正的。 - **它读哪些文件,写出什么。** MP4、MOV 和 M4V,里面是什么画面都行(H.264、HEVC、VP9 或 AV1),因为写进文件头的旋转不在乎帧是什么;WebM 和 MKV,里面是 H.264 就原样复制帧,不是的就烧进画面,因为 MP4 的文件头只能围着 H.264 搭起来。AAC 声音原样复制;Opus、Vorbis、MP3 或 FLAC 重新编码成 AAC;浏览器解不开的声音会点名去掉。结果永远是 MP4,因为那是什么都能播的那一种容器。 - **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/rotate.js`;一帧是怎么不被读取就搬过去的,看 `src/shared/copy-tracks.js`。这几个都够不着网络,旁边负责读和写的部分也一样。
怎么旋转视频
- 选那段视频。一次一个:MP4、MOV、M4V、WebM 或 MKV。浏览器直接从你的硬盘读它,页面会说它是什么,以及它现在是朝哪边显示的。
- 选方向,看预览。往右转四分之一圈、往左转四分之一圈,或者倒过来。第一帧会按你选的方向、用文件将要写进去的同一套算法画出来,所以你看到的就是播放器会做的。只有播放器把片段放横了的时候才勾「烧进画面」;宁愿这段视频没有声音的话,勾上去掉声音。
- 旋转,然后读那句写着「已核对」的话。文件头写好,每一帧复制过去,只要几秒;烧进画面要花一次编码的时间,进度条会说到哪了。然后做好的文件会在这里重新打开,它必须跟原来一样长、按你要的方向显示、并且带着它的声音。它在下载按钮下面从内存里播放,你能看到它是正的。
更完整的说明
如何无损旋转视频 手机视频为什么横着播放,文件头九个数字做什么,为什么多数旋转器白白重编码,什么时候该转像素,以及怎样无需上传。
盒子里还有什么
有疑问?
旋转会损失画质吗?
使用文件头旋转时,每一帧画面一个字节不差地复制过去,画质不变。只有把旋转烧进画面才会重新编码画面。AAC 声音原样复制;其他能解码的声音会重新编码为 AAC,除非选择去掉。声音也原样复制时,文件大小几乎不变。
为什么在某个播放器里文件还是横的?
因为那个播放器不理显示矩阵。每一部手机、每一个浏览器、每一个现代播放器和剪辑软件都认它;少数老的桌面播放器不认,直接把存着的帧放出来。勾上「把旋转烧进画面」,帧本身会被转过来并重新编码成 H.264,那样每个播放器放出来都一样,代价是丢一代画质。
往右转四分之一圈是哪边?
顺时针,就是你把手机往右转的时候画面顶部移动的方向。预览会把第一帧按你选的方向画出来,所以挑那个让它看起来是正的按钮,然后按大的那个。
它读哪些文件?
MP4、MOV 和 M4V,里面是什么画面都行,因为写进文件头的旋转不在乎帧是什么。WebM 和 MKV,里面是 H.264 就原样复制帧,其余的烧进画面,因为 MP4 的文件头只能围着 H.264 搭起来。AAC 声音原样复制;Opus、Vorbis、MP3 和 FLAC 重新编码成 AAC;浏览器解不开的声音会点名去掉。结果永远是 MP4。
要多久?
普通的旋转只要几秒:文件读一遍拿布局,写的时候再读一遍,一个 GB 走的是你硬盘的速度。烧进画面要花你的机器编码这段视频所需的时间,有硬件编码器的话(大多数笔记本和近年的每一部手机都有)比视频本身还短;没有的话更慢。
我的视频会被上传到哪里吗?
不会。文件由你自己的浏览器在你自己的硬件上读取、换文件头、重新写出,这一页的 Content-Security-Policy 列出了它可以联系的每一个地址,没有一个属于本站。最简单的自证办法是断开网络照样用。对这么大的文件来说,这也是最快的办法:上传比整件活儿还慢。
手机上能用吗?
能。使用文件头旋转时,画面不解码,直接原样复制;声音可能需要编码为 AAC。做好的文件会放在内存里直到保存,手机通常可以容纳几百兆的结果。把旋转烧进画面还需要编码画面,手机的硬件编码器可以加速。
有大小限制吗?要钱吗?
文件是分块从硬盘读的,所以进来的文件比内存还大也没问题;做好的文件会一直放在内存里直到你下载,而且这里写出的 MP4 不能超过 4 GB。它是免费的,不注册、不登录,也没有试用期。本站带广告,那是养活它的东西;广告拿不到任何关于你视频的内容。
断网能用吗?
能。把页面加载一次,然后断开网络,它照样能用。这也是证明什么都没被上传的最简单的办法:一个把你的视频发出去旋转的工具,你一拔网线它就停了。