DualCam

隔空播放或投屏会打断 iPhone 双摄录像吗?

不会。把 iPhone 的屏幕通过隔空播放(AirPlay)投到电视、显示器或者 Apple TV 上——或者用一根线接到外接显示器——都不会碰到正在进行的双摄录像,因为这和真正会打断录制的那些功能根本不是一类东西。电话、别的 App 抢到前台、或者 Mac 通过妙享摄像头把这台 iPhone 当成自己的摄像头,这些之所以会打断录制,是因为 iOS 把摄像头交给了当下正在申请它的那个进程,一次只服务一个。投屏从头到尾都没有向摄像头申请过任何东西,它做的是把屏幕上已经有的画面复制一份,发到另一块屏幕上,DualCam 本身还待在原地——照样在前台,照样占着摄像头。

开拍前把这个区别弄清楚是值得的,因为「会不会打断录制」和「投屏画面里到底有什么」是两个不同的问题,投屏对这两个问题的答案并不一样。它不会让你的素材提前结束。但它确实会让第二块屏幕上出现的东西比成片多一些,也确实会给手机多添一点点负担——这两点都值得在接上线、点开隔空播放之前先弄明白。

为什么投屏和电话、别的 App 不是一回事

双摄录像真正要扛过去的每一种中断,说到底都是同一条规则:iOS 一次只把摄像头交给一个进程,交给当下正在前台申请它的那一个。接电话,会把屏幕交给电话 App。打开信息或者上滑进多任务界面,会把屏幕交给你落到的那个 App。Mac 把 iPhone 当妙享摄像头用,其实是另一台设备在申请同样那两路摄像头画面。以上每一种情况里,都有别的什么东西变成了 iOS 正在服务的对象,DualCam 因此拿不到摄像头,是因为它已经不是那个对象了。

隔空播放投屏没有提出这样的申请。它是屏幕功能,不是摄像头功能:拿走屏幕上此刻已经显示的内容复制一份,通过 Wi-Fi 或者一根线发到电视或显示器上,让第二拨观众能跟着看。整个投屏期间,DualCam 依然是屏幕上的那个 App,依然在前台,依然一直占着采集会话没有松手。这套机制和「前台 App 一变,录制就结束」这条规则完全不冲突,因为前台 App 根本没有变过。

电视上看到的,和真正写进文件里的

录制时你看到的两路画面,就是 DualCam 实时合成、并且写进视频文件的那一帧——不管有没有开投屏,这一点都成立。打开隔空播放不会为电视另外造一路不同的画面,它只是把同一块屏幕复制一份,也就是说,正在看投屏的人,看到的是和最终成片里一模一样的画面、一样的版式。

他们同时看到的,还有手机屏幕上的其他一切:录制按钮、版式切换、滤镜那一排、快没电的提示、拍摄过程中不巧弹出来的任何通知横幅。这些界面元素都不属于 DualCam 写进磁盘的那张合成画布——文件里从头到尾只有两路摄像头画面,周围什么都不会画进去——但它们确确实实是投屏画面里一屋子人会看到的东西。如果你是在教室的电视上做演示,或者一边拍一边带着几个人回看素材,这通常没什么问题。但如果你就是不希望现场的人看到你操作界面上的那些按钮,投屏实时画面并不是给他们看干净画面的办法;事后播放的那个成片才是。

唯一真实的代价:和别的一切共用同一份发热预算

双摄录像本来就在向手机要很多东西——两条实时采集流水线、每一帧都要过一次 GPU 合成、再对结果做一次硬件编码。投屏会在这些之上再加一份持续在跑的工作:把屏幕输出编码、通过 Wi-Fi 或者线材持续发出去,只要投屏还开着就一直在跑。这份工作比摄像头那条流水线轻,但不是不花代价,而且在一台已经偏热的手机上,它只会再添一份热量,不会帮着散热。

iOS 会按级别响应设备的温度状态,不管这份热量是从哪儿来的。到「严重」级时,一条还没开始的 1080p 录制会在开拍前先降到 720p;已经在录的那条只会收到警告。到「临界」级时,录制会直接停止,文件会被正常收尾而不是留下损坏的一半。投屏不会改变这两道门槛,只会让长镜头、闷热的房间、或者本来就套着壳的手机更容易撞上它们。具体的阈值和应对办法,可以参考双摄录像为什么会中途停止那篇指南。

这和直播完全是两回事

看到「我的双摄画面正在电视上播」,很容易顺理成章地觉得「那把它推到网上直播」也差不了多少。其实完全不是。隔空播放是一个本地功能——手机在同一个 Wi-Fi 网络里找到一个接收设备,或者干脆用线接着,然后把屏幕发给这一台就在附近的设备。没有任何东西被上传到任何地方,房间外面的人也看不到。DualCam 整个产品里没有服务器,投屏也不会凭空造出一个来;录下来的素材,依然只有在你自己存进相册或者主动分享的时候,才会离开这台手机。

把画面实时播给不在现场的观众,是完全不同的技术活——要足够快地把视频编码好、持续推上互联网,还要应付一条随时可能卡顿或者丢包的网络连接——投屏做不到这些,也从来不是为这个设计的。如果目标真的是播给不在场的人看,该找的是专门做直播的方案,而不是让电视投一下手机屏幕。

接好线,别在关键时刻手忙脚乱

  • 开拍前先把投屏接好、确认能看到画面,别等录起来再弄——找接收设备、挑转接线这几十秒,放在按下录制之前远比放在素材录到一半便宜。
  • 有线和无线在这件事上没有区别:接外接显示器的一根线,和连到 Apple TV 或支持隔空播放的电视,本质上都只是屏幕功能,谁都不会比谁更碰得到摄像头。
  • 如果镜头长、房间又闷热,可以把投屏当成厚壳或者大热天来对待——这是一个合理的理由,选 720p 而不是 1080p,为的是从同一份发热预算里再省下一点。
  • 手机和电视之间投屏本身会有一点延迟,这很正常,只影响房间里的人晚一瞬间看到画面,和文件本身没有关系——文件是从本地的合成结果里实时写出来的。

延伸问题

连上隔空播放或者外接显示器,会不会让我的录制提前中断?

不会。投屏不会像接电话或者切换 App 那样向 iOS 申请摄像头——它只是把屏幕复制一份发到第二块屏幕上,DualCam 全程留在前台,采集会话一直开着。

投屏画面和最后存下来的视频是不是完全一样?

两路摄像头画面是完全一样的,因为投屏复制的就是那张写进文件的合成画面。不过投屏画面里还会看到 App 自己的操作界面和拍摄途中弹出的通知横幅,这些都不属于最终文件的一部分——文件里从头到尾只有两路摄像头画面。

能不能用隔空播放把双摄画面直播到网上?

不能。隔空播放只会通过 Wi-Fi 或者线材,把屏幕发给附近的一台接收设备,什么都不会被上传。DualCam 没有服务器,也没有直播这条路——录下来的素材,只有你自己存进相册或者分享出去时,才会离开手机。

想直接开录?

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

前往 App Store 下载