ios 裁剪框大小_ios – 如何将视频裁剪为特定大小?
我已按照此链接裁剪和调整视频大小:
我想裁剪视频并将其调整为612 * 612.
我的代码如下:
let outputPath : NSString = NSString(format: "%@%@", NSTemporaryDirectory(), "output.mov")
let outputURL : NSURL = NSURL(fileURLWithPath: outputPath as String)!
let fileManager : NSFileManager = NSFileManager.defaultManager()
if(fileManager.fileExistsAtPath(outputPath as String))
{
let asset : AVURLAsset = AVURLAsset(URL: outputURL, options: nil)
if let clipVideoTrack: AVAssetTrack = asset.tracksWithMediaType(AVMediaTypeVideo)[0] as? AVAssetTrack
{
var videoComposition: AVMutableVideoComposition = AVMutableVideoComposition()
videoComposition.frameDuration = CMTimeMake(1, 60)
print(clipVideoTrack.naturalSize.height)
videoComposition.renderSize = CGSizeMake(612,612)
var instruction: AVMutableVideoCompositionInstruction = AVMutableVideoCompositionInstruction()
instruction.timeRange = CMTimeRangeMake(kCMTimeZero, CMTimeMakeWithSeconds(60, 30))
var transformer: AVMutableVideoCompositionLayerInstruction =
AVMutableVideoCompositionLayerInstruction(assetTrack: clipVideoTrack)
var t1: CGAffineTransform = CGAffineTransformMakeTranslation(clipVideoTrack.naturalSize.height, 0)
var t2: CGAffineTransform = CGAffineTransformRotate(t1, CGFloat(M_PI_2))
var finalTransform: CGAffineTransform = t2
transformer.setTransform(finalTransform, atTime: kCMTimeZero)
instruction.layerInstructions = NSArray(object: transformer) as [AnyObject]
videoComposition.instructions = NSArray(object: instruction) as [AnyObject]
let exportPath : NSString = NSString(format: "%@%@", NSTemporaryDirectory(), "output2.mov")
var exportUrl: NSURL = NSURL.fileURLWithPath(exportPath as! String)!
if(fileManager.fileExistsAtPath(exportPath as String))
{
var error:NSError? = nil
if(fileManager.removeItemAtPath(exportPath as String, error: &error))
{
//Error - handle if requried
}
}
var exporter = AVAssetExportSession(asset: asset, presetName: AVAssetExportPresetHighestQuality)
exporter.videoComposition = videoComposition
exporter.outputFileType = AVFileTypeQuickTimeMovie
exporter.outputURL = exportUrl
exporter.exportAsynchronouslyWithCompletionHandler({ () -> Void in
dispatch_async(dispatch_get_main_queue()) {
() -> Void in
let outputURL:NSURL = exporter.outputURL;
self.videoURL = outputURL
let asset:AVURLAsset = AVURLAsset(URL: outputURL, options: nil)
}
})
}
}
我将尺寸视频尺寸设为612 * 612,但内容很奇怪.可能是什么问题?
ios 裁剪框大小_ios – 如何将视频裁剪为特定大小?相关推荐
- ios wkweb设置图片_iOS wkwebview和 uiwebview 内容图片自适应大小
- (void)webViewDidFinishLoad:(UIWebView *)webView { // 2.都有效果 NSString *js=@"var script = docum ...
- 手机裁剪圆角图片_iOS高效图片圆角裁剪方法
自定义裁剪算法 - (UIImage *)dealImage:(UIImage *)img cornerRadius:(CGFloat)c { // 1.CGDataProviderRef 把 CGI ...
- 短视频生产利器!视频裁剪之横屏转竖屏新技术,出自腾讯多媒体实验室
腾讯多媒体技术专栏 伴随手机等智能设备的广泛使用以及短视频平台的兴起,越来越多的"竖屏"视频开始占据人们的视野.目前,许多"竖屏"视频仍是由16:9等宽高比的& ...
- vue-cropper 图片裁剪(修改裁剪框的大小以及位置)
一.安装使用 # npm 安装 npm install vue-cropper // 组件内使用 import { VueCropper } from 'vue-cropper' components ...
- 基于vue的图片裁剪框的实现
1.基于vue建设一个裁剪框 全文附录我会放到最后,有需要的小伙伴自取 ## 1.1在没有添加图片的时候显示如上图的css样式 <label class="h-photo-left&q ...
- ios 裁剪框大小_iOS实现裁剪框和图片剪裁功能
这篇文章主要为大家详细介绍了iOS实现裁剪框和图片剪裁功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下图片处理中经常用的图片剪裁,就是通过剪裁框确定图片剪裁的区域,然后剪去该区域的图片,今天实现 ...
- ios 裁剪框大小_ios 裁剪框大小_PS裁剪工具的使用,简单明了,学会了不求人,再也不用上百度查了......
大家好,我是小新疆.今天继续给大家分享Photoshop的知识,小伙伴们快搬来小板凳准备好本本和笔,我们要开始啦.看完要去练习呦.分享是一种美德,关注是一种鼓励!要是喜欢小新疆的分享记得点关注呦!每日 ...
- ios 裁剪框大小_ios 图片裁剪修改尺寸的方法总结
目前使用过的图片裁剪方法 1.等比例压缩 裁剪出的图片是以asize最小值为边框的正方形图片 //修改图片尺寸同比缩放 + (UIImage*)thumbnailWithImageWithoutSca ...
- IOS视频编辑,视频裁剪,视频拼接,音频处理,视频处理
前言 用代码在简单视频编辑中,主要就是加美颜.水印(贴图).视频截取.视频拼接.音视频的处理,在美颜中,使用GPUImage即可实现多种滤镜.磨皮美颜的功能,并且可以脸部识别实时美颜等功能,这个有很多 ...
- IOS视频编辑功能详解下篇-视频裁剪、视频拼接、音视频的处理
转自:http://www.hudongdong.com/ios/550.html 前言 用代码在简单视频编辑中,主要就是加美颜.水印(贴图).视频截取.视频拼接.音视频的处理,在美颜中,使用GPUI ...
最新文章
- 实战Solaris 10
- javafx查找子节点_JavaFX技巧29:使布局忽略不可见的节点
- Linux系统开机自动加载驱动module
- (90)Verilog HDL系统函数和任务:$fmonitor
- 设计模式系列之「观察者模式」
- Android类加载器和热修复原理
- RN Adatper_Util工具类
- Python设计模式(七)【命令模式】
- Unity3D编译器汉化
- 20.溢出文本用省略号表示
- 成功解决 zsh: command not found
- powershell中替换文件内容的方法
- 【Unity】获取免费可商用的中文像素字体
- o.s.b.d.LoggingFailureAnalysisReporter报错
- 你理解的「增长」真的是增长吗?
- EMQX 入门教程——导读
- [转]mitmproxy套件使用攻略及定制化开发
- Hystrix中文开发手册-Hystrix简介(Home)
- 基于javaweb的crm客户管理系统(java+ssm+jsp+mysql+redis)
- 发布.net core
热门文章
- rest api如何创建_我的宝宝走了一步,创建了一个REST API并进行了码头化
- 【参数】平面光:倍增为3.5,颜色为淡蓝色/淡——daiding
- 为啥面试需要Aggressive?
- android版本高低有啥好处与不好,WP跟安卓比流畅 但为什么就不好用呢?
- dble安装zk及配置mysql主从模式,在已有mysql存在数据升级mysql配置
- IllustratorCS6-桌面排版与插画绘制-01-使用散点画笔绘制璀璨星云
- java 打印字间距 行距_[图片问答]LODOP打印的行间距字间距
- ThinkPHP 验证码错误
- 百度地图标记点加点击事件和鼠标移入事件并添加数据
- (一)Word中如何将表格断开,并且增加空的一行