我在iPhone中录制了一个视频,我正在获取其本地文件URL。有什么方法可以使用URL将视频旋转90度?在iOS中通过90度编程旋转录制的视频
0
A
回答
1
您可以使用AVMutableVideoCompositionLayerInstruction
类在导出会话之前旋转视频,并且您可以在其上应用Transform
。
这是方法
[yourlayerInstruction setTransform:CGAffineTransformMakeRotation(M_PI/2) atTime:firstAssets.duration];
这里是全面实施
AVMutableComposition *mixComposition = [[AVMutableComposition alloc] init];
AVMutableCompositionTrack *firstTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo
preferredTrackID:kCMPersistentTrackID_Invalid];
AVMutableVideoCompositionInstruction * mainInstruction = [AVMutableVideoCompositionInstruction videoCompositionInstruction];
mainInstruction.timeRange = CMTimeRangeMake(kCMTimeZero, CMTimeAdd(firstAsset.duration, secondAsset.duration));
AVMutableVideoCompositionLayerInstruction *firstlayerInstruction = [AVMutableVideoCompositionLayerInstruction
videoCompositionLayerInstructionWithAssetTrack:firstTrack];
// set Trasform Here
[firstlayerInstruction setTransform:CGAffineTransformMakeRotation(M_PI/2) atTime:kCMTimeZero];
[firstlayerInstruction setOpacity:0.0 atTime:firstAsset.duration];
mainInstruction.layerInstructions = [NSArray arrayWithObjects:firstlayerInstruction,nil];;
AVMutableVideoComposition *mainCompositionInst = [AVMutableVideoComposition videoComposition];
mainCompositionInst.instructions = [NSArray arrayWithObject:mainInstruction];
mainCompositionInst.frameDuration = CMTimeMake(1, 30);
mainCompositionInst.renderSize = CGSizeMake(320.0, 480.0);
AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset:mixComposition
presetName:AVAssetExportPreset640x480];
exporter.outputURL=url;
exporter.videoComposition=mainCompositionInst;
exporter.outputFileType = AVFileTypeQuickTimeMovie;
exporter.shouldOptimizeForNetworkUse = YES;
[exporter exportAsynchronouslyWithCompletionHandler:^{
dispatch_async(dispatch_get_main_queue(),^
{
[self exportDidFinish:exporter];
});
}];
我希望这将帮助你
+0
它工作正常 –
0
如果使用MPMoviePlayerViewController播放视频: - 那你可以试试这个, 首先从捆绑使用以下行提取您的网址,
NSURL *fileUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"your video" ofType:@"mp4"]];
或者你也可以直接在mpmovieplayerviewcontroller使用本地文件的网址
然后创建MPmovieplayerview控制器的对象,并使用您的视频文件,如下图所示: -
MPMoviePlayerViewController *moviePlayerController = [[MPMoviePlayerViewController alloc]initWithContentURL:fileUrl];
[moviePlayerController.moviePlayer prepareToPlay];
moviePlayerController.view.transform = CGAffineTransformMakeRotation(M_PI/2);
[self.view addSubview:moviePlayerController.view];
希望它有帮助!
+0
那么这只会在播放时旋转视频,他希望它在输出视频到服务器时进行旋转。 – iphonic
相关问题
- 1. 在AVPlayerViewController中旋转视频90度 - 可能吗?
- 2. 旋转CALayer 90度?
- 3. 旋转视图层次结构90度
- 4. Android - 旋转Admob视图90度?
- 5. AVMutableComposition旋转录制的视频
- 6. 在Chrome中旋转90度的图像
- 7. 旋转NSImageView的CALayer 90度
- 8. 旋转(90度)的ViewGroup根
- 9. opencv - 视频看起来不错,但帧旋转90度
- 10. Android,如何旋转视频90度,但不是SurfaceView
- 11. 从iPhone录制的视频旋转180度的FB,Vimeo,Youtube
- 12. 圆球90度旋转
- 13. 如何旋转TeeChart 90度
- 14. 旋转GoJs形状90度
- 15. 矩形旋转90度libgdx
- 16. 子报表旋转90度
- 17. iPhone屏幕旋转:我可以强制旋转90度吗?
- 18. 从iOS中的URL加载后旋转90度的图像?
- 19. 表中的90度文字旋转
- 20. 相机视图在Swift中旋转90度
- 21. Youtube视频强制iOS应用程序旋转
- 22. 如何在iOS上将图像旋转90度?
- 23. 在Quickblox中,我们如何在Android应用程序(QBRTCSurfaceView)中旋转视频(例如90度)?
- 24. System.Drawing.Graphics Drawimage将从IOS获取的图片旋转到90度
- 25. 顺时针旋转90度的图像
- 26. 如何旋转90度的UIImage?
- 27. 在iOS中使用AVFoundation录制视频
- 28. 如何以编程方式在iPhone中将图像旋转90度?
- 29. 在iOS中的应用程序中播放录制的视频
- 30. setDisplayOrientation(90)在android(视频录制)中不起作用
@ Anbu.Karthik我没有得到任何想法,该怎么办呢 –
你如何加载你的视频AVplayer或MPMoviePlayerViewController –
我必须将它与其他视频合并并将其发送到服务器 –