导出捕获的影片仅在横向模式下播放,并且是旋转的

时间:2011-02-21 11:53:49

标签: iphone

在我发布大量代码之前,这个场景是:

  1. 使用基于WWDC的AVEditDemo的代码,我使用纵向标准控件捕获电影。
  2. 我使用与使用核心动画的AVEditDemo相同的代码处理视频。
  3. 当我使用相机应用程序播放结果视频时,它会旋转90度并且不再是“肖像”(它现在处于横向状态)并被压扁。 (纵横比似乎已被交换,宽度 - >高度和高度 - >宽度。

    花了很多时间,我不知所措。

    所需的结果是与拍摄的原稿相同的电影。 (最终使用动画叠加)。

    要查看此操作,只需从Apple下载并运行AVEditDemo,将标题设置为“ON”并导出电影。

1 个答案:

答案 0 :(得分:0)

我想简短的回答是:

处理原始视频时,您需要检索'preferredTransform':

AVAssetTrack *sourceVideo = [[sourceAsset tracksWithMediaType:AVMediaTypeVideo]lastObject];
CGAffineTransform *preferredTransform = [sourceVideo preferredTransform];

然后在编写最终视频时,你会做类似的事情:

AVMutableComposition *composition = [AVMutableComposition composition];

AVMutableCompositionTrack *compositionVideoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo 
     preferredTrackID:kCMPersistentTrackID_Invalid];
AVMutableCompositionTrack *compositionAudioTrack = [composition addMutableTrackWithMediaType:AVMediaTypeAudio 
     preferredTrackID:kCMPersistentTrackID_Invalid];
[compositionVideoTrack setPreferredTransform:preferredTransform];