Questa domanda è abbastanza correlata a AVMutableComposition - Blank/Black frame between videos assets ma poiché non sto utilizzando una AVAssetExportSession, le risposte non corrispondono al mio problema.Cornici nere in AVMutableComposition
Sto usando una composizione AVMutable per creare una composizione video e la sto leggendo utilizzando un AVAssetReader (ho bisogno di avere i dati del frame, non posso usare un AVPlayer) ma spesso ho dei fotogrammi neri tra il mio video pezzi (non è presente alcun problema nell'audio).
Creo il mio Composizione come
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];
Ho anche cercato di inserire manualmente ciascuna traccia nella mia composizione ma ho lo stesso fenomeno.
Grazie
Hai mai risolto questo problema? Sto avendo un problema simile. – elprl
@elprl Ho dato un'occhiata al mio codice ed è rimasto più o meno lo stesso. Penso che abbiamo risolto il problema modificando (intervallo di fotogrammi chiave, framerate, ...) l'input del formato video (possiamo controllarlo). È stato tanto tempo fa e non posso dire con certezza quale parametter abbia migliorato la situazione. – chub