iPhone 前后摄像头能同时直播吗
结论先说:像 DualCam 这样的 App 做不到。同时跑两颗摄像头,和把这份画面变成一路直播,是两个独立的问题,解决了第一个不会顺带解决第二个。DualCam 解决的是第一个:把两路画面实时合成到一帧里,直接写进手机上的一个视频文件。这个产品里没有服务器,这也是为什么你录的东西不会离开手机,除非你自己选择分享出去。
这一点值得说清楚,因为两件事从外面看很像——都是「两路摄像头的画面被实时处理」——但直播需要的链路,跟多路采集会话回答的其实是两个不同的问题。
多路采集会话给你的到底是什么
同时跑两颗摄像头是一项硬件能力,不是一项直播能力。它需要一个多路采集会话,iOS 从 A12 世代芯片开始支持,这也是 DualCam 把下限定为 iPhone XS、iPhone XR 及更新机型的原因。这个会话交给 App 的是两路可以读取、合成、并在同一遍处理里写入磁盘的实时画面流,跟网络连接毫无关系,也不需要网络——手机开着飞行模式,照样能从头到尾录完一段双摄视频。
直播问的是完全不同的问题:这台设备能不能一边持续编码、一边把画面推上网络,快到让远处的人在几秒之内看到刚刚发生的事。这是在「实时采集」之上又叠了一层「实时上传」,不管画面来自一颗摄像头还是两颗,这层问题都在。
写文件和推流不是同一份工作
本地录制只需要跟得上自己:合成一帧、编码、按视频格式要求的节奏写进本机已经存在的文件里。直播要做完这些之后,还得把编码结果交给一层可能卡顿、丢包、或者当下带宽就是不够的网络,而且画面必须实时适应这些波动,否则观众看到的就是卡顿和缓冲。把这条自适应的网络链路做好,本身就是一块分量不轻的工程,跟多路采集会话做的事情完全是两码事。
DualCam 的产品形态也是照着这个思路搭的:整个产品里没有服务器,素材留在手机上,直到你自己存进相册或者分享出去为止。要加上直播,意味着要加上这个 App 刻意没有的那一整块东西。
用录屏直播的变通做法,以及它的局限
iOS 确实有一种通用的办法可以把屏幕上的内容直播出去:Twitch、YouTube 或者平台自带的直播工具,可以通过系统的录屏选择器抓取手机屏幕内容,推送到对应服务。把它对准一个双摄预览画面,理论上确实能把两路摄像头的画面变成一路直播,因为对系统来说,那只是屏幕内容而已。
代价和用录屏代替真正的双摄录制 App 是同一回事:状态栏、屏幕上的操作按钮、任何通知横幅都会跟两路画面一起被录进直播里,而且对面的编码器是为屏幕分享调校的,不是为摄像头画面调校的。这个办法能当最后的手段用,但不是一个把网络那部分补上的双摄 App 会做出来的效果。
如果目标真的是直播
事后发布的一条录像,和一场实时直播,服务的是不同的需求,值得先想清楚自己到底要哪一种,再决定要不要走变通路线。反应视频、访谈、vlog——这些双摄录制本来就是为它们设计的场景——大多不需要「实时」,价值在于两个机位同时拍下、拍完就能直接发,而不在于即时送达观众眼前。如果确实需要实时直播,该找的是专门做直播的 App 或平台自带的直播功能,而不是一个录制类的 App,双摄与否都一样。
延伸问题
DualCam 会把我的视频上传或推流到什么地方吗?
不会。这个产品里没有服务器。录制时直接把画面写进手机上 App 自己的素材库文件,除非你自己存到相册或者分享出去,否则不会离开设备。
直播是不是像双摄支持一样,是个硬件限制?
不是。「这台 iPhone 能不能同时跑两颗摄像头」是硬件问题,「App 要不要把这份画面往外推流」是网络层面的问题,两者互不牵连。支持双摄采集的设备并不会因此被挡在直播之外,缺的只是 App 有没有实现联网推流这一整块功能。
能不能用系统录屏来给双摄预览画面直播?
技术上可以,因为系统录屏会把屏幕上的一切都录下来,包括状态栏、屏幕上的按钮和任何通知,而且编码器是为屏幕内容调校的,不是为摄像头画面调校的,所以只适合当最后的手段,不能当作真正的替代方案。