iPhone 的夜览或原彩显示会影响双摄视频的颜色吗?
不会。夜览(Night Shift)和原彩显示(True Tone)改变的是屏幕怎么显示画面,不是摄像头采集到什么、也不是写进视频文件里的是什么。它们在 DualCam 已经做完的事情之后才起作用——两路摄像头画面早就被合成进同一帧、交给编码器之前,这两个滤镜根本还没机会碰到任何一个像素。
它们真正会影响的,是你按下录制之前的那一刻。这两个滤镜会给取景时看到的预览染上色调,而这层色调可能会让你把一个根本不存在的颜色差异,或者一个原因完全不同的颜色差异,当成问题去纠结。
夜览和原彩显示到底在做什么
原彩显示靠环境光传感器读取周围光线的颜色和亮度,实时调整屏幕的白平衡,让白色背景在暖黄的室内灯光下和偏蓝的日光下都尽量显得「白」。夜览按时间表工作,不看传感器:到了你设定的时段,整块屏幕会被整体调向更暖、更偏红的色调,思路是晚上少一点蓝光对眼睛更友好。两者都是货真价实的功能,但都只管屏幕这一件事。
它们都不属于摄像头的采集链路。它们所在的位置,是 iOS 里负责「已经渲染好的像素怎么显示到屏幕玻璃上」的那一层,和 AVFoundation 的相机系统完全是两套东西。照片 App、视频 App、游戏,甚至主屏幕,受到的处理都一样,因为滤镜加在显示输出上,不针对任何一个具体 App 认为自己画了什么。
为什么写进文件的画面碰不到它
DualCam 的流程方向正好相反:两路摄像头画面先在 GPU 上被画进同一张合成帧——本站其他几篇提到的「所见即所得」说的正是这一帧——然后这一帧才被交给视频编码器写进文件。这次交接发生在这一帧被显示出来之前。夜览和原彩显示动手的时机更晚,是在屏幕真正把已经在屏幕上的内容渲染出来的那一步,所以它们碰不到最终存进 MP4 的那些像素值。
这和「开着夜览截图会带色调,但同一部手机同一时刻拍的照片不会」是同一个道理:截图截的是屏幕的显示输出,而摄像头采集根本不经过屏幕这一层。双摄录像的行为更接近那张照片,而不是那张截图。
为什么预览还是可能骗到你
你取景时盯着的那块屏幕,会受这两个滤镜里正在生效的那一个影响,这意味着每天总有那么几个小时,实时预览和它最终写出的文件,颜色是真的不一样。如果你在录制时注意到前后摄像头「一边偏暖、一边偏冷」,值得先分清这是两路摄像头本身的差异,还是只是一层同样盖在两边上的暖色调屏幕滤镜。
前后摄像头真正的颜色差异有它自己的、和这无关的原因:两颗摄像头是两套独立硬件,各自有自己的传感器和自动白平衡,即使没有任何滤镜,对着同一个房间也偶尔会各自敲定出略有不同的色温。夜览和原彩显示是在这之上再叠加一层均匀的色调,而均匀的色调会同等地盖在合成帧的两半上,解释不了两边为什么不一样——它只会让整张画面,不管本来对不对,都更难用肉眼判断。
与其凭染色的屏幕猜,不如这样确认
如果这次拍摄真的在意颜色是否准确——比如分屏里两张脸的肤色要对得上,或者要判断某个滤镜效果是否合适——就在取景前从控制中心或「设置 > 显示与亮度」里关掉夜览和原彩显示,或者干脆避开夜览的生效时段拍摄。拍完之后,最快的核实办法是把这两个滤镜都关掉,在「照片」里打开刚存下的文件——同一块屏幕,同一个文件,只是少了拍摄时挡在中间的那层滤镜。
延伸问题
如果忘了关夜览或原彩显示,它们会被录进视频里吗?
不会。这两个滤镜作用在显示屏上,而这时 DualCam 早已把合成好的帧写进文件了,所以存下来的视频带的是两颗摄像头实际拍到的颜色,不带这层色调,跟你录制时屏幕看起来什么样没有关系。
这层色调只盖在画面里的一路摄像头上,还是整块屏幕?
整块屏幕。夜览和原彩显示作用于显示器的全部输出,不针对某一个 App 或某一路摄像头画面,所以如果你在拍摄时看到偏暖的色调,它会均匀地盖在合成帧里两路摄像头各自占的部分上,而不是只盖住一边。
我录制时看到前后摄像头颜色有差异,是夜览造成的吗?
不一定。两颗摄像头是各自独立的硬件,各有自己的自动白平衡,对着同一个房间也可能真的判断出不同的色温。夜览或原彩显示只会在这之上叠加一层均匀的色调,而不是造成两边不一样——在下结论之前,先关掉这两个滤镜看看差异是不是还在。