2011-02-04 6 views
3

AVAssetWriterとAVAssetWriterInputPixelBufferAdaptorでムービーファイルを作成しています。iOS:AVAssetWriterでムービーを保存するハーフサイズのフレームを修正する方法

CVPixelBufferを構築するために使用されるCGImageは通常のように見えます(画面に表示されるように)、出力ムービーは入力イメージをフレームの上半分に圧縮して表示します。 width、height、およびbytes_per_rowはすべて同じです(CGImage、AVAssetWriter設定、およびCVPixelBuffer設定用)。

このような問題の原因は何ですか?

答えて

3

この問題は、CVPixelBufferPoolを生成するためにCVPixelBufferPoolを構成する際にAVAssetWriterInputPixelBufferAdaptorに設定を渡すと、CVPixelBufferPoolは明らかに実際の設定ではなく要求として設定を使用することに起因します。あなたが得るCVPixelBufferは異なる設定を持つかもしれません。これはAppleのコードのバグかもしれないが、わからない。

いずれの場合でも、CVPixelBufferGetBytesPerRow(CVPixelBuffer)を使用して1行あたりの実際のバイト数を読み取り、それに応じてコードを調整することができます。私のために働いた!

関連する問題