免费浏览器端媒体工具

把不同设备拍的片段合并:为什么会失败,以及怎么解决

当片段来自不同手机、相机或录屏软件时,流拷贝合并会失败。本文说明如何提前发现参数不一致,以及该采用哪种修复方式。

把不同设备拍的片段合并:为什么会失败,以及怎么解决

当片段来自不同手机、相机或录屏软件时,流拷贝合并会失败。本文说明如何提前发现参数不一致,以及该采用哪种修复方式。

为什么只有混用素材时才会出问题

同一台设备拍的短片是最简单的情况:手机或相机每次按下录制时都使用同一套编码设置。但安卓手机、iPhone、单反和 OBS 录屏各自对分辨率、帧率、音频采样率和像素宽高比有自己的默认选择,而这些选择已经被写入文件本身。

正因如此,昨天能顺利合并的流程今天可能失败:在文件管理器里两个文件看起来一样,但内部的流是用不同设置编出来的。扩展名完全说明不了这件事。

合并前怎么发现参数不一致

  • 先看分辨率。用播放器打开每个片段,记下显示的宽高。1920×1080 和 3840×2160 混在一起是明显的不一致。
  • 注意帧率差异。30fps 与 60fps 片段在不做归一的情况下拼接,衔接处会看到卡顿,总时长也会漂移。
  • 注意声音。某个片段完全没有音轨是很常见的原因,采样率不同(例如 44.1kHz 与 48kHz)也会造成问题。
  • 注意方向。竖屏录制的片段本质上是一段横向流加上旋转标记,流拷贝会原样保留这个标记。

三种解决方式,按推荐顺序排列

  • 1. 先把参数一致的片段合并,再单独处理那个例外。如果四段里有三段来自同一台手机,先合并这三段是成本最低的做法。
  • 2. 把那个例外片段按其他片段的设置重新导出一次,然后再整体走流拷贝合并。这样只付出一次重编码的代价,而不是到最后把整个合并流程全部重编码一遍。
  • 3. 整个合并统一走重编码。以第一个片段的分辨率和帧率为目标,其余片段全部做缩放、补边和帧率对齐。这条路一定能成功,也是最慢的一条。

为什么在浏览器里这个取舍格外明显