视频编辑工具:添加水印、特效、音乐、导出视频、视频转gif
githud传送门:NHAVEditor
基于 AVFoundation 框架封装的 iOS视频编辑工具,支持给视频添加水印、特效、音乐、导出视频、视频转gif
iOS: >= 8.0
使用方法:
导入头文件:
#import "NHAVEditor.h" #import "NHAVEditorHeader.h" #import "NHGifWriter.h" #import "NHMediaWriter.h" #import "NHCaptureViewController.h"
初始化
- (NHAVEditor *)mediaEditor {if (!_mediaEditor) {_mediaEditor = [[NHAVEditor alloc] initWithVideoURL:[NSURL fileURLWithPath:kMp4Path]];_mediaEditor.delegate = self;}return _mediaEditor; }- (NHGifWriter *)gifWriter {if (!_gifWriter) {_gifWriter = [[NHGifWriter alloc] initWithOutputURL:nil];_gifWriter.loopCount = 0;_gifWriter.delayTime = 0.1;}return _gifWriter; }- (NHMediaWriter *)mediaWriter {if (!_mediaWriter) {_mediaWriter = [NHMediaWriter mediaWithVideoSize:_displayView.videoSize fileType:AVFileTypeQuickTimeMovie];}return _mediaWriter; }
添加背景音乐
[self.mediaEditor addAudioWithAudioURL:url customConfig:^(NHAudioConfig * _Nonnull config) {// 开始的音量大小,结束的时音量大小,从开始到结束这段时间的一个音量线性变化config.startVolume = 0.0;config.endVolume = 1.0;// 是否关闭视频原声,默认false// config.removeOriginalAudio = true;config.originalVolume = 0.1;} completedBlock:nil];
添加水印
// 先创建一个水印或者动效 layer 层CGFloat x = _displayView.videoSize.width - [self logoImage].size.width; // CGFloat y = _displayView.videoSize.height - [self logoImage].size.height;_watermarkLayer.frame = CGRectMake(x, 0, [self logoImage].size.width, [self logoImage].size.height);if (_isOpenAnimation) {CABasicAnimation *keyAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];keyAnimation.duration = 2.0;keyAnimation.repeatCount = MAXFLOAT;keyAnimation.toValue = @(M_PI * 2.0);keyAnimation.beginTime = AVCoreAnimationBeginTimeAtZero;keyAnimation.removedOnCompletion = NO;[_watermarkLayer addAnimation:keyAnimation forKey:@"transform.rotation.z"];}// 执行添加水印操作[self.mediaEditor addWatermarkWithLayer:self.watermarkLayer customConfig:nil completedBlock:nil];
导出视频
[self.mediaEditor exportMediaWithOutputURL:nil customConfig:^(NHExporyConfig * _Nonnull config) {config.presetName = AVAssetExportPreset1280x720;config.outputFileType = AVFileTypeQuickTimeMovie;} completedBlock:^(NSURL * _Nullable outputURL, NSError * _Nullable error) {// do ...}];
视频转 GIF
[self.gifWriter buildGifFromVideo:outputURL timeInterval:@(600) completion:^(NSURL * _Nullable url, NSError * _Nullable error) {NHLog(@"GIF生成完成:%@", url);}];
CMSampleBufferRef / CVPixelBufferRef 写成音/视频文件
// 1. 准备工作 [ws.mediaWriter prepareBuildMediaWithOutpurUrl:[ws OutUrl:@"mov"]];// 2. 写入 [ws.mediaWriter appendVideoSampleBuffer:bufferRef];// 3. 完成写入 [ws.mediaWriter finishWriteWithCompletionHandler:^(NSURL * _Nonnull fileUrl) {NHLog(@"%@",fileUrl);if (fileUrl) {} }];
更多操作,请查看工程内的
NHAVEditorExamples.xcodeproj
githud传送门:NHAVEditor
你可加入音视频开发技术交流群,因微信群二维码有时效,要更新文章麻烦,所以把交流群的二维码放在公众号:
微信搜索:浩浩影视文化
-> 关于我们
-> 技术交流
视频编辑工具:添加水印、特效、音乐、导出视频、视频转gif相关推荐
- 超好用的视频编辑工具:Movavi Video Editor 15 for Mac
哪里有简单好上手的视频编辑工具?video editor mac破解版是运行在mac平台上超好用的视频编辑工具,拥有快速高效的家庭电影编辑和照片幻灯片制作所需的一切.只需将您的视频和照片导入到该程序中 ...
- 剪映专业版 for Mac(全能好用的视频编辑工具)内附体验效果
剪映专业版 for Mac是一款全能好用的视频编辑工具,使用剪映专业版能够轻松对视频进行各种编辑,包括卡点.去水印,特效制作.倒放.变速等,还有专业风格滤镜,精选贴纸给你的视频加点乐趣. 下载地址:h ...
- 剪映专业版 1.2.0 - 一款全能好用的视频编辑工具
手机上人手必备视频编辑剪辑软件剪映出mac版啦!剪映专业版 mac是一款操作便捷,全能好用的视频编辑工具.剪映立足于个性化短视频制作,抖音官方剪辑神器,切割变速倒放,功能简单易学,留下每个精彩瞬间.内 ...
- 剪映 for Mac(全能好用的视频编辑工具)
剪映专业版 for Mac是一款全能好用的视频编辑工具,使用剪映专业版能够轻松对视频进行各种编辑,包括卡点.去水印,特效制作.倒放.变速等,还有专业风格滤镜,精选贴纸给你的视频加点乐趣. 原文链接:h ...
- linux 下视频编辑软件下载,在Linux系统中下载和安装Shotcut视频编辑工具
Shotcut是一款免费的.跨平台的非线性视频编辑工具,它使用MLT框架并利用FFMepg的功能构建,可应用在Linux操作系统下.当前Shotcut 20.02.17版本已发布下载,它增加了一些显着 ...
- 【强大的视频编辑工具】Adobe Premiere Pro CC 2019 for Mac
[简介] PR CC是视频编辑爱好者和专业人士必不可少的视频编辑工具.它可以提升您的创作能力和创作自由度,它是易学.高效.精确的视频剪辑软件.PR CC提供了采集.剪辑.调色.美化音频.字幕添加.输出 ...
- EffectCreator 6.1.0中文版 抖音短视频编辑工具
EffectCreator 中文版是mac上一款非常优秀的抖音短视频编辑工具,支持导入素材并集成到可使用的抖动工具中,软件有各种特殊效果,只要你想得到,都可以使用effect creator制作想象的 ...
- EffectCreator,一款必备的抖音短视频编辑工具
EffectCreator 中文版是mac上一款非常优秀的抖音短视频编辑工具,支持导入素材并集成到可使用的抖动工具中,软件有各种特殊效果,只要你想得到,都可以使用effect creator制作想象的 ...
- 抖音短视频编辑工具EffectCreator 6.4.0中文版
EffectCreator 中文版是mac上一款非常优秀的抖音短视频编辑工具,支持导入素材并集成到可使用的抖动工具中,软件有各种特殊效果,只要你想得到,都可以使用effect creator制作想象的 ...
最新文章
- python array赋值_从踩坑学Python内部原理(5):执行时机的差异
- Myeclipse学习总结(5)——Myeclipse常用快捷键再学习
- 算法知识之最长公共子序列问题(动态规划)
- MOXy是GlassFish 4中新的默认JSON绑定提供程序
- 数据结构(十五)dijkstra单源最短路径
- JPA ---- 表之间的映射关系
- 经典浪漫的爱情英语妙语
- 【笔试/面试】—— 序列全排列(递归版)
- hadoop菜鸟教程 Hadoop学习资料(云计算学习电子书)
- 全国网络安全等级保护测评机构推荐目录
- 【线代】《线性代数的几何意义》——摘录笔记(一)
- oracle数据库一个汉字占几个字节
- 算法学习(2)----丢番图方程
- SocialBook帮你扫除网红营销乱象
- 什么是深度学习?我们为何需要深度学习?
- 基于Android的股票交易软件,基于Android的股票交易系统的融资融券交易子系统的设计与实现...
- JSON.parse() 和 JSON.stringify()
- vuetify图标大全
- 汉语到了最危机时刻?
- nyoj 284 坦克大战
热门文章
- 1、RPC框架解析:开篇-什么是RPC?
- APPLE G5 机箱改造“黑苹果”全攻略
- java实现doc内容对比_Java平台Word格式处理控件Spire.Doc8月新功能代码演示:比较两个 Word 文档的内容...
- java代码如何运行?
- 如何下载腾讯课堂网页版的历史回放(电脑端)大多网页上的视频均可下载
- 锐捷交换机处理环路问题
- .net 下如何将文档文件(Word, Pdf等) 中的文本提取出来
- 阿里王坚受邀成为 TGO 鲲鹏会荣誉导师
- php 模块说明,各个模块详情展示页面说明使用
- ios链接xcode跑自动化意外中断?可以用pyautogui试试