2013-08-29 35 views
3

任何人都可以幫我解決這個問題嗎? 我可以使用AVAssetWriter使用以下輸出設置對視頻進行編碼。AVAssetWriter無法用AVVideoProfileLevelKey編碼視頻

NSDictionary *videoCompressionSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
              AVVideoCodecH264, AVVideoCodecKey, 
              [NSNumber numberWithInteger:dimensions.width], AVVideoWidthKey, 
              [NSNumber numberWithInteger:dimensions.height], AVVideoHeightKey, 
              [NSDictionary dictionaryWithObjectsAndKeys: 
              [NSNumber numberWithInteger:bitsPerSecond], AVVideoAverageBitRateKey, 
              [NSNumber numberWithInteger:30],AVVideoMaxKeyFrameIntervalKey, 
              nil], AVVideoCompressionPropertiesKey, 
              nil]; 

然而,當我試圖通過指定配置文件進行編碼後說這AVVideoProfileLevelH264Baseline30輸出設置將類似於

NSDictionary *videoCompressionSettings = [NSDictionary dictionaryWithObjectsAndKeys: 
              AVVideoCodecH264, AVVideoCodecKey, 
              [NSNumber numberWithInteger:dimensions.width], AVVideoWidthKey, 
              [NSNumber numberWithInteger:dimensions.height], AVVideoHeightKey, 
              [NSDictionary dictionaryWithObjectsAndKeys: 
              [NSNumber numberWithInteger:bitsPerSecond], AVVideoAverageBitRateKey, 
              [NSNumber numberWithInteger:30],AVVideoMaxKeyFrameIntervalKey, 
              AVVideoProfileLevelH264Baseline30,AVVideoProfileLevelKey, 
              nil], AVVideoCompressionPropertiesKey, 
              nil]; 

我的錄像失敗,這些設置。

那麼我的問題在哪裏呢? 我已經初始化資產作家這樣

_assetWriter = [[AVAssetWriter alloc] initWithURL:_movieURL fileType:AVFileTypeMPEG4 error:&error]; 

回答

1

我有這個失敗了。對我來說,問題只出現在OS X 10.7(Lion)上,它根本不支持AVVideoProfileLevelKey ...您仍然可以使用H.264進行編碼,但只需要省略該參數,操作系統將處理選擇配置文件使用。如果您在OS X 10.8/10.9或iOS 4或更高版本中發現此問題,則可能會出現其他問題。