5

[ここ][1]にあるコードを使用して、を使用して撮影したビデオに画像を添付しUIImagePickerControllerます。

ビデオは縦向きで正常に再生されますが、一度使用するAVURLASSetと、縦向きではなく横向きになり、理由がわかりません。

誰かが私を正しい方向に向けることができますか?

私のコード:

-(IBAction)addWaterMark:(id)sender {
 AVURLAsset* videoAsset = [[AVURLAsset alloc]initWithURL:[NSURL fileURLWithPath:tempPath] options:nil];
AVMutableComposition* mixComposition = [AVMutableComposition composition];

AVMutableCompositionTrack *compositionVideoTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo  preferredTrackID:kCMPersistentTrackID_Invalid];
AVAssetTrack *clipVideoTrack = [[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];
[compositionVideoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) 
                               ofTrack:clipVideoTrack
                                atTime:kCMTimeZero error:nil];

[compositionVideoTrack setPreferredTransform:[[[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] preferredTransform]]; 

CGSize videoSize = [videoAsset naturalSize]; 
NSLog(@"%f %f",videoSize.width,videoSize.height);
}

この時点で、temppathの正しいサイズではなく480,360を取得します

4

2 に答える 2

2

AVfoundationの紹介でビデオを編集および操作する方法を説明する詳細なチュートリアルを見つけました here

横向きの場合は、提供されている naturalSize プロパティを使用できますが、縦向きの場合は、幅が高さになり、その逆になるように、naturalSize を反転する必要があります。

于 2012-07-05T10:47:58.177 に答える