をオーバーレイしたいのですが、sをUIView
使用してもかまわない場合は、エクスポート後に'sプロパティCALayer
を使用してオーバーレイを追加できます。これには、出力にアニメーションを追加できるプロパティがありますが、オーバーレイの外観をで記述できない場合は運が悪いと思います。表示見出しの例は可能かもしれませんが、現在の時間カウンターのように単純なものは想像できません。この制限に耐えられるのであれば、WWDC2010コードサンプル「AVEditDemo」が出発点として適しています。AVAssetExportSession
AVVideoComposition
AVVideoCompositionCoreAnimationTool *animationTool
CALayer
CABasicAnimation
さらに制御が必要な場合はUIView
、を使用してキャプチャフレームにオーバーレイを手動でレンダリングし、を使用[view.layer renderInContext:contextToThenRenderToFrame]
してこれらのフレームをファイルAVAssetWriter
に書き込むことができます(フレームをメモリにキャプチャすると、使用できなくなりますAVCaptureMovieFileOutput
)。
警告:キャプチャしているフレームは均一な速度で到着しない可能性があり、周囲の照明やシステムの負荷によっても異なります。オーバーレイがキャプチャビデオよりも速い速度で変化する場合は、2番目のソリューションでフレームを繰り返す必要があります。これはAVVideoComposition
、最初のソリューションで処理されます。
PS Solution 2は面倒ですが、詳細に立ち入ることなく、iOS7はこれをはるかに簡単にしたようです。