DualCam

双摄视频的音画为什么会不同步

如果你听到的话和画面里的口型对不上了,第一件该查的事,是你到底在哪儿看这个文件。双摄录像本身是一个 MP4,里面只有一条视频轨和一条音轨,录制停止的那一刻两条轨道一起收尾——不存在另一份素材可以拿来跟它「漂移」。回到录制它的那台设备,打开原始文件看一遍,那里看到的同步状态才是真的。你平常遇到的,通常是这个文件离开 App 之后、经过别的什么环节处理过的一份拷贝。

下面先讲清楚一个视频文件里「同步」到底是怎么回事,再讲清楚为什么一份实时合成出来的单文件不会有两路独立摄像头素材那种漂移问题,最后讲讲真正的不同步会从哪几个地方冒出来。

一个视频文件靠什么把声音和画面绑在一起

视频文件里存的不是一条连续的流,而是两条:一串视频帧和一串音频采样,各自都标着相对同一个时钟的时间戳,播放器就是照着这条共同的时间线,决定某一刻该显示哪一帧、该放哪一段声音。只要两条轨道的时间戳来自同一个时钟,而且录完之后没有什么东西去动它们,这两条轨道不管播多久都会锁在一起。

所以不同步这件事,说到底说的是时间戳出了问题,不是声音或画面本身出了问题。要么两条轨道从一开始就不是照着同一个时钟打的戳,要么是录完之后——二次编码、剪辑、带着自己延迟的播放链路——把其中一条相对另一条挪动了。

为什么一份合成出来的文件不会有多摄像头素材那种老问题

大家在多摄像头拍摄里最常遇到的同步问题,说到底是两个独立文件的问题:一段前摄素材、一段后摄素材,各自由自己的设备或自己的采集链路录下来,各自跑在自己的时钟上。这两个时钟哪怕差一点点,拍得越久累积得越明显,这正是真正的多机位制作要靠打板、共用时间码或者对轨音去给剪辑师一个「这一刻两段素材肯定对得上」的锚点的原因。

实时合成的双摄 App 从一开始就不会走到这一步。前后两路画面在到达的那一刻就被画进 GPU 上的同一帧,而这一帧——连同麦克风在同一时刻收到的声音——才是被写进文件的东西,走的是同一个采集会话、同一个时钟。这里不存在另一段素材的时间戳可以拿来漂移,因为一份合成出来的录像从头到尾就只产出一条视频轨和一条音轨,装在同一个文件里。

真正的不同步从哪儿来

发送途中的二次编码

聊天软件、社交平台和大多数分享工具在发送视频之前都会重新编码一遍,用画质、有时也用精确的帧时间去换一个更小更快的文件。一次正常的重新编码不会破坏同步,但如果这个过程被打断——上传卡了一下、App 处理到一半崩溃、分享超时后又重试——就可能让两条轨道的时间戳相对彼此挪了个位。这是现实中最常见的原因,而且发生在录制之后,不在录制过程里。

剪辑软件用错了帧率导出

把素材拖进剪辑软件,导出时用的帧率和原素材对不上,是给一份本来没问题的文件平白引入漂移的经典操作。音轨照常速播放,视频轨却被悄悄拉伸或压缩去凑另一个每秒帧数,两者的差距会随素材变长而越拉越大。导出前把项目帧率和原素材对齐,这个问题就不会出现。

延迟来自你看它的方式,不是文件本身

有些播放链路只在声音这一侧多加了一点延迟——常见的是蓝牙音箱或者电视自己的音频处理——完全不碰文件本身。这种情况的表现是从第一秒到最后一秒偏移量都差不多固定,而不是随时间越拉越大,这正是用来判断「文件本身没问题,延迟来自播放这一端」的标志。

怎么分清楚是哪一种情况

打开原始录像真正存放的地方——DualCam 自己的媒体库,或者直接存到「照片」里的那份拷贝——先看开头一段,再看一分钟之后的一段。如果那里始终对得上,说明源文件没问题,问题出在你用来发送、剪辑或播放那份对比拷贝的环节上。如果差距在录制它的那台设备上、看原始文件时就在不断拉大,那就是另一回事了:长镜头在高负载下可能会在固定 30 帧的上限里出现卡顿,这个值得单独去了解,而不是当成音频问题来处理。

DualCam 写出来的文件就是上面说的这个结构:一条合成好的视频轨,一条单声道音轨,一起创建、录制结束的那一刻一起收尾。之后不需要去对齐什么,因为它们从一开始就没有分开过。

延伸问题

双摄录像本身会出现音画不同步吗?

不会像两路独立摄像头素材那样。它写出来就是一个文件里的一条视频轨和一条音轨,录制停止时一起收尾,不存在另一段素材的时钟可以拿来漂移。真看到不同步,先查原始文件——你看的那份拷贝很可能事后被重新编码或剪辑过。

为什么在自己手机上看是对的,朋友转发回来就不同步了?

因为它在传输途中被重新编码过——大多数聊天和社交 App 发送视频前都会压缩一遍,一次被打断或者不太正常的编码,就可能让两条轨道相对彼此挪位。手机里 App 自己录出来的那份,才是可信的原始版本。

用外接麦克风会更容易出现这个问题吗?

不会。不管用的是哪支麦克风,它收到的声音都还是被写进同一条音轨、同一个文件、同一个时钟下的视频。真正决定同不同步的,是录完之后这个文件经历了什么,不是谁在给它收音。

我在剪辑软件里重新导出之后素材就不同步了,怎么回事?

几乎可以肯定是导出设置的帧率和原素材对不上。导出前把项目帧率调成和原素材一致,漂移就会消失。

想直接开录?

DualCam 让 iPhone 前后摄像头同时工作,边拍边合成为一个 MP4。免费、无需注册、无广告,素材不出手机。

前往 App Store 下载