2

ビデオと時間/GPS/加速度計のデータを別々のファイルに同時に記録するアプリケーションに取り組んでいます。

ビデオを再生し、オーバーレイをリアルタイムで完全に表示することはできますが、これを単純にエクスポートすることはできません。

ビデオを後処理し、時間、座標、およびビデオをオーバーレイしたいと考えています。各フレームでサイズ/位置が変わる、オーバーレイされる他の形状があります。

限られた結果で使用AVMutableCompositionおよび追加を試みました-これはある程度機能しますが、タイムスタンプをビデオと同期させることはできません. CALayersvalues+keyTimes を使用できますCAKeyframeAnimationが、処理する必要がある値の量が多すぎます。

CGImages私の現在のアプローチは、データを使用して作成された別のビデオをレンダリングすることです。これはうまく機能しますが、オーバーレイに透過性を持たせるには ChromaKey を使用する必要があります。これを行った後、品質の問題が発生する可能性があることを読みました.

私が見るべきもっと簡単なアプローチはありますか?

レンダリング速度がそれほど速くないことは理解していますが、ビデオをレンダリングするために別の「PC」アプリケーションが必要になることは望んでいません。

4

2 に答える 2

0

録画したビデオには AVAssetReader を使用します。CMSampleBufferRef を取得し、タイムスタンプを取得し、サンプル バッファーに時間を描画し、バッファーを AVAssetWriterInputPixelBufferAdaptor に書き込みます。録画中のビデオに対する同様のアプローチ。

于 2014-12-18T12:25:26.140 に答える
0

AVVideoCompositing プロトコルを使用しますhttps://developer.apple.com/library/mac/documentation/AVFoundation/Reference/AVVideoCompositing_Protocol/index.html

これにより、ピクセル バッファを使用してフレームごとにコールバックを取得し、必要なことを行うことができます。

このプロトコルを使用すると、1 つのフレームを取り、好きな人をオーバーレイすることができます。このサンプル - https://developer.apple.com/library/ios/samplecode/AVCustomEdit/Introduction/Intro.htmlを見て、フレームごとの変更を処理する方法を確認してください。AVVideoCompositing プロトコルを利用すると、AVPlayerItem と AVExportSession にカスタム ビデオ コンポジターとビデオ コンポジションを設定して、必要なものをレンダリング/エクスポートできます。

于 2015-02-07T05:39:59.953 に答える