音视频

视频格式转换

换视频格式,能不重新编码就不重新编码。MOV 转 MP4、MKV 转 MP4 这类,多半只是换一层外壳,画面和声音原样搬进去就行。FFmpeg 在你的浏览器标签页里运行,文件不上传。

  • 目标格式收得下的流就直接复制,不解码也不重编,出来的画质和原片完全一致
  • 11 种输出格式;动手之前先把画面和声音各自会被怎么处理写清楚

把视频文件拖到这里

文件只留在你自己的设备上,不会上传

可读取 MP4、MOV、MKV、WebM、AVI、WMV、FLV、MPEG-TS、MPG、3GP、OGV,以及 FFmpeg 认识的绝大多数格式。

还没有选择视频

先选一个视频文件。选了之后才会开始下载引擎。

转换

功能简介

大多数格式转换其实根本不需要动到画面。这个工具会先算清楚哪些部分真的必须重新编码,只做那一部分,并且在动手之前把判断依据摆给你看。

  1. 01

    能复制就不重编

    MOV 里装的通常就是 H.264 画面加 AAC 声音——正好是 MP4 能收的。所以转换做的事是换一层外壳,把现有的数据包搬进去,几秒钟结束,画面和原片一模一样。把这对本来就兼容的流再重编一遍,只会多花时间,也多损失一代画质。

  2. 02

    动手之前先说清楚要做什么

    还没开始跑,右侧就写明白了:画面是复制还是重编,声音是复制还是重编,以及各自为什么。母带级的文件敢不敢直接丢进去,差别就在这里——而不是先拿副本试一遍。

  3. 03

    11 种输出格式

    MP4、MKV、WebM、MOV、AVI、MPEG-TS、FLV、WMV、OGV、MPG、3GP,每一种都只给出真正属于它的编码格式。选项会跟着格式变,不会让你选一个封装器跑到一半才拒绝的组合。

  4. 04

    奇怪的组合会提前警告

    MP4 里塞 VP9 是合法文件,但不少软件根本打不开;MP4 里的 HEVC 苹果设备能播,Chrome 常常不能。这两种都会标出来并说清后果,免得一次「技术上成功」的转换,过几天才在别处翻车。

  5. 05

    能读的远比能写的多

    FFmpeg 能处理 WMV、FLV、RealVideo、DivX、VOB、MTS 这类老格式,也支持大多数现代格式。能在别处播放的文件往往也能在这里读出;但文件损坏,或所用编码不在这个浏览器引擎里时,仍可能失败。

  6. 06

    全程本地处理,不上传

    FFmpeg 编译成 WebAssembly 后在标签页里运行。没有上传、没有排队、没有水印,也不用注册账号。代价是浏览器内存给文件大小画了一条实际的上限;换来的是采访素材、客户拍摄和内部系统录屏都留在你自己机器上。

如何使用

从一个打不开的文件,到一个能用的文件,四步。

  1. 01

    把视频拖到页面上,或者用选择文件。引擎从这一刻开始下载,大约 31 MB,只下这一次;接着文件会被读一遍,取出容器、编码格式和画幅。

  2. 02

    选输出格式。凡是要发出去、要播放、要上传的,答案几乎都是 MP4;而 MKV 是那个几乎什么流都肯原样收下的选择。

  3. 03

    看右边的方案。它会写明画面和声音各自是复制还是重新编码,以及为什么。除非你确实需要某个指定编码格式或者更小的画幅,否则「处理方式」保持自动就好。

  4. 04

    点「开始转换」。转好的文件出现在右侧;如果是浏览器能播的格式,下载之前就可以先播一遍确认。

功能说明

决定你拿到的到底是不是你要的那个文件的那些细节。

  • 11 种输出容器:MP4、MKV、WebM、MOV、AVI、MPEG-TS、FLV、WMV、OGV、MPG、3GP
  • 目标容器收得下源编码格式时自动直接复制流,中间完全没有解码这一步
  • 逐路流的方案说明:复制还是重编、最终是什么编码格式、以及理由,全部在开始之前给出
  • 视频可编码为 H.264、VP8、ProRes、MPEG-4 Part 2、MPEG-2、Theora、WMV 8 或 Sorenson H.263
  • 音频可编码为 AAC、MP3、Vorbis、AC-3、MP2、FLAC、ALAC、WMA 或 PCM,也可以整轨去掉
  • 编码格式选项按所选容器实际接受的范围过滤
  • 合法但少见的组合会警告;复制过来的画面还是 HEVC 或 AV1、而浏览器对它们支持不一时,同样会警告
  • 可选缩放到 2160p、1440p、1080p、720p、480p、360p,预设标的是短边,竖屏保持竖屏
  • MP4、MOV、3GP 会写入 faststart,下载没完成就能开始播放
  • 引擎下载时显示真实字节进度,转换开始后显示转换进度
  • 转好的文件会给出相对源文件的体积占比,以及有没有东西被重新编码过
  • 全部在浏览器标签页里完成——不上传、不排队、不注册、不加水印

适合哪些场景

把人推到「找个视频格式转换工具」这一步的那些场景。

  1. iPhone 拍的 MOV,Windows 上打不开

    这段录像里本来就是 H.264 加 AAC,正好是 MP4 装的东西。转成 MP4 就是把两路流搬进新外壳,几秒钟完成,什么都没重编,什么都没损失。这是最常见的一种转换,也是最不该付出画质代价的一种。

  2. 下载来的 MKV,剪辑软件死活不肯导入

    Matroska 存东西很在行,剪辑软件对它的支持却一向勉强。里面是 H.264 时,搬到 MP4 就是一次复制;是 HEVC 或者更老的东西时,方案会写明白,并且只重新编码非改不可的那部分。

  3. 归档盘里翻出来的老 AVI、WMV、FLV

    DivX 和 Flash 年代的文件至今还散落在共享盘和备份硬盘里,而现在的软件越来越不肯认它们。转成 MP4 能把它们拉回到所有设备都能播的状态;而且很多时候画面虽然必须重编,声音却还能直接复制过去。

  4. 让一段视频在网页里原生播放

    HTML5 视频里,WebM 配 Vorbis 是开放格式的一条路,MP4 配 H.264 则覆盖最广。从同一个源文件各跑一遍就都有了,而方案会告诉你哪一遍是复制、哪一遍是真的在编码。

  5. 给剪辑软件准备素材

    长 GOP 的 H.264 会让剪辑软件在每一次拖动时间线时都吃力。转成 MOV 里的 ProRes,等于把可以直接取用的帧交给软件,不必再一路重建——文件大得多,但拖动流畅得多。

  6. 只收 MP4 的上传表单

    求职投递、课程作业、客服工单,动不动就点名一种格式,别的一概不收,有时候还非要等你上传完才告诉你。事先转成对方要的那种,本来会被打回的一次提交就能过了。

  7. 录像能播,但没有声音

    有些容器里装着播放器解不开的音频,MKV 里的 AC-3 或 DTS 是最常见的罪魁。把声音重新编码成 AAC、同时画面照旧直接复制,声音就修好了,既没动到画面,也不用等一次完整转换。

  8. 不该往外传的素材

    采访录音、医疗影像、客户的素材、内部系统录屏,里面的东西本来就不该出现在某个转换网站上。这里的一切都发生在标签页内,转换过程中打开网络面板就能自己核实。

延伸阅读

换格式和把文件变小不是一回事:如果卡住你的是体积上限而不是播放器,那要用的是从 MB 数字倒推参数的 视频压缩。如果要改的是画幅——换分辨率、裁掉一块、横屏转竖屏——那属于 视频尺寸调整与裁剪。而如果你只关心声音,把音轨从录像里抽出来存成 MP3,是 音频转换器在做的事。

容器和编码格式是两回事

视频格式里绝大多数让人犯迷糊的地方,都来自把扩展名当成格式。它不是:.mp4 说的是外面那个盒子,里面装什么是另一个独立的决定。这两件事一旦分开看,转换里的大部分问题答案都会变得显然。

  1. 容器是盒子

    MP4、MKV、WebM、MOV、AVI 都是容器。容器负责装下一路或多路流,连同让它们保持同步的时间信息,以及供播放器跳转用的索引。它自己不做任何编码。

  2. 编码格式是盒子里的东西

    H.264、HEVC、VP9、AV1、MPEG-4 Part 2 是视频编码格式;AAC、MP3、Opus、Vorbis 是音频编码格式。它们决定画面和声音怎么压缩,因此也决定了画质,以及某个播放器到底解不解得开。

  3. 容器都挑食,但挑的程度差很远

    MP4 收 H.264、HEVC、MPEG-4 Part 2 和另外几种。WebM 只收 VP8、VP9 和 AV1。MKV 几乎什么都收,所以碰上冷门的流,它是最靠谱的落脚点。一次转换能不能只做复制,就是由这件事决定的。

  4. 所以「MOV 转 MP4」通常是白送的

    两种容器都接受 H.264 和 AAC,于是相机吐出来的那路流不用改动就能装进新盒子。不解码、不二次压缩,出来的视频逐字节相同,变的只是外面那层手续。

  5. 而「MP4 转 WebM」不是

    WebM 在任何情况下都不装 H.264。画面必须完整解码再编码成 VP9 或 VP8,这要花真实的时间,也要付出一代画质。这不是工具做得不够好,这就是格式边界本身。

  6. 扩展名是标签,不是保证

    把 .mkv 改名成 .mp4,里面一个字节都没变,而且通常会变得播不了——因为播放器现在会去找一套根本不存在的结构。真正的转换是把那套结构重写一遍,而这正是这里做的事,即便一路流都没被动过。

使用建议

让你第一次就拿到能用文件的几个习惯。

  • 先别动「处理方式」,保持自动——如果方案显示两路流都是直接复制,你几秒钟就能拿到换了外壳的同一段视频,再去重新编码没有任何好处
  • 凡是要发出去、要播放、要上传的一律选 MP4,只有当对方点名要别的格式时才换
  • 方案说画面必须重新编码时,退一步选 MKV:它几乎什么流都收,通常能把那次代价不小的重编变回一次重写
  • 看方案而不是看格式名——同样一句「转成 MP4」,换个文件可能是瞬间完成,也可能是一次完整重编,右侧写的就是你手上这个属于哪种
  • 只有确实需要更小的画幅时才去设分辨率,因为只要不是「保持原样」就一定会重新编码,哪怕单纯换个格式本来根本用不着
  • 文件本身有毛病时,就该主动重新编码:播放器因为容器之外的原因拒绝一路流时,换成 MP4 里的 H.264 基本都能收
  • 尽量从原始文件转,而不是从上一次转换的结果转,因为每一次重新编码都是叠在上一次之上的
  • 长视频或高分辨率的活尽量在电脑浏览器上做,手机分给标签页的内存要少得多

边界与注意事项

这个工具刻意不做的事,以及它力不从心的地方。

  • 直接复制流是无损的,但重新编码不是。H.264、VP8 这些本身就是有损格式,所以只要重编过,无论画质档位调多高,都比原片多了一代损失。
  • 只带走一路视频和一路音频。多余的语言音轨、字幕流和章节都会被丢掉,这一点对那些自带好几路音轨和字幕的 MKV 影响最大。
  • HEVC 和 AV1 能读能复制,但产不出来。引擎里根本没有 AV1 编码器,而它的 HEVC 编码器在单线程的浏览器版本里跑不起来,所以这个工具能写出的现代编码格式是 H.264。
  • VP9 同样产不出来:这个版本的编码器会报内存错误,所以 WebM 输出编的是 VP8。把已有的 VP9 流直接复制进 WebM 或 MKV 仍然可行。
  • AV1 在这里两个方向都没法重新编码,因为这个版本的解码器要靠 WebAssembly 够不到的硬件。把 AV1 流直接复制进收得下它的容器仍然可行,因为那条路压根不解码。
  • 它不做截取、裁剪、旋转、拼接、加字幕,也不按目标体积压缩。那些是另外几件事,下面有对应的工具。
  • 重新编码是在 WebAssembly 里单线程跑的,比桌面版 FFmpeg 慢。直接复制不受影响——那条路几乎不怎么用到 CPU。
  • 整个视频要先读进内存才能开始,而 WebAssembly 是 32 位的,所以超过 250 MB 左右就会变得不可靠。
  • 引擎第一次使用时大约 31 MB。之后会被缓存,但在一个全新的浏览器配置里,第一次仍然要付这份下载。
  • 浏览器不播放的那些格式——MKV、AVI、WMV、FLV、MPEG-TS、MPG、3GP——能正确生成,但这里没法预览。下载下来用播放器打开即可。
  • 真正损坏的文件可能根本读不出来。重写一遍能修好丢失或错位的索引,但补不回文件里从来就没有的数据。

常见问题

视频格式不对的时候,最常问到的那些问题。

MOV 转 MP4 怎么才能不损失画质?

选 MP4,「处理方式」保持自动就行。手机和相机拍出来的 MOV 里,几乎一定是 H.264 画面加 AAC 声音,而这两样 MP4 都收,所以两路流会被直接复制进新容器,而不是解码后再压一遍。右侧方案里画面和声音都会显示「直接复制」,最终文件的画质和原片完全一样,而且只要几秒钟。

MKV 怎么转成 MP4?

选 MP4,然后看一眼方案。MKV 里装的是 H.264 或 HEVC 时,MP4 都收得下,画面会原样搬过去;声音同样直接复制,除非它是 MP4 不收的东西,比如 Vorbis 或 DTS,那种情况下只有声音会被重新编码成 AAC。另外要注意只有第一路视频和第一路音频会跟过来,所以自带多语言音轨或字幕的 MKV 转完之后会变简单。

转换视频会降低画质吗?

只有真的重新编码了才会。直接复制流搬的是原封不动的压缩数据,结果和源片完全一致,任何设置都既改善不了也破坏不了它。重新编码则要把画面解码后再压一遍,多少总会损失一点。到底走的是哪一种,方案里写着;而自动模式的原则就是:只要格式允许,就绕开第二种。

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

不会。引擎是编译成 WebAssembly 的 FFmpeg,运行在你的浏览器标签页里。文件从磁盘读进标签页的内存,结果再作为下载写回来,整个过程没有任何关于这个文件的数据经过网络。转换的时候打开浏览器的网络面板就能自己确认。

容器和编码格式有什么区别?

容器就是文件格式本身——MP4、MKV、WebM——它负责装下各路流,以及让文件能正常播放所需要的时间信息和索引。编码格式指的是里面的画面和声音怎么压缩,比如 H.264 或者 AAC。播放器完全可能支持某个容器却解不开里面的东西,这就是「我的 MP4 播不了」为什么是个真实而常见的问题,也是这个工具把两者分开报告的原因。

把 .mkv 直接改名成 .mp4 行不行?

不行,而且通常会更糟。扩展名只是个标签,文件里的字节是按真正的容器排布的,播放器被告知这是 MP4 之后会去找一套根本不存在的结构,于是直接拒绝。真正的转换会把这套结构规规矩矩地重写一遍;当里面的流本来就兼容时,它几乎和改名一样快,区别只在于它真的有用。

到底该转成哪种视频格式?

没有特殊理由就选 MP4 配 H.264:浏览器、手机、剪辑软件和上传表单全都认,而且大多数源文件都能不重编就直接复制进去。想在网页里用开放格式原生播放就选 WebM;需要一个能原样收下冷门流的容器就选 MKV;目标是剪辑时间线,就选 MOV 配 ProRes。

转成 MP4 之后还是播不了,为什么?

看一眼方案说往里面装了什么。装着 HEVC 的 MP4 在苹果设备上能播,别处往往不能;装着 VP9 的 MP4 是合法文件,但很多软件不认——这两种在转换之前都会被标出来。把「处理方式」切到重新编码并选 H.264,得到的就是那个基本哪儿都能播的组合,代价是一次完整编码。

转出来的文件没声音,或者语言不对,是怎么回事?

只有第一路音频会跟过来,所以带多条语言音轨的文件转完之后,留下的是排在最前面的那一路。如果是完全没声音,通常是因为容器拒收了源文件的音频编码格式——方案里会把它点出来,并重新编码成这个容器接受的格式,一般这样就够了。

为什么 MOV 转 MP4 一瞬间就好了,MP4 转 WebM 却那么慢?

因为这是两件不同的事。MOV 和 MP4 都接受 H.264,所以流不用解码就能搬过去。而 WebM 只接受 VP8、VP9 和 AV1,所以 H.264 的画面必须完整解码再编码一遍——每一帧,单线程,还是在浏览器标签页里。你要做的是哪一种,方案里在你点下按钮之前就写明白了。

这个工具能转 HEVC、AV1 或者 VP9 吗?

三种都能读,也都能直接复制进收得下它们的容器,因为复制这条路压根不解码。但它产不出这三种:这个版本没有 AV1 编码器,HEVC 编码器在单线程环境里跑不起来,VP9 编码器则会报内存错误,所以 WebM 输出编的是 VP8。把 AV1 重新编码成别的格式同样做不到,因为解 AV1 要靠 WebAssembly 用不上的硬件。源文件是 HEVC 或 VP9 时,转成 H.264 是正常可用的。

能转多大的文件?要花多久?

直接复制基本和时长无关,因为什么都不解码,卡住它的是内存而不是时间。重新编码则和时长、分辨率以及你的机器都有关,而且是单线程跑的,所以一段又长又高清的素材会实打实地花时间。两种情况下实际上限都在 250 MB 左右,因为整个文件在处理期间都压在标签页里。

更多相关工具

更多在本地、只跑在浏览器里的视频工具。