AVMutableVideoComposition有些插入视频崩溃的组合

时间:2015-01-29 11:27:58

标签: iphone video avfoundation

有些视频单独播放就像简单AVAssets一样好,但是当插入AVMutableVideoComposition时,即使这些视频单独插入空组合中,它们也会使整个合成失败。有人有类似的问题吗?有时候在插入视频之前对视频进行重新编码会使其有时无法正常工作。我无法在我的计时指令中看到任何错误,并且使用其他视频根本不会导致任何问题,无论其长度如何。资产的数量或资产的持续时间或格式是否会出现问题? (都是h264单曲)

1 个答案:

答案 0 :(得分:0)

确实看起来某些视频在插入时可能会导致问题。例如,轨道的持续时间就是问题。

AVAsset * video           = ...;
NSArray * videoTracks     = [video tracksWithMediaType:AVMediaTypeVideo];
AVAssetTrack * videoTrack = videoTracks.firstObject; 
CMTime duration           = videoTrack.timeRange.duration // this time cause error

AVMutableCompositionTrack * track = ...;
CMTime insertCMTime    = kCMTimeZero;
CMTimeRange trackRange = CMTimeRangeMake(kCMTimeZero, duration);
    [track insertTimeRange:trackRange
                   ofTrack:videoTrack
                    atTime:insertCMTime
                     error:nil];

修剪范围以插入圆形秒数解决了目前为止测试的所有视频的问题

NSTimeInterval interval   = (int)CMTimeGetSeconds(videoTrack.timeRange.duration);
CMTime roundedDuration    = CMTimeMakeWithSeconds(interval, 60000);