DualCam

为什么双摄录像的成片和拍摄时看到的预览不一样

这完全取决于 App 是怎么实现的。有些双摄 App 在你拍摄时把两路画面分开保存,只在事后才把它们排成最终版式,这是一个独立的渲染步骤——拍摄时看到的实时画面只是最终结果的一个粗略预演,裁切、对齐或时序上出现细微差异是正常的,因为你拍摄时看到的东西本来就不是最终写进硬盘的东西。

而把两路画面实时合成进同一帧、直接录下这一帧的双摄 App,就没有这个落差。因为不存在事后再渲染这一步,也就没有什么可以引入差异的地方——文件里已经按顺序装着你当时看到的每一帧。DualCam 就是这样工作的:两路画面在你拍摄的同时就在 GPU 上被画进同一帧,写进视频文件的正是这已经合成好的一帧。

两种不同的实现路径,对应两种不同的保证

有必要把「录像」在双摄 App 里到底指什么说清楚。一种做法是分别保存两路源画面,把合成画中画或分屏版式当作独立的一步,放在你停止录制之后或导出的时候才去做——拍摄时的预览只是对这个最终版式的实时近似,并不是版式本身。另一种做法从不把两路画面分开:每一帧从两颗摄像头到达的那一刻就被合成,写进文件的正是这一帧已经合成好的画面,整条素材逐帧如此。

只有第二种做法才能如实承诺「拍到什么,就是什么」。如果一个 App 提示你成片处理完之后可能会和现在看到的略有不同,这通常说明它用的是第一种做法,而这个提示是准确的——取景框和成片之间确实存在一个处理步骤。

普通单摄录像也会和预览有出入,这是为什么

这个现象不是双摄录像独有的,了解它也有用,因为很多「成片和我记得的不一样」的抱怨,其实和有没有第二颗摄像头完全无关。相机 App 在写文件时可能会做防抖处理,这会对画面做裁切和位移,和更流畅、未防抖的实时预览相比,裁切范围会有细微差别。有些录制格式捕捉的动态范围比普通屏幕能显示的更宽,播放时还要为普通屏幕做色调映射压缩,所以同一段素材在不同屏幕、不同处理方式下看起来会略有不同。

这些都不是通常意义上的故障——它们是有意为之的处理步骤,用实时近似换取更好的成片效果,或者让同一段画面适配各种不同的屏幕。但它们确实是「你看到的」和「最终存下来的」之间真实存在的差异,而且和有没有第二颗摄像头参与完全无关。

实时合成能消除什么,又消除不了什么

DualCam 在拍摄的那一刻就把最终这一帧画好,只画这一次,所以上面说的这些都不适用于版式本身。两路画面之间的裁切、画中画的位置、滤镜色彩——取景框在某一刻显示的是什么,文件在那一刻记录的就是什么,因为它们从来就不是两个不同的东西。左右分屏为了塞进竖屏画布而从两侧各裁掉大约四分之一画面,这个裁切在你拍摄的时候就已经能看到了,不是事后才冒出来的意外。

这也解释了为什么成片可能和你记忆中的不一样,却并不代表哪里出了问题:版式、画中画所在的角、大小与形状、以及滤镜,都可以在录制过程中随时更改。如果你在拍到一半时把分屏切成了画中画,事后忘了这回事,成片会如实展示这个切换是在中途发生的——因为它记录的是当时屏幕上实际发生的一切,而不是提前定好、从头到尾不变的某一种版式。

实时合成管不到的,是 DualCam 写完文件之后再发生的事。把视频通过聊天软件发出去,或者发到某个平台上,那个 App 通常会按它自己的规则重新编码一遍,这一步完全在 DualCam 之外——具体这一步做了什么,可以看「为什么双摄录像发出去之后变差了」那篇。

延伸问题

DualCam 拍出来的东西会和拍摄时看到的不一样吗?

合成这一步本身不会——两路画面在你拍摄的同时就在 GPU 上被画进同一帧,写进文件的正是这一帧,之后不存在另外的渲染步骤去引入差异。之后再发生的变化,比如聊天软件在转发前重新编码,是在 DualCam 之外、在它已经完成工作之后发生的。

为什么我的分屏视频看起来比预期裁得更多?

竖屏画布比手机摄像头原生的 16:9 画面要窄,所以左右分屏必须从源画面两侧各裁掉大约四分之一,才能把两路画面都塞进去。这个裁切在拍摄时的实时预览里也存在——不妨在拍摄时多留意画面边缘,而不是假设成片裁掉了取景框里没有的东西。

为什么保存下来的视频版式会中途变化?

因为你(或者当时拍摄的人)改过。版式、画中画所在的角、大小与形状、滤镜,都可以在录制过程中随时调整,成片只是如实记录了每一刻实际选中的设置——它自己不会重新决定任何东西。

想直接开录?

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

前往 App Store 下载