Ich habe ein aufgezeichnetes Video mit Ton. Wenn Sie das zu einer AVMutableComposition hinzufügen und es dann exportieren, wird das Video beim Abspielen des Sounds eingefroren. Was vermisse ich?AVFoundation AVMutableComposition - Video mit Audio - friert Video ein
Ich habe meine zwei Spuren:
_compositionVideoTrack = [self.composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
_compositionAudioTrack = [self.composition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
Erstellen Sie dann den Titel:
AVAssetTrack *clipVideoTrack = [[sourceAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];
AVAssetTrack *clipAudioTrack = [[sourceAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];
Dann füge ich den Titel:
[_compositionVideoTrack insertTimeRange:editRange ofTrack:clipVideoTrack atTime:self.composition.duration error:&editError];
[_compositionAudioTrack insertTimeRange:editRange ofTrack:clipAudioTrack atTime:self.composition.duration error:&editError];
Schließlich ich es exportieren:
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:urlAsset presetName:AVAssetExportPresetPassthrough];
exportSession.outputFileType = AVFileTypeQuickTimeMovie;
Und die Datei ist .mp4. Könnte es das Dateiformat sein?
Fängt das Video jedes Mal an einem bestimmten Frame ein? Es könnte sein, dass der Zeitbereich für die Videospur falsch ist. Sie fügen den Zeitbereich von {clipVideoTrack} und {clipAudioTrack} in die Kompositionsspur ein, die mit der Dauer der Komposition beginnt. – jlw
Das Video beginnt zu frieren, wenn der Ton beginnt. Audio und Video können nicht gleichzeitig wiedergegeben werden. Ja, ich möchte, dass alle Clips, die zu der Comp hinzugefügt wurden, hinter der vorherigen liegen, deshalb füge ich sie zur Dauer der Comp hinzu. – Mikael
Ohne mehr von Ihrem Code zu sehen, ist es schwer zu sagen. Meine Vermutung ist, dass etwas mit der Reihenfolge Ihrer AVMutableVideoCompositionLayerInstructions in der AVMutableVideoCompositionInstruction zum Zeitpunkt des Soundstarts nicht stimmt. – jlw