Этот вопрос довольно связан с AVMutableComposition - Blank/Black frame between videos assets, но поскольку я не использую AVAssetExportSession, ответы не подходят моей проблеме.Черные кадры в AVMutableComposition
Я использую AVMutableComposition для создания композиции видео, и я читаю ее с помощью AVAssetReader (мне нужно иметь данные кадра, я не могу использовать AVPlayer), но у меня часто есть черные кадры между моим видео (в звуке нет глюка).
Я создаю мой состав, как
AVMutableCompositionTrack *compositionVideoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
AVMutableCompositionTrack *compositionAudioTrack = [composition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
NSMutableArray* durationList = [NSMutableArray array];
NSMutableArray* videoList= [NSMutableArray array];
NSMutableArray* audioList= [NSMutableArray array];
for (NSInteger i = 0; i < [clips count]; i++)
{
AVURLAsset *myasset = [clips objectAtIndex:i];
AVAssetTrack *clipVideoTrack = [[myasset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];
[videoList addObject:clipVideoTrack];
AVAssetTrack *clipAudioTrack = [[myasset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];
[audioList addObject:clipAudioTrack];
CMTime clipDuration = [myasset duration];
CMTimeRange clipRange = CMTimeRangeMake(kCMTimeZero, clipDuration);
[durationList addObject:[NSValue valueWithCMTimeRange:clipRange]];
}
[compositionVideoTrack insertTimeRanges:durationList ofTracks:videoList atTime:kCMTimeZero error:nil];
[compositionAudioTrack insertTimeRanges:durationList ofTracks:audioList atTime:kCMTimeZero error:nil];
Я также попытался вставить каждую дорожку вручную в моей композиции, но у меня такое же явление.
Благодаря
Вы когда-нибудь решают эту проблему? У меня такая же проблема. – elprl
@elprl Я посмотрел на свой код, и он остался почти таким же. Я думаю, что мы «исправили» проблему путем настройки (интервал ключевого кадра, частота кадров, ...) входного формата видео (мы можем его контролировать). Это было давно, и я не могу точно сказать, какой параметр улучшил ситуацию. – chub