Note that there are some explanatory texts on larger screens.

plurals
  1. POAVAssetExportSession - Join 2 mp4 files in IOS
    primarykey
    data
    text
    <p>I am trying to join 2 preexisting mpeg4 video's together on an ipad2 with the following code.</p> <pre><code>-(void)mergeTestVideos { //setup asset NSString *firstassetpath = [NSString stringWithFormat:@"%@mpeg4-1.mp4", NSTemporaryDirectory()]; NSString *secondassetpath = [NSString stringWithFormat:@"%@mpeg4-2.mp4", NSTemporaryDirectory()]; NSFileManager *fileManager = [NSFileManager defaultManager]; AVAsset *firstAsset = [AVAsset assetWithURL:[NSURL fileURLWithPath:firstassetpath]]; AVAsset *secondAsset = [AVAsset assetWithURL:[NSURL fileURLWithPath:secondassetpath]]; NSLog(@"FirstAsset Is Readable = %d", firstAsset.isReadable); NSLog(@"FirstAsset Is playable = %d", firstAsset.isPlayable); NSLog(@"FirstAsset Is exportable = %d", firstAsset.exportable); NSLog(@"SecondAsset Is Readable = %d", secondAsset.isReadable); NSLog(@"SecondAsset Is playable = %d", secondAsset.isPlayable); NSLog(@"SecondAsset Is exportable = %d", secondAsset.exportable); //setup composition and track AVMutableComposition *composition = [[AVMutableComposition alloc]init]; AVMutableCompositionTrack *track = [composition addMutableTrackWithMediaType:AVAssetExportPresetPassthrough preferredTrackID:kCMPersistentTrackID_Invalid]; //add assets to track [track insertTimeRange:CMTimeRangeMake(kCMTimeZero, firstAsset.duration) ofTrack:[[firstAsset tracksWithMediaType:AVMediaTypeVideo]objectAtIndex:0] atTime:kCMTimeZero error:nil]; [track insertTimeRange:CMTimeRangeMake(kCMTimeZero, secondAsset.duration) ofTrack:[[secondAsset tracksWithMediaType:AVMediaTypeVideo]objectAtIndex:0] atTime:firstAsset.duration error:nil]; // 5 - Create exporter AVAssetExportSession *exporter = [[AVAssetExportSession alloc]initWithAsset:composition presetName:AVAssetExportPresetPassthrough]; NSString *outputURL = [NSString stringWithFormat:@"%@mergedvid.mp4", NSTemporaryDirectory()]; NSLog(@"%@", exporter.supportedFileTypes); exporter.outputURL=[NSURL fileURLWithPath:outputURL]; exporter.outputFileType = AVFileTypeMPEG4; [exporter exportAsynchronouslyWithCompletionHandler:^{ dispatch_async(dispatch_get_main_queue(), ^{ [self exportDidFinish:exporter]; }); }]; } -(void)exportDidFinish:(AVAssetExportSession*)session { NSLog(@"export method"); NSLog(@"%i", session.status); NSLog(@"%@", session.error); } </code></pre> <p>and output is as follows:</p> <pre><code>- FirstAsset Is Readable = 1 - FirstAsset Is playable = 1 - FirstAsset Is exportable = 1 - SecondAsset Is Readable = 1 - SecondAsset Is playable = 1 - SecondAsset Is exportable = 1 - ( "com.apple.quicktime-movie", "com.apple.m4a-audio", "public.mpeg-4", "com.apple.m4v-video", "public.3gpp", "org.3gpp.adaptive-multi-rate-audio", "com.microsoft.waveform-audio", "public.aiff-audio", "public.aifc-audio", "com.apple.coreaudio-format" ) -export method - 4 - Error Domain=AVFoundationErrorDomain Code=-11838 "Operation Stopped" UserInfo=0x155f76f0 {NSLocalizedDescription=Operation Stopped, NSLocalizedFailureReason=The operation is not supported for this media.} </code></pre> <p>Ok so according to the output my files are ok and exportable and mp4 is a supported output type.</p> <p>Does anybody have any idea why it is giving me the error 'The operation is not supported for this media'</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload