なぜ録画中にレイアウトは変えられて、解像度は変えられないのか
同時録画アプリでは、レイアウト、ワイプの角と大きさ、カラーフィルターは録画中でも自由に変更でき、書き出される動画はすぐにそれへ追従します。一方で、解像度、音声トラックの有無、カウントダウンタイマーは変更できません——録画ボタンを押した瞬間に固定され、その録画が終わるまでどの操作もそこに手を出せません。一見すると一貫性のない仕様に見えますが、この2つのグループはそもそも同じ種類の設定ではないと気づけば、腑に落ちます。
一方はすでにサイズが決まったフレームに何を描くかを決める。もう一方は、そのフレームが書き込まれていくファイルそのもののサイズと構造を決める。この2つのうち、途中で気を変えられるのは前者だけです。
フレームはその都度描かれ、ファイルは一度だけ組み立てられる
動画ファイルは実は「1本の連続したもの」ではなく、書き込みが始まった瞬間に構造が固定されるコンテナです。映像トラックの縦横のピクセル数、音声トラックがあるかどうか、そのサンプルレート——これらはライターが開かれた瞬間に一度だけ決まり、動画エンコードという仕組み自体が、ファイルの途中でこれを再交渉することを許していません。違う構造が必要になったら、今のファイルを閉じて新しいファイルを始めるしかありません。
一方、1枚のフレームを描く処理はまったく別の作業で、設定を触ろうと触るまいと毎回発生します。フレームごとに、アプリはどのピクセルをどこに置くかを決め、その結果をエンコーダーへ渡します——この作業は1秒間に何十回も、直前のフレームがどうだったかとは関係なく、毎回ゼロからやり直されます。同時録画は、まさにこの2つの境界線の上に成り立っています。描き込む先のキャンバスの大きさはファイルの固定構造の一部ですが、そのキャンバスに何を描くかは、設定をいじろうといじるまいと、もともと次のフレームでもやり直されるはずだった描画上の判断にすぎません。
解像度・ミュート・カウントダウンが開始時に固定される理由
解像度は、書き込まれている映像トラックの実際のピクセル寸法を決めます。同時録画のセッションでは、前後2つのカメラ入力を合わせてマルチカメラのハードウェア予算に収まるかどうかもこれで決まります——解像度を上げるのは見た目だけの変更ではなく、セッション全体をハードウェアが支えきれない領域まで押し出しかねません。録画の途中でこれを変えるということは、動いているキャプチャセッションを再設定し、下手をすれば新しい設定が成立しないと途中で判明する、ということです。これは録画中のファイルが背負うにはあまりに大きなリスクです。
ミュートは、そのファイルに音声トラックが存在するかどうかを決めます。ミュートがオンのとき、音声トラックはそもそも作られません——あとでミュートを解除できる無音のトラックが待機しているわけではなく、ミュートは音量のつまみではなく、最初のフレームが書き込まれる前に決めておくべきファイル構造の決定だからです。書き込みの途中にあるファイルにあとからトラックを1本追加することはできません。表計算を作り始めてから5分後に、1行目からやり直して列数を変えたいと言い出せないのと同じです。
カウントダウンはさらに特殊で、そもそもファイルの何かを表しているわけではなく、「録画がいつ始まるか」という瞬間そのものを表しています。その瞬間が過ぎてしまえば、「カウントダウンを変える」という要求自体、もう意味のある対象を持ちません。
レイアウト・小窓・フィルターがいつでも自由な理由
レイアウト、ワイプの角と大きさ、その形、カラーフィルターは、映像トラックの寸法にも、音声トラックの有無にも一切触れません。これらが決めているのは、解像度によってすでにサイズが決まっているフレームに何を合成するかだけです。分割画面のフレームもピクチャ・イン・ピクチャのフレームも、エンコーダーに渡るまでの道筋はまったく同じです——固定サイズのキャンバスに1フレーム分をレンダリングして渡す。違いは、GPU がどのピクセルをどこに描いたかだけです。
これが、録画中にレイアウトを切り替えてもジャンプも、黒い一瞬のフラッシュも、フレーム落ちも起きない理由でもあります。書き込まれるフレームとプレビューのフレームは同じ描画結果であり、しかも設定をいじろうといじるまいと、そもそもすべてのフレームはゼロから描き直されるはずでした——カメラが少し動いた、光が少し変わった、場面はどのみち前のフレームと違うはずだからです。レイアウトを変えるということは、その避けようのない描き直しの中身を変えるだけであり、次のフレームからすぐに反映されます。
実際の撮影ではこれをどう使うか
録画ボタンを押す前に決めておくこと
解像度・ミュート・カウントダウンは録画開始後にやり直せないので、先に決めておきます。720p と 1080p のどちらか迷うなら、1080p のほうが負荷が重く、機種によっては発熱で長時間の 1080p 撮影が落ちることを覚えておいてください——迷うとき、特に長回しをするときは 720p のほうが無難です。無音にする可能性が少しでもあるなら、録画前にミュートを設定しておきます。アプリの中には、録画後に音声トラックだけ抜き取る方法はありません。
録画中に自由に試していいこと
レイアウト、ワイプの角、その大きさと形、カラーフィルター、どちらのカメラを大きく表示するか——これらは録画が回っている間、何度でもノーリスクで変えられます。ピクチャ・イン・ピクチャと分割画面のどちらが合うか迷うなら、正直な答えは「まず試して、合わなければ切り替える」ことです。これは本当にコストのない選択であり、迷って損をするようなものではありません。
よくある追加の疑問
録画中にピクチャ・イン・ピクチャから分割画面へ切り替えると、その瞬間に映像がカクついたり飛んだりしますか。
しません。書き込まれるフレームとプレビューは同じ描画結果であり、どのレイアウトでも毎フレームがゼロから描き直されています。レイアウトの切り替えは次のフレームの見た目を変えるだけで、途中でカクついたりフレームが落ちたりするような別の「切り替え処理」は存在しません。
録画の途中で 720p から 1080p に切り替えられますか。
できません。解像度は書き込まれている映像トラックの寸法を決めるもので、録画開始の瞬間に固定されます。別の解像度で撮りたい場合は、いったん録画を止めて、目的の設定で新しく録画を始めてください。
1回の録画中にレイアウトを切り替えられる回数に制限はありますか。
実質的な制限はありません。どのレイアウトが有効でも毎フレームが合成し直されているので、何度切り替えても通常のフレーム描画以上の追加コストはかかりません。
とにかく撮ってみたいなら
DualCam は iPhone の前面・背面カメラを同時に動かし、撮りながら 1 本の MP4 に合成します。無料、アカウント不要、広告なし、映像は端末の外に出ません。