当我通过AVAssetExportSession导出视频资源的结果文件是解构模式。 (文件通过itune-> apps-抓起>文件sharing->我的应用程序)。 我怎么可以导出肖像模式(将其旋转)的视频资产?
Answer 1:
从iPhone捕捉设备传来的视频总是景观导向不管使用什么设备取向时捕获。
如果你想旋转你的视频中,“简单”的解决办法是分配一个转换到出口会话的视频轨道。
创建你的AVComposition对象2个可变轨迹:
AVMutableCompositionTrack *videoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];
AVMutableCompositionTrack *audioTrack = [composition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
添加您的媒体轨道构图的曲目:
...
BOOL videoResult = [videoTrack insertTimeRange:sourceCMTime
ofTrack:[tracks objectAtIndex:0]
atTime:currentTime
error:&error];
BOOL audioResult = [audioTrack insertTimeRange:sourceCMTime
ofTrack:[tracks objectAtIndex:0]
atTime:currentTime
error:&error];
...
当你添加了所有的曲目,你的应用转换为构图的视频轨道:
CGAffineTransform rotationTransform = CGAffineTransformMakeRotation(M_PI_2);
// CGAffineTransform rotateTranslate = CGAffineTransformTranslate(rotationTransform,360,0);
videoTrack.preferredTransform = rotationTransform;
(是carful是变换了左上角为原点,所以在旋转后需要翻译,但iPhone 4S的,的iOS 5.1测试,似乎旋转现在围绕中心做。)
Answer 2:
当U变换轨道同时应设置组合物renderSize因为它可能出帧或与黑块出现:
self.mutableVideoComposition.renderSize = CGSizeMake(assetVideoTrack.naturalSize.height,assetVideoTrack.naturalSize.width);
文章来源: how to export video asset via AVAssetExportSession in portrait mode