3

AVAssetWriter と AVAssetWriterInputPixelBufferAdaptor で動画ファイルを書いています。

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

この種の問題の原因は何ですか?

4

1 に答える 1

3

この問題は、CVPixelBufferPool を構成して CVPixelBuffers を生成するために使用する設定を AVAssetWriterInputPixelBufferAdaptor に指定すると、CVPixelBufferPool が設定を実際の設定としてではなく要求として使用するように見えるという事実から発生します。取得した CVPixelBuffer の構成は異なる場合があります。これは Apple のコードのバグかもしれませんが、よくわかりません。

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

于 2011-02-18T00:02:50.210 に答える