title: AVAssetExportSession with instructions make black screen
body: <p>I'm trying to combine 2 audio files and 1 video file into 1 .mov file. I realize it with next code:</p>
  
  <pre><code>-(void)combineData{
  AVMutableComposition *mixComposition = [[AVMutableComposition alloc] init];
  
  AVAsset *audioAsset = [AVAsset assetWithURL:_songURL];
  AVAsset* audioAsset2 = [AVAsset assetWithURL:[NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:[@"speechRecord" stringByAppendingPathExtension:@"caf"]]]];
  AVURLAsset *videoAsset = [AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:[@"movie" stringByAppendingPathExtension:@"mov"]]] options:nil];
  
  AVMutableCompositionTrack *firstTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
  [firstTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) ofTrack:[[audioAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:nil];
  
  AVMutableCompositionTrack *secondTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
  [secondTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) ofTrack:[[audioAsset2 tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:nil];
  
  AVMutableCompositionTrack *videoTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
  [videoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) ofTrack:[[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:kCMTimeZero error:nil];
  
  AVMutableVideoCompositionLayerInstruction *layerInstruction = [AVMutableVideoCompositionLayerInstruction videoCompositionLayerInstructionWithAssetTrack:videoTrack];
  /*CGAffineTransform rotationTransform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(90));
  CGAffineTransform rotateTranslate = CGAffineTransformTranslate(rotationTransform,320,0);*/
  [layerInstruction setTransform:videoTrack.preferredTransform atTime:kCMTimeZero];
  
  AVMutableVideoCompositionInstruction * mainInstruction = [AVMutableVideoCompositionInstruction videoCompositionInstruction];
  mainInstruction.timeRange = CMTimeRangeMake(kCMTimeZero, videoAsset.duration);
  [mainInstruction setLayerInstructions:[NSArray arrayWithObject:layerInstruction]];
  
  mixComposition.naturalSize = videoTrack.naturalSize;
  
  AVMutableVideoComposition *mainCompositionInst = [AVMutableVideoComposition videoComposition];
  mainCompositionInst.renderScale = 1.0;
  mainCompositionInst.renderSize = videoTrack.naturalSize;
  mainCompositionInst.frameDuration = CMTimeMake(1, 30);
  mainCompositionInst.instructions = [NSArray arrayWithObject:mainInstruction];
  //mainCompositionInst.
  
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  NSString *documentsDirectory = [paths objectAtIndex:0];
  NSString *myPathDocs =  [documentsDirectory stringByAppendingPathComponent:@"mergeVideo.mov"];
  
  if ([[NSFileManager defaultManager] fileExistsAtPath:myPathDocs]) {
      [[NSFileManager defaultManager] removeItemAtPath:myPathDocs error:nil];
      NSLog(@"Removing old mergeVideo");
  }
  
  NSURL *url = [NSURL fileURLWithPath:myPathDocs];
  
  AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset:mixComposition presetName:AVAssetExportPresetHighestQuality];
  exporter.outputURL=url;
  exporter.outputFileType = AVFileTypeQuickTimeMovie; 
  exporter.videoComposition = mainCompositionInst;
  exporter.shouldOptimizeForNetworkUse = YES; 
  
  [exporter exportAsynchronouslyWithCompletionHandler:^ 
   {
       dispatch_async(dispatch_get_main_queue(), ^{
           [self exportDidFinish:exporter];
       });
   }];
  </code></pre>
  
  <p>My first task is deal with 90 rotation of my new video. When I'm including <code>mainCompositionInst</code> into my code, my new video have all sounds, but it's have a black screen and still not rotated. If I don't using any instructions it works fine. Maybe I have mistakes in my code, or maybe not. What would you advise me?</p>