なぜ iPhone 標準のカメラアプリは前後カメラを同時に録画できないのか
探したくなる気持ちは自然なことです。カメラアプリを開き、前後カメラを一緒に動かせるトグルやモードを探しても、何も見つかりません。この不在は見落としでも、Apple が将来のアップデートのために温めている機能でもありません。2つのカメラを同時に録画するには、カメラアプリが土台にしているものとは別のキャプチャセッションが必要で、その別のセッションには、シングルカメラのアプリが考える必要のないルールが一式ついてきます。
そのルールが実際に何なのかを理解すると、カメラアプリがなぜこれをできないのかも、実際にこれができるアプリがなぜ今のような姿になっているのかも、両方説明がつきます。シングルカメラより少ない解像度の選択肢、録画を始めた瞬間に固定される解像度、そしてプレビューが実はプレビューではなく、ファイルに書き込まれている当のフレームそのものであること、です。
カメラアプリは1つのセッションを動かし、同時録画は2つを1つに合流させる
どの iPhone のカメラアプリの下にも AVFoundation のキャプチャセッションがあり、通常版——カメラアプリが土台にしているもの——は、常に1つのアクティブな入力を前提に設計されています。前面と背面を切り替えることも、レンズ間を切り替えることもできますが、どの瞬間でも流れている映像は1系統だけです。これは誰かが選んだ制限ではなく、普通のカメラアプリが書かれている API そのものの形です。
前後を同時に録画するには別のセッションの種類が必要で、複数の入力を同時に動かし、それぞれを個別の接続で個別の出力へ振り分けるために専用に作られています。これはカメラアプリが既に持っているセッションに機能を1つ追加するようなものではなく、独立した規則を持つ独立した API です。アプリは最初からこのマルチカメラセッションに向けて書かれているか、そうでないかのどちらかで、片方をもう片方へ格上げするようなトグルはありません。
マルチカメラセッションはシングルカメラが頼るプリセットを使えない
カメラアプリで「4K」や「高画質」を選ぶと、システムが適切なフォーマットを選んでくれます——解像度やフレームレート、コーデックの細部を静かに肩代わりしてくれる便利なプリセットです。こうしたプリセットが存在するのは、1つの入力は自分自身さえ満たせばよく、そのカメラが対応するフォーマットの中からシステムが自由に選べるからです。
2つのカメラを同時に動かすセッションはこの近道に頼れません。中にある入力はどれも、マルチカメラ対応と明示的に示されたフォーマットで動かす必要があり、それはそのカメラ単体が提供する全フォーマットよりも狭いリストで、しかも選択はプリセット任せではなく、意図的に行う必要があります。同時録画アプリの解像度リストがシングルカメラのアプリより短く見えるのも同じ理由です。出し惜しみしているのではなく、実際に条件を満たしたフォーマットだけを見せているのです。
2つのライブ映像は、それぞれ別の上限ではなく1つのハードウェア上限を共有する
1つのカメラを動かすには一定の処理コストがかかります。2つを同時に動かし、さらにリアルタイムで1フレームに合成すると、コストは単純な2倍以上になります。そしてシステムが課すのは、その合計コストに対する1つの上限であり、カメラごとに個別に用意された余裕ではありません。単体なら軽い解像度の組み合わせでも、2つ合わせるとハードウェアが許す予算を超えてしまうことがあります。
この共有された上限こそが、同時録画アプリがシングルカメラのように4Kへ手を伸ばすのではなく720pか1080pにとどめている本当の理由であり、両方のカメラを1080pにするほうが負荷が高い理由でもあります。実際、長いテイクの間にその負荷で発熱により処理が落ちる端末もあります。また、録画が始まった瞬間に解像度が固定されるのもこのためです。テイクの途中で変更するということは、セッションが既に動いている最中にこの共有予算を再交渉することを意味し、それはまさに進行中の録画が負えないリスクです。
プレビューは、その場ですでに完成フレームでなければならない
シングルカメラのアプリなら、目にしているものと最終的に保存されるものの間にずれがあっても構いません。クロップやフィルター、書き出し設定はすべて後から適用でき、処理すべき元の映像が1系統しかないからです。同時録画にはその余裕が同じようにはありません。2つのライブ映像がリアルタイムで GPU 上に合成されて1フレームになり、その合成された当のフレームが、実際に動画ファイルへ書き込まれます。
これは、後から編集アプリで位置合わせが必要な2本の未加工素材ではなく、1本の完成ファイルを書き出すという選択が直接もたらす結果です。だからこそレイアウトやピクチャ・イン・ピクチャの角、フィルターは録画中に何の代償もなく変更できます——それらは同じリアルタイム合成が毎フレームどう描かれるかにしか影響しないからです。一方、解像度のようにファイル自体の構造を作り直す必要があるものは、そうはいきません。
なぜ Apple はこれをそのままカメラアプリに追加しないのか
カメラアプリは、アップデートを受け取っているすべての iPhone で同じように動作しなければならず、その大半はそもそもマルチカメラキャプチャに必要な世代のチップを積んでいません。その中の一部にしかない機能を中心に、たった1つの汎用インターフェースを設計すること——しかも対応している端末の中でさえ、ハードウェア予算は正確な機種、関わるレンズ、端末が既にどれだけ発熱しているかによって変わること——は、その能力があるとあらかじめわかっている端末にしか存在しない専用アプリよりも、格段に難しい設計課題です。
単一目的の同時録画アプリなら、あらかじめ固定した選択——少数の解像度、録画開始と同時に固定、あらゆる端末に対して万能であろうとしない——をする余裕があります。誰にとってもシンプルで一貫していなければならない汎用アプリには、本当の意味でその自由はありません。カメラアプリにこの機能がないのは、妥当な製品としての線引きであって、Apple がまだ手をつけていない技術的な不可能事ではありません。
よくある追加の疑問
iPhone の設定の中に、カメラアプリで同時録画をオンにする隠し設定はありますか。
ありません。これはオンにするのを待っている設定ではありません。カメラアプリが依存するキャプチャセッションは、もともと常に1つのアクティブな入力しか動かせません。前後の同時録画は最初から別の種類のセッションを必要とし、カメラアプリはそのセッションに向けて書かれていません。
同時録画アプリは、カメラアプリのシングルカメラのように4Kを提供できますか。
同じハードウェアの条件下では無理です。同時に動く2つのカメラは、それぞれ個別の予算ではなく1つの合計ハードウェア予算を共有します。これが同時録画アプリの上限が1080pにとどまり、一部の端末では発熱により処理が落ちることを正直に示す理由であり、シングルカメラ単体が届く解像度には届きません。
自分の iPhone が同時録画に対応しているなら、なぜ解像度のリストはカメラアプリより短いのですか。
マルチカメラセッションは、シングルカメラセッションが頼る便利なプリセットを使えません。中の入力はどれもマルチカメラ対応と明示されたフォーマットで動かす必要があり、それはそのカメラの全フォーマットよりも狭いリストです。リストが短いのは、実際に条件を満たしたものを反映しているだけで、何かの設定が隠されているわけではありません。
とにかく撮ってみたいなら
DualCam は iPhone の前面・背面カメラを同時に動かし、撮りながら 1 本の MP4 に合成します。無料、アカウント不要、広告なし、映像は端末の外に出ません。