01 GPUImage为视频添加滤镜
2016-03-14 18:04
726 查看
一、简单介绍
开始了第二个项目,要做一个美拍,最近查找了为视频添加滤镜,写了一个简单的Demo,分享一下下我是使用GPUImage做的,使用GPUImage的默认的Demo,应该会是出错,出错的解决方案点击这里.
使用了Cocoapods导入的三方,所有下载下来工程后还需要重新导入一下三方,如果不会使用Cocoapods黑不想学的,直接将GPUImage的三方拖拽进来也行
进行编辑的视频,是我用几张图片合成的一个视频,(了解详情,请点击这里),是一个.mov的文件不是GIF动图,虽然看着有点像.
播放视频的视图,是我自己封装的一个视频播放视图,想了解详情的点击这里
二、代码介绍
下面稍微介绍一下代码,文件中也有代码注释// 指定要添加滤镜的视频的位置 NSURL *sampleURL = [[NSBundle mainBundle] URLForResource:@"movie" withExtension:@"mov"]; movieFile = [[GPUImageMovie alloc] initWithURL:sampleURL]; movieFile.runBenchmark = YES; movieFile.playAtActualSpeed = NO; // 创建滤镜 filter = [[GPUImagePixellateFilter alloc] init]; // 添加滤镜 [movieFile addTarget:filter];
// 创建显示视图 GPUImageView *filterView = [[GPUImageView alloc] initWithFrame:CGRectMake(0, 0, 414, 414)]; [self.showView addSubview:filterView]; [filter addTarget:filterView];
// 指定输出文件的位置和尺寸 movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(640.0, 480.0)];
// 开始编辑视频 [movieWriter startRecording]; [movieFile startProcessing];
// 移除,不然会一直占有大量的内存 [filter removeTarget:movieWriter]; [movieWriter finishRecording];
三、效果图
四、工程下载地址
工程地址相关文章推荐
- QtQuick基础教程(三)---界面元素布局
- CodeForces 622A-Infinite Sequence
- iOS UITableView滑动时NSTime停止重复利用RunLoop解决
- BlockingQueue
- Java源码阅读之PriorityBlockingQueue
- IOS学习 触摸和手势UITouch 捏合
- CodeForces 622A Infinite Sequence
- 可变字符串改变颜色大小
- UE4 添加多人联机功能
- UE4 添加多人联机功能
- UILabel的minimumScaleFactor
- EasyUI-draggable
- Basic build issue regarding libs, pkg-config and opencv
- IOS UICollectionView 的基础使用
- 根据sql的hash_value查看sql的正直执行计划
- UIButton设置内容setTitle
- 自定义UISearchBar
- 【HDU】 5538 House Building
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- Android UiAutomator 初试。