视频变速与慢动作

选一个倍速,把视频重录成新的时长。2 倍速省一半时间,0.5 倍速要花两倍时间,因为录制跟着播放器的实时进度走。

选择一个视频文件

使用说明

为什么这么慢

浏览器里没有直接改时间戳的接口。这一页的做法是把视频按目标倍速播放,一边播一边把画面画到画布上,再用 MediaRecorder 实时录一遍。播放器放多久,录制就要多久,所以慢放比快放更花时间。

想要秒级完成,用 ffmpeg 的 setpts=0.5*PTS 滤镜重编码,或者剪辑软件里的速度曲线。命令行能直接复制时间戳,不重新编码,但倒放和变速通常还是要重编码。

慢动作的帧率真相

30 帧的视频放慢到 0.25 倍,每秒只剩 7.5 个不同的画面,看起来会一顿一顿。录制时每秒还是写 30 帧,但其中很多是重复帧,观感不会因为这个变顺。

真正的慢动作靠拍摄帧率:120 帧或 240 帧拍下来,再按正常帧率播放。软件补帧是在两帧之间插值,人像和快速运动的物体容易出现拖影和果冻感。

声音的处理

变速会同时改变音轨时长。浏览器的播放器默认做音高校正,慢放时音调不会跟着降低太多,但语速会明显变慢。2 倍速以上,部分浏览器不再输出音频轨道,结果会变成无声视频。

需要单独的音频变速,可以用音频变速处理;只想把声音抽出来,用视频提取音频。

输出格式和画质

输出固定是 WebM,编码由浏览器的 MediaRecorder 决定,通常是 VP9 加 Opus。码率按 4 Mbps 写,和原片码率无关,所以低码率原片不会变清晰,高码率原片会掉一点细节。

需要 MP4 的话,导出的 WebM 可以再走一遍视频压缩或格式转换,也可以直接拖进剪辑软件里重新导出。

常见问题

为什么 0.5 倍速要等两倍时间?

因为录制走的是实时播放:视频按 0.5 倍速播放,播放器就得花两倍时间才能放完,画布也跟着录两倍时长。浏览器没有「跳着编码」的接口,想瞬间完成只能用 ffmpeg 的 setpts 滤镜。

变速后声音会变调吗?

多数浏览器的播放器默认开启音高校正(preservesPitch),慢放时声音变低沉但不至于像磁带拖慢那样怪异。2 倍速以上部分浏览器会直接丢掉音轨,输出只剩画面。

能倒放吗?

这一页不做倒放。浏览器不支持负的播放速率,倒放只能逐帧往回 seek 再逐帧画,一秒钟的视频要几秒才能处理完,而且很容易卡在关键帧上。需要倒放用桌面剪辑软件或 ffmpeg 的 reverse 滤镜。

4 倍速输出会不会变短?

会。输出时长约等于原时长除以倍速,文件体积也随之下降。4 倍速的 1 分钟视频输出大约 15 秒,但帧率还是跟着录制的 30 帧,所以画面会比原生 4 倍速播放更顺一点。

输出为什么是 WebM?

录制格式由浏览器的 MediaRecorder 决定。这个工具优先 VP9 加 Opus 的 WebM,Chrome、Edge、Firefox 都能直接播,Premiere、达芬奇和剪映也能导入。要 MP4 可以再用格式转换工具转一遍。

慢动作怎么做得更顺?

先确认原视频帧率。30 帧的视频放慢到 0.5 倍,实际只有 15 帧的观感;想接近电影慢动作,需要 120 帧或 240 帧拍摄的素材,再降到 0.25 倍。软件补帧只能插值,运动复杂时会糊。