蓝松视频编辑SDK–新版本API使用说明

合成容器:ConcatComposition

字面意思是:拼接合成. 是以图片和视频的拼接的总时长作为最终导出视频的时长, 容器有3大层, 分别是:背景图层 , 拼接类图层 , 叠加类图层. ˙
背景层: 给容器整体增加一个背景图层, 支持:颜色背景, 图片背景, 如果你要给不同的图层设置不同的背景,则可以用图层的画布/背景功能来分别设置;
拼接层: 把用户选中的图片和视频前后拼接在一起,是前后叠加. 可以在开始前增加, 也可以做预览过程中插入, 可以指定时间点插入, 可复制, 可删除, 可调节每个图层的前后位置, 支持手势调节, 支持图层的各种方法.
叠加类图层: 在拼接层上面,叠加多个其他图层, 是上下叠加. 比如叠加水印, 叠加文字, 叠加动画等等这些称之为叠加类型的图层, 图层可调节上下位置, 可设置显示开始时间点, 可设置显示时长;可叠加, 可删除, 支持手势,旋转移动缩放滤镜马赛克等等, 可执行父类图层的所有方法.
这些API 的关键词是: 在LSOConcatCompositionView中;, 拼接:(concat), 叠加:(overLay), 背景(backGround);

视频和图片的混合编辑

当前大部分视频编辑是拼接编辑, 比如您选中了几个视频和几个图片, 则是视频和图片混合的前后拼接合成的编辑.
可以是单个视频, 也可以是多个视频, 也可以是一张图片或多种图片, 或者图片和视频混合编辑.
视频增加后,当前默认是整个视频时长增加进去, 增加后, 你可以设置视频时长, 容器的总时长会改变, 得到图层对象,可执行图层的各种方法.
图片增加后, 默认每张图片显示3秒, 可调节显示时长, 可复制,删除,插入图片, 拼接图片不可以循环, 得到图层对象,可执行图层的各种方法.
如果设置了转场,则前一个层和后一层有部分画面是重叠, 重叠时间可设置. 设置转场后,
最终容器的总长度是各个图片和视频的长度之和 ,如果有转场或视频变速,则对应的时长会改变;

图层之–时间调节

素材本身的的时长. 比如视频时长,声音时长, 图片在放入后, 默认是显示3秒; 图片序列和gif等是其本身的时长; 这个时长是素材本身的, 我们称之为AssetDuration 是资源时长, 只能读取,不能修改, 但你可以修改素材在容器中的显示时间和从什么时间点开始显示;
可以修改的有: 素材在容器中的显示时间点, 是否循环, 显示时长, 如果循环,则会从显示时间点开始, 一直循环到整个容器尾部, 时间可以实时设置, 实时调节, 实时获取,当显示时长改变后, 如果你要获取对应的缩略图,则缩略图中图片数组也会相应的改变;
如果是视频素材, 则支持裁剪视频长度, 两个方法是: setCutStartTime和 setCutEndTime,从视频的什么时间开始裁剪,和裁剪到什么地方; 视频裁剪当前没有约束, 但建议你最小裁剪值是1秒;
这些API的名字是:资源时长(assetDuration), 当前图层的显示时长( displayDuration), 从容器的什么时间点开始显示:(startTimeOfComp);

图层之–手势 + 移动/缩放/旋转

容器在创建时设置了宽度和高度, 素材增加进去后, 会默认放到容器的中间, 即容器的宽度/2和高度/2;
每增加一个素材, 会得到一个图层对象, 图层都支持用手指直接操作屏幕 来完成 移动缩放旋转的touch事件, 你可以单指移动, 双指缩放和旋转; 当选中一个图层时, 它的周边会出现一个红色的方框, 表示选中当前图层, 为了避免在操作时误触别的图层, 你可以把别的图层锁定, 我们提供丰富的API让你设置或获取相关的坐标, 我们甚至定义了一个类LSORect来让你获取相对应当前预览窗的相对坐标 和 相对于容器中的绝对坐标;
我们另外定义了各种常见的枚举类型, 比如4种缩放类型, 和上/下/左/右/中/左上/左下/右上/右下这9个位置点供您选择; 提供缩放系数, 缩放到实际大小,设置具体位置, 相对屏幕位置等
如果你要用代码的形式设置, 则设置的位置是当前图层中心点的位置. 可以缩放到指定大小, 旋转则0度则是正上方为0点, 角度是0–360度;
这些API的关键词是: 缩放大小(scaleSize), 缩放类型(scaleType) , 缩放系数(scaleFactor), 位置类型( positionType) , 位置中心点(centerPoint), 位置相对预览窗口坐标(positionInView), 旋转 (rotation)

图层之–贴纸/水印/文字

贴纸, 水印, 文字, 在我们图层处理架构里, 是以图像的形式呈现的, 因为手机GPU处理的是图像, 贴纸, 水印, 文字在底层是一个意思, 认为是一个图像或一组连续的图像做处理.
文字在SDK内部会各种转换方法, 让你方便的以文字图层操作, 操作完毕后底层会转换为图像来处理,如果我们提供的绘制文字不够详细, 你也可以自己绘制,然后转换为图片或图片数组,设置到容器中.
贴纸和水印是一个意思,我们提供了单个图片的图层,多张联系图片组成的图层, Gif图层等, 这些你可以方便的设置, 可以设置一个,也可以设置多个.
图层的增加是通过容器Composition的方法实现的, 增加后, 得到对应的图层对象;
这些API 的关键词是: android的图片图层(BitmapLayer) , android的图片序列图层(BitmapListLayer), ios的图片图层(ImageLayer), ios的图片序列图层(ImageListLayer), Gif图层.

图层之–颜色调节/滤镜/美颜

滤镜是对图层的画面做调节, 和图层的缩放移动一样是图层的一个属性, 颜色调节和滤镜和美颜, 都是滤镜的不同效果. 当前我们的美颜是仅对整体画面做磨皮和美白处理,没有做脸识别后的各种功能.
当前支持的颜色调节包括: 亮度/ 对比度/ 饱和度/ 锐化/色温/白平衡/色调/曝光度
当前支持80种滤镜, 包括常见的17种滤镜,当前建议你使用这17种滤镜, 这些滤镜在我们demo里可以看到.
这些API 的关键词是: 设置滤镜(setFilter,设置会把上一个替换掉),增加滤镜(addFilter), 移出滤镜(removeFilter),删除所有滤镜(removeAllFilter);

图层之–转场设置

转场是两个素材前后拼接时播放时的一种过渡效果, 比如上一段淡淡的消失, 下一段逐渐出现等.
当前的转场是AE设计师在PC端用after Effect 设置好的, 然后按照我们的格式,导出为json文档,SDK还原出来在PC端设计的效果. 这样的好处是: 开发人员不用自己用代码实现各种效果,只需要根据不同的效果,把对应的json送到SDK中, SDK就实现了这样的效果, 简单高效, 并可以做到Android和ios的统一.
PC端用Ae软件制作规范: 用一张小于等于544x960的图片创建一个合成, 然后对其做旋转缩放透明处理, 形成动画; 或对其做mask遮罩处理,形成动画; 当前不支持同时做旋转缩放透明+ mask的效果; 合成的分辨率应小于等于544x960, 时长建议不大于3秒, 以实际效果为准;
当前支持各种遮罩转场和基础的移动旋转缩放转场; 转场设置是通过每个具体的图层设置的, 比如有图层ABC3个, 要在AB之前增加转场,则设置A的transition; 要给BC之间加转场,则设置B的transition;
转场的时间可以设置,默认在是设置路径后, 会默认是1秒钟, 最大可设置为5秒钟; 当前仅支持遮罩转场, 即各种形式的透明.
这些API 的关键词是:转场(transition); 设置转场时间:(transitionDuration) , 播放转场(playTransition), 取消(cancelTransition);
执行步骤是: 你需要先设置转场路径, 设置后,默认转场时间是1秒钟, 如需预览,则playtransition; 调用cancelTransition取消转场; 在设置路径后, 你可以设置转场时间; 设置后, 如需要播放则playTransition; 如果你要应用到全局,则需要把一个json文件循环设置到每个图层对象; 我们内部会共用同一个json内容;

图层之–入场动画/出场动画/指定时间点动画

入场动画, 出场动画, 和转场一样, 也是Ae设计师在PC端设计好后, 导出为json,送入到SDK中. SDK解析还原出对应的效果.
PC端用Ae软件制作动画规范: 用一张小于等于544x960的图片创建一个合成, 然后对其做旋转缩放透明处理, 形成动画; 或对其做mask遮罩处理,形成动画; 当前不支持同时做旋转缩放透明+ mask的效果; 合成的分辨率应小于等于544x960, 时长建议不大于3秒, 以实际效果为准;
因入场动画和出场动画从技术上讲,仅仅是插入到图层的时间点不同,SDK可以设置开始从图层的哪个时间点开始, 当前入场动画默认是0, 出场动画默认最后json的时间时长; 你可以调节这个出入场的持续时间, 持续时间调节后, 会把调节后的时长作为整个动画走完的时间, 如果你设置的短,则动画走的快; 如果设置的长,则动画走的慢; 入场动画和出场动画是setXXX的方式, 每次设置后, 会把之前的动画移出;同一时刻只能有一个入场或出场动画;
指定时间点动画, 是你可以指定一个时间点增加动画, 可以实时设置开始时间点,也可以设置动画时长, 可以增加多个, 每个素材最大支持20个动画。在每次设置后, 可预览或移除;
这些API的关键词是: 动画:(Animation) ; 入场动画/出场动画:(setAnimationAtLayerHead/End), 指定时间点动画:(addAnimationAtCompTimeUs)预览动画 playAnimation; 移除removeAnimation;
执行步骤是: 增加json文件, 会得到LSOAnimation对象,用这个对象可以playAnimation来预览; removeAnimation删除; 对象里有设置开始时间点和播放时长的方法;. 等要删除时,用removeAnimation; 当一个图层从容器中释放后, 我们会销毁里面的所有的对象;

图层之–特效

和动画一样的制作步骤, 唯一不同的是: 动画是从开始播放到结束, 如果设置的时长不等于json中的默认时长,动画平均分配不同的动画快慢来达到设置的长度; 而特效的效果时间是固定的, 如果设置的时长json中的默认时长,则会循环播放特效;
特效可设置当前图层的任意时刻点开始,我们举例了从头(head) 和尾(end)的两种方式;
这些API的关键词是: 特效:(Effect), 指定时间点增加特效:(addEffectAtCompTimeUs); 预览特效(playEffect), 移除特效:(removeEffect),
执行步骤, 和动画步骤一致;

图层之–画布(背景)/去水印/透明/镜像

画布是对当前每个图层做的操作, 是无论图层缩放多少, 画布都会铺满整个容器, 画布可以是颜色, 图片, 或画面的虚化做背景;
去水印当前支持马赛克去水印, 我们在图层类中举例了最大4个去水印的API, 可以设置位置,设置大小,设置马赛克像素的大小; 如果你有更多个马赛克的需求,还是用LanSongMosaicRectFilter自行增加;
透明我们描述为:不透明度, 这样更好理解一些, 和调节RGB一样,可以直接设置; 参数1.0是完全不透明, 0.0是完全透明;
镜像:是把整个画面的左边镜像到右边, 把右边镜像到左边; 如果你打算把左边的一半镜像到右边,则用我们的LanSongMirrorFilter滤镜;
这些API的关键词是: 背景(backGround), 去水印(mosaicRect), 不透明度(opacityPercent) , 镜像(mirror).

图层之–获取缩略图

缩略图是每秒钟一帧, 大小是等比例缩放到192x192附近, 比如视频是1080x1920,则会返回的每张缩略图片大小是199x355;
可以多次获取, 每次获取时, displayThumbnail得到的是当前画面可以显示的缩略图, 如果可显示的范围是2.5秒到–4.5秒; 则 显示时长是 显示第三秒, 第四秒, 第5秒的缩略图传递过来.
图片图层的缩略图, 返回是同一张图片对象组成的数组;

声音图层

外界输入的各种音效, 无论是wav格式的音效, 还是mp3,m4a, 或者录音 或者带有声音的视频, 我们统称为声音. 这些声音是同一个API输入到SDK中, 然后得到对应的声音图层.
声音图层, 可以指定时间点增加, 可以设置循环, 设置把声音的那一段裁剪后增加, 设置音量大小, 设置淡入淡出效果
声音音量范围是0—5.0 , 1.0是默认声音. 0.0是关闭声音; 5.0是放大5倍; 声音裁剪最小是300毫秒, 最大是声音的原始长度;
这些API的关键词是: 音频图层:(LSOAudioLayer); 裁剪时长(setCutStartTime/setCutEndTime) 音量:(volume)

蓝松视频编辑SDK使用说明相关推荐

  1. 蓝松视频编辑SDK常见问答

    1. 标准版和旗舰版有什么区别? 旗舰版支持: 画中画/关键帧/MG转场/特效/蒙版 2. SDK会收集用户信息吗? 我们SDK不访问网络, 不会执行功能无关的代码,你调用则执行, 不调用则不执行. ...

  2. 蓝松视频编辑SDK, 视频加载快

    视频编辑在用轻, 在用简单, 越简单, 越好用. 简单我们认为是: 用户选中了一个视频, 点击后直接进入编辑界面, 用户选中某个素材, 直接拖上去, 用户想从哪里开始播放这个素材, 用手拖一下,就可以 ...

  3. 蓝松视频编辑更新至4.5.2,更新内容

    蓝松视频编辑SDK 更新至4.5.2 绿幕直播: 增加美颜, 可瘦脸,大眼,小脸,长鼻等功能. 增加蓝牙键盘的遥控操作, 定义了15个快捷键,并可自定义扩展; 增加挂件(前景图), 前景图最大可增加4 ...

  4. 蓝松视频编辑4.5.0更新介绍

    蓝松视频编辑4.5.0更新介绍 主要更新 1. VLOG 模板;  2.  视频抠像 Android 细节: 1. 增加VLog的模块, vlog支持片尾, 片尾视频动画和文字动画可自定义; 2. 增 ...

  5. 蓝松视频编辑之关键帧动画

    视频编辑有两种形式, 一种是主动形式,一种是被动形式, 被动形式就是你做好很多模板, 用户打开你的APP后, 会列出来让用户选择一个喜欢的样式,然后替换里面的图片和视频,就可以形成用户自己的视频.这种 ...

  6. android sdk build-tools_从零开始仿写一个抖音App——视频编辑SDK开发(一)

    本文首发于微信公众号--世界上有意思的事,搬运转载请注明出处,否则将追究版权责任.交流qq群:859640274. 大家好久不见,又有一个多月没有发文章了.不知道还有哪些读者记得我的 从零开始仿写抖音 ...

  7. android 直播sdk 抖音,从零开始仿写一个抖音App——跨平台视频编辑SDK项目搭建

    不知不觉已经到了2019年,本系列的文章也更新到了8篇.很庆幸笔者能坚持下来,从我司的代码中学习到了很多东西.当然更庆幸的是收获了众多读者的鼓励和支持.从本篇文章开始,我们将接触短视频 app 中比较 ...

  8. iOS视频编辑SDK

    iOS视频编辑SDK   集视频拍摄和视频剪辑功能于一体,同时包含视频配音配乐.字幕特效.滤镜.转场等各种功能,全方位满足开发者的需求,并可以快速植入到APP中.编辑预览时支持智能硬件解码,选择视频时 ...

  9. Android视频编辑SDK免费版,Android视频编辑SDK

    android视频编辑sdk是一款视频编辑软件,用户可以看到视频配音配乐.添加字幕.添加滤镜.视频转场等各种功能,并可以快速的植入到软件中进行编辑,编辑的过程中支持用户进行智能的硬件解码,选择视频时不 ...

最新文章

  1. gitlab使用_如何在正确使用 Docker 搭建 GitLab
  2. Winform开发框架的业务对象统一调用方式
  3. 我的泰坦尼克数据分析
  4. linux与windows互传文件、用户与用户组管理、密码配置文件
  5. 【Qt】2D绘图之双缓冲绘图
  6. Angular self study 3 - data binding
  7. 笔记本上的小键盘计算机怎样用,笔记本数字小键盘不能用怎么办【解决方法】...
  8. 【短文本相似度】传统方法BM25解决短文本相似度问题
  9. bzoj1951 [Sdoi2010]古代猪文 lucas+CRT+exgcd
  10. ue java_Ue java 配置
  11. dplyr | 数据导入和预处理的常用函数
  12. qwt的安装和移植-
  13. 大数据ETL开发之图解Kettle工具(入门到精通)
  14. C语言知识点总体梳理(知识点)
  15. 新浪再传将被转手 盛大卖股TOM集团接盘?
  16. 神器:PDF批量替换文字
  17. 自然语言16_Chunking with NLTK
  18. android原生代码转h5,Android原生和H5交互;Android和H5混合开发;WebView点击H5界面跳转到Android原生界面。...
  19. 大声说出我爱你——寒假英语学习总结
  20. 游记-NOI2019(hzy的退役日志)

热门文章

  1. Day19(JavaSE基础结束)
  2. 区间划定最小值题解--单调队列
  3. 移动用户和运营商的签约速率
  4. 加州大学计算机硕士录取率是多少,加州大学发布2021录取数据,录取率全面下降,UCLA要跌破10%了!...
  5. centso7.2上mysql安装
  6. Vue新一代状态管理工具—Pinia—都2023年了,快学起来吧!
  7. 智慧医院的内容记录--基于银江股份的架构
  8. ClickHouse的入门、使用和优化
  9. Deepin15.11系统深度驱动助手并未检测出独显问题
  10. 关于使用JavaPOI 导出Excel多级联动的一些方法