12

を使用して画像からビデオを作成しようとしていますAVAssetWriter。実装されたコードはほとんどの場合問題なく動作しますが、ランダムな瞬間にライターに問題が発生します

AVAssetWriter *videoWriter;
...
[videoWriter finishWriting];
NSLog(@"videoWriter error %@",videoWriter.error);

受信したエラーは次のとおりです。

Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" 
UserInfo=0x1f839cd0 {NSLocalizedDescription=The operation could not be completed,
 NSUnderlyingError=0x1e59efb0 "The operation couldn’t be completed. (OSStatus error -12633.)", 
NSLocalizedFailureReason=An unknown error occurred (-12633)}

イメージの書き込み:

-(void)writeFrame:(WriteableFrame*)wF
{
    if([writerInput isReadyForMoreMediaData])
    {
        CMTime presentTime = CMTimeMake(wF.frameTime, 1000);
        CGImageRef tmpImgRef = [wF.currentImage CGImage];
        buffer = [self pixelBufferFromCGImage:tmpImgRef];
        if(buffer)
        {
            [adaptor appendPixelBuffer:buffer withPresentationTime:presentTime];
            CVPixelBufferRelease(buffer);
        }
    }
    else
    {
        NSLog(@"error");
    }
}

こんな悩みを抱えている人はいませんか?

4

5 に答える 5

22

私は問題を見つけました、それは同じフレーム時間に2つのフレームを置くことでした。

于 2013-02-27T07:46:47.130 に答える
4

プッシュされたフレームが順不同の場合にも発生する可能性があります

于 2014-03-13T16:52:41.047 に答える
0

ピクセル バッファー内の画像が、sourcePixelBufferAttributes を for(kCVPixelBufferWidthKey, kCVPixelBufferHeightKey) に設定したことに基づいて、入力ピクセル バッファー アダプターが期待する幅/高さの寸法と同じでない場合、同じエラーが発生していました。ピクセル バッファーのサイズが同じであることを確認してください。私の場合、単色の画像を描画するつもりだったのに、その単色のピクセルをフルサイズに拡大することを怠ったため、アプリケーションが 1x1 の画像を描画することがありました。

于 2014-12-29T02:28:49.763 に答える