2017-04-11 65 views
1

我有這個相機應用程序,我正在開發。在某些時候,我試圖寫的視頻,所以我創建一個assetWriter,我有這些行:AVAssetWriter失敗輸出設置與720p @ 60fps

CGFloat videoFrameWidth = size.width; 
    CGFloat videoFrameHeight = size.height; 

    NSUInteger numPixels = videoFrameWidth * videoFrameHeight; 
    NSUInteger bitsPerSecond; 

    NSUInteger bitsPerPixel = 11.4; // This bitrate matches the quality produced by AVCaptureSessionPresetHigh... this was copied from a code from Apple 

    bitsPerSecond = numPixels * bitsPerPixel; 

    NSDictionary *videoCompressionSettings = @{AVVideoCodecKey     : AVVideoCodecH264, 
              AVVideoWidthKey     : @(videoFrameWidth), 
              AVVideoHeightKey     : @(videoFrameHeight), 
              AVVideoCompressionPropertiesKey : @{ AVVideoAverageBitRateKey  : @(bitsPerSecond), 
                        AVVideoMaxKeyFrameIntervalKey : @(fps)} 
              }; 

    if ([_assetWriter canApplyOutputSettings:videoCompressionSettings forMediaType:AVMediaTypeVideo]) 

如果我記錄在1080 @ 30 fps的這種方法,完美的作品,但如果切換爲720P @這60幀最後一行失敗。

+0

如果您移除AVVideoMaxKeyFrameIntervalKey鍵,會發生什麼情況?我想你是說每60幀就有一個關鍵幀。 –

+0

它是有道理的,你說...我會嘗試,並回到這裏。所有這些東西都是如此糟糕的文件,你永遠不知道。我希望蘋果發射撒旦,今天是負責創建他們的開發工具和文檔... – SpaceDog

+0

刪除該鍵做了訣竅,但現在的視頻創建,但始終在30幀/秒,即使我在60或更高的FPS拍攝.. – SpaceDog

回答

1

如果您刪除AVVideoMaxKeyFrameIntervalKey密鑰,會發生什麼情況?我想你是說每60幀就有一個關鍵幀。