当前位置: 首页 > news >正文

视频编辑工具:添加水印、特效、音乐、导出视频、视频转gif

githud传送门:NHAVEditor

基于 AVFoundation 框架封装的 iOS视频编辑工具,支持给视频添加水印、特效、音乐、导出视频、视频转gif

iOS: >= 8.0

preview.gif

使用方法:

  1. 导入头文件:

    #import "NHAVEditor.h"
    #import "NHAVEditorHeader.h"
    #import "NHGifWriter.h"
    #import "NHMediaWriter.h"
    #import "NHCaptureViewController.h"
    
  2. 初始化

    - (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;
    }
    
  3. 添加背景音乐

     [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];
    
  4. 添加水印

    // 先创建一个水印或者动效 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];
  5. 导出视频

        [self.mediaEditor exportMediaWithOutputURL:nil customConfig:^(NHExporyConfig * _Nonnull config) {config.presetName = AVAssetExportPreset1280x720;config.outputFileType = AVFileTypeQuickTimeMovie;} completedBlock:^(NSURL * _Nullable outputURL, NSError * _Nullable error) {// do ...}];
    
  6. 视频转 GIF

      [self.gifWriter buildGifFromVideo:outputURL timeInterval:@(600) completion:^(NSURL * _Nullable url, NSError * _Nullable error) {NHLog(@"GIF生成完成:%@", url);}];
    
  7. 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) {}
    }];
    
  8. 更多操作,请查看工程内的 NHAVEditorExamples.xcodeproj

githud传送门:NHAVEditor

你可加入音视频开发技术交流群,因微信群二维码有时效,要更新文章麻烦,所以把交流群的二维码放在公众号:
微信搜索:浩浩影视文化 -> 关于我们 -> 技术交流
浩浩影视文化


http://www.taodudu.cc/news/show-6117765.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • 谁知道下面这个视频中的特效是用什么软件做的?
  • 有哪些能给视频加特效字幕的软件?试试这几种简单方法
  • 求分享如何给短视频加特效
  • 4500m a8 amd_amd a8 4500m等同什么intel
  • R7 4800U对比R5 4600U性能差距
  • 锐龙4750u和4800u的区别
  • html4和html5的区别
  • PHP的apcu是什么,opcache又是什么?
  • 全志H3停产,A40I/T3更胜一筹--CoM-X40I核心模块来了
  • i5 6600 HD530联想扬天S5250黑苹果
  • 全志科技A40i国产开发板——性能参数综合测试
  • 全志A40i开发板(4核ARM CortexA7)测评合集——存储介质读写测试
  • 全国产!全志A40i+Logos FPGA核心板(4核ARM Cortex-A7)硬件说明
  • 【解决电脑】开机屏幕左键无反应,右键变加载;选择文件夹未响应,卡顿40秒后恢复;新建文件夹正常,删除移动卡顿
  • 全志A40i工业核心板,100%国产4核ARM Cortex-A7,支持“双屏异显”【显示接口能力,工业HMI首选方案】
  • PPT模板大全
  • 哪里有纯免费的PPT模板下载网站?
  • 800套绝美PPT模板免费下载
  • 关于更改Python的默认工作路径
  • 学完python可以从事哪些工作?
  • Visual Studio 2019 下Python的开发环境搭建
  • python将工作表根据一列拆分成多个独立的sheet工作薄
  • python- 工作/休息/调休日怎么精准判断
  • 学习Python可以做什么工作?选哪些工作方向?
  • linux 二次封装 释放,Linux必学的60个命令(二)
  • NoSQL-Mongodb基本操作和复制集(一)
  • 认识 BASH Shell
  • 图数据库ONgDB Release v-1.0.0
  • Fish shell 入门教程
  • SHELLPUB在线查杀更新公告(文末抽奖)