AVAssetExportSession का उपयोग करके किए गए मूल की तुलना में एक बड़ी फ़ाइल निर्यात करें

मैं एक आईफोन ऐप पर काम कर रहा हूं जिसने कई फाइलें रिकॉर्ड की हैं और फिर मैंने फ़ाइलों को एक फाइल में विलय कर दिया है और अंत में मैं सर्वर पर उस फाइल को अपलोड करता हूं। मैंने अनुभव किया कि यदि मैं 7 मिनट की रिकॉर्डिंग की एक फ़ाइल बना देता हूं तो इसका आकार 0.85 एमबी है, लेकिन अगर मैं 3.5 मिनट की दो फाइलें बना देता हूं और फिर उन्हें एक फ़ाइल में विलय कर देता हूं तो उसका आकार 9.75 एमबी है जो आकार में बहुत बड़ा है और बहुत लंबा लगता है अपलोड करने का समय कृपया मुझे इस मुद्दे को संभालने के लिए कुछ सुझाव दें। अग्रिम में धन्यवाद `

AVMutableComposition* composition = [[AVMutableComposition alloc] init];
    AVMutableCompositionTrack* audioTrack = [composition addMutableTrackWithMediaType:AVMediaTypeAudio
                                                                     preferredTrackID:kCMPersistentTrackID_Invalid];
   // kCMPersistentTrackID_Invalid, kCMMediaType_Audio,
    NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentPath_ = [searchPaths objectAtIndex: 0];
   //RecorderFilePaths contain the path of recorded files
    if ([recordedFilePaths count]>0)
    {
        NSError* error = nil;
        AVURLAsset* masterAsset= nil;
        CMTime time = kCMTimeZero;

        NSURL *tempUrl =[recordedFilePaths objectAtIndex:1];
        time = CMTimeAdd(time, [masterAsset duration]);
        AVURLAsset *Asset = [AVURLAsset URLAssetWithURL:tempUrl options:nil];
        CMTimeRange timeRange  = CMTimeRangeMake(kCMTimeZero, Asset.duration);
        NSArray *ar = [Asset tracksWithMediaType:AVMediaTypeAudio];
        [audioTrack insertTimeRange:timeRange ofTrack:[ar objectAtIndex:0] atTime:kCMTimeZero error:&error];
        //kAudioFormatMPEG4AAC,   AVMediaTypeAudio
        tempUrl = [recordedFilePaths objectAtIndex:0];
        masterAsset = [AVURLAsset URLAssetWithURL:tempUrl options:nil];
        timeRange = CMTimeRangeMake(kCMTimeZero, masterAsset.duration);
        NSArray *tracktypes = [masterAsset tracksWithMediaType:AVMediaTypeAudio];
        [audioTrack insertTimeRange:timeRange ofTrack:[tracktypes objectAtIndex:0] atTime:kCMTimeZero error:&error];

        if (error)
        {
            NSLog(@"%@",error);
            return;
        }

        AVAssetExportSession* exportSession = [AVAssetExportSession
                                               exportSessionWithAsset:composition
                                               presetName:AVAssetExportPresetAppleM4A];
       // AVAssetExportPresetPassthrough,,AVAssetExportPresetLowQuality
        if (nil == exportSession)
        {            
            return;
        }

        NSString *urlSt = [documentPath_ stringByAppendingPathComponent:[self dateString]];
        NSURL* combined = [[NSURL alloc] initFileURLWithPath:urlSt];

        exportSession.outputURL = combined;
        exportSession.outputFileType = AVFileTypeAppleM4A;
       // AVFileTypeAIFF , AVFileTypeAIFC, AVFileTypeAIFC,
        [exportSession exportAsynchronouslyWithCompletionHandler:^(void){

            dispatch_async(dispatch_get_main_queue(), ^{
                switch (exportSession.status)
                {
                    case AVAssetExportSessionStatusFailed:
                        NSLog(@"Failed");
                        break;
                    case AVAssetExportSessionStatusCompleted:
                        NSLog(@"Completed");
                        break;
                    case AVAssetExportSessionStatusWaiting:
                        break;
                    default:
                        break;
                }

            });
        }];

        [recordedFilePaths addObject:combined];
}

`

1
क्या आप सुनिश्चित हैं कि आपकी 7min 0.85 एमबी फ़ाइल दूषित नहीं है? असंभव नहीं होने पर आकार में थोड़ा सा लगता है ...
जोड़ा लेखक Nicolas Manzini, स्रोत
नहीं, यह दूषित नहीं है, फ़ाइल अपलोड करने के बाद मैं इसे डाउनलोड करता हूं और इसे सुनता हूं, जैसा कि मैंने इसे रिकॉर्ड किया है।
जोड़ा लेखक Waris Shams, स्रोत