To pytanie jest dość związane z AVMutableComposition - Blank/Black frame between videos assets, ale ponieważ nie używam AVAssetExportSession odpowiedzi nie pasują do mojego problemu.Czarne ramki w AVMutableComposition
Używam AVMutableComposition do tworzenia kompozycji wideo i czytam ją za pomocą AVAssetReader (potrzebuję danych ramek, nie mogę używać AVPlayer), ale często mam czarne ramki pomiędzy filmami kawałki (nie ma zauważalnego usterki w dźwięku).
tworzę moje skład jak
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];
Próbowałem też wstawić każdą ścieżkę ręcznie w mojej kompozycji, ale mam to samo zjawisko.
Dzięki
Czy kiedykolwiek rozwiązałeś ten problem? Mam podobny problem. – elprl
@elprl Spojrzałem na mój kod i pozostał prawie taki sam. Myślę, że "naprawiliśmy" problem, poprawiając (częstotliwość klatek, częstotliwość klatek, ...) format wejściowy wideo (możemy to kontrolować). To było dawno temu i nie mogę powiedzieć na pewno, jaki parametr poprawił sytuację. – chub