6

私は、sdk がデジタル ズーム インまたはズーム アウトをサポートしていないことを検索しました。間接的に行う必要があります。私がstackoverflowで見つけた方法はAVCaputureVideoPreviewLayer、記録中に変換し、対応する変換後処理を出力ビデオに行うことです(私の現在の考えは、AVMutableVideoCompositionLayerInstruction's変換ランプ関数を使用することです)。

問題は、ユーザーのズーム活動のすべての連続コースをどのように記録できるかということです。これは、非常に複雑なズームインおよびズームアウト動作の深刻な可能性があると思います。たとえば、ユーザーがズームを制御するためのスライダーを設計し、ユーザースライダーのズームを 4 倍にゆっくりと (たとえば、最後の 3 秒間) 保持し、スライダーを離さずに、すばやく 2 倍 (最後の 0.5 秒間) にズームアウトすることができます。タイムラインに従って、このすべての変更を記録する必要があります。

この記録は本当に複雑だと感じます。さらに、ビデオ記録プロセスのスムーズなパフォーマンスを維持するために、リソースがあまりかからないことも保証する必要があります。または、デジタルズームを実装する他の方法はありますか? ヘルパーに感謝します!

4

1 に答える 1

1

記録中に変換AVCaputureVideoPreviewLayerし、ズーム値を使用してデリゲートのフレームを操作できAVCaptureVideoDataOutputます。デリゲート メソッドcaptureOutput:didOutputSampleBuffer:fromConnection:を使用して、ビデオのフレームを処理できます。AVFoundation のドキュメントAVFoundation のドキュメント、メディア キャプチャ > ビデオのフレームの処理を参照してください。

于 2013-05-23T13:22:36.750 に答える