Ios 合并两个录制的视频会产生相反方向的输出

Ios 合并两个录制的视频会产生相反方向的输出,ios,swift,avfoundation,video-processing,Ios,Swift,Avfoundation,Video Processing,我正在尝试用以下代码合并两个录制的视频: func exportVideo3() { transprentView.hidden = false activityIndicator.startAnimating() let composition = AVMutableComposition() let trackVideo = composition.addMutableTrackWithMediaType(AVMediaTypeVideo, preferre

我正在尝试用以下代码合并两个录制的视频:

func exportVideo3() {

    transprentView.hidden = false
    activityIndicator.startAnimating()
    let composition = AVMutableComposition()
    let trackVideo = composition.addMutableTrackWithMediaType(AVMediaTypeVideo, preferredTrackID: CMPersistentTrackID())
    let trackAudio = composition.addMutableTrackWithMediaType(AVMediaTypeAudio, preferredTrackID: CMPersistentTrackID())
    var insertTime = kCMTimeZero
    let path = NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: false, error: nil)!.path!
    for index in 1...2 {
        let movieUrl = index == 1 ? video1URL : video2URL
        let sourceAsset = AVURLAsset(URL: movieUrl, options: nil)

        let tracks = sourceAsset.tracksWithMediaType(AVMediaTypeVideo)
        let audios = sourceAsset.tracksWithMediaType(AVMediaTypeAudio)

        if tracks.count > 0{
            let assetTrack:AVAssetTrack = tracks[0] as! AVAssetTrack
            trackVideo.insertTimeRange(CMTimeRangeMake(kCMTimeZero,sourceAsset.duration), ofTrack: assetTrack, atTime: insertTime, error: nil)
            let assetTrackAudio:AVAssetTrack = audios[0] as! AVAssetTrack
            trackAudio.insertTimeRange(CMTimeRangeMake(kCMTimeZero,sourceAsset.duration), ofTrack: assetTrackAudio, atTime: insertTime, error: nil)
            insertTime = CMTimeAdd(insertTime, sourceAsset.duration)
        }
    }

    let exporter = AVAssetExportSession(asset: composition, presetName: AVAssetExportPresetHighestQuality)
    exporter.outputURL = documentsDirectoryURL.URLByAppendingPathComponent("mergedMovie.mp4")
    if NSFileManager.defaultManager().fileExistsAtPath(exporter.outputURL.path!) {
        NSFileManager.defaultManager().removeItemAtURL(exporter.outputURL, error: nil)
    }

    mergedVideoURL = exporter.outputURL
    exporter.outputFileType = AVFileTypeMPEG4
    exporter.exportAsynchronouslyWithCompletionHandler({
        switch exporter.status{
        case  AVAssetExportSessionStatus.Failed:
            println("failed \(exporter.error)")
        case AVAssetExportSessionStatus.Cancelled:
            println("cancelled \(exporter.error)")
        default:
            self.transprentView.hidden = true
            self.activityIndicator.stopAnimating()
            println("complete")
        }
    })
}
这是工作良好,但新的视频有相反的方向。i、 e当我在纵向录制并合并两个视频时,新视频将以横向模式播放;当我在横向录制并合并两个视频时,新视频将以纵向模式播放

所以,我如何解决这个问题,比如当我以横向模式录制视频时,我希望以横向模式输出,并与纵向模式相同

这是我的示例项目供更多参考。

我希望这将帮助您解决我的相同问题。我希望这将帮助您解决我的相同问题。我希望这将帮助您解决我的相同问题。