欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

短视频处理LanSoEditor-SDK之功能介绍

程序员文章站 2022-06-03 09:37:41
...

和别家最大的不同在于: 别人提供功能,我们提供架构。

短视频处理LanSoEditor-SDK之功能介绍


(注释: 我们的SDK每3周更新一次, 一下功能是在2。8。2版本上列出的,可能不是最新的功能, 请知悉)

1,功能介绍---容器
1.1录制容器类

l  任意分辨率录制, 码率设置,

l  分段录制,支持回删, 支持任意分段组合。0.5---2.0倍的快慢速度调节

l  暂停,恢复,回删

l  支持叠加视频,文字,图片,动画,UI等其他10种类型的图层,支持图层之间的前后切换,支持一种图层多次叠加

l  支持麦克风输入,并支持音量调节,支持同步偏移时间设置

l  支持输入MP3,

l  支持最高40个子画面显示;每个子画面均继承Layer父类图层, 支持父类Layer图层的所有功能。

l  支持美颜, 支持80多种滤镜

l  支持截屏, 支持实时获取画面流,支持相机裸数据读取。

l  支持预览回调, 录制进度回调, 执行错误回调,截图回调, 实时获取流回调, 完成回调等

l  以上每个参数, 详见SDK的DrawPadCameraView.java类。

l  一下是相机相关,在CameraLayer.class中

l  支持聚焦, 远近可调,支持曝光值调节, 支持直接获取Camera对象。支持相机本身的人脸检测,运动检测;

l  支持上下左右镜像,

l  CameraLayer继承自父类Layer, 支持父类Layer的所有方法。

l  支持黑底效果视频融合叠加。

1.2视频预览容器 (DrawPadView) 

l  支持任意宽度和高度

l  支持视频刷新和 自动刷新模式,     

l  支持视频图层/图片图层/UI图层/Canvas图层/GIF图层/数据图层/YUV图层/纹理图层/双视频图层/MV图层等11种类型的图层叠加进来;

l  可同时增加多个同一种类的多个图层对象;

l  支持两个图层切换, 指定图层位置, 移动图层到最底层, 移动图层到最上层等。

l  支持暂停/恢复/分段录制,支持任何录制分辨率, 码率的设置。  

l  容器支持设置预览进度监听,

l  支持预览进度监听, 执行错误回调, 截图回调,实时获取流回调, 完成回调等

1.3后台视频处理容器:

l  DrawPadVideoExecute 是对单个视频进行后台加速处理的类。

l  支持任意容器宽度和高度

l   支持输出视频的码率任意设置。    

l  支持叠加 其他 视频图层/图片图层/ Gif图层/YUV图层/Data图层/Canvas图层/MV图层等11种图层

l  可同时增加多个同一种类的多个图层对象;

l  支持两个图层切换, 指定图层位置, 移动图层到最底层, 移动图层到最上层等图层间的调节;

l  支持调节主视频图层的一切参数;

l  支持对主视频的时间拉伸(调速), 时间静止(暂停), 时间重复(重复)。

l  内部包含一个音频容器, 支持增加多个其他音频文件,支持音量调节,AudioSource的所有方法;

l  支持设置单个滤镜, 同时设置多个滤镜;

1.4后台声音容器: AudioPadExecute

l  支持44100 /48000采样率的音频结果输出,支持预设音频时长;

l  支持mp3, mp4, m4a, wav格式含有音频的文件输入。

l  每个音频输入, 会返回一个AudioSource对象, AudioSource对象可设置使能/循环/调速/重复/音量/暂停等功能;

l  支持进度回调, 支持完成回调;      

1.5其他容器

图片处理容器BitmapPadExecute,

图片合成视频容器DrawpadBitmapExecute

混合图层容器 DrawPadAllExecute;

这些容器使用与其他图层类似,或极少使用,暂时不做详细介绍,在demo中均例子,如您有使用中的疑问,可随时联系我们。

2. 功能介绍---图层:

        2.1父类图层(Layer)

说明:(每个具体图层, 每个子图层的父类, 所有xxxLayer均继承于它)

l  隐藏/显示、移动、缩放、旋转、镜像、滤镜、美颜,圆形可视范围设置、四方形可视范围设置、RGBA颜色调节;

l  透明度调节;

l  支持克隆多个子图层;

l  以上功能均可随着容器时间戳的变化, 而不断的移动,从而实现画面的一些动画效果。我们针对常用的飞入,飞出,放大缩小,旋转进入,淡入淡出动画提供了Animation类,

l  您可直接创建相关的对象来直接调用。             

        2.2视频图层(VideoLayer):

                说明:对视频画面处理的类,放到容器中是一个图层, VideoLayer中所有的方法处理,都是针对这个图层的处理。

l  支持父类图层Layer的所有功能,

l  支持子图层, 举例的有,背景虚化,灵魂出窍;

l  工作在前台时: 采样外部播放器驱动的, VideoLayer只是拉出一个纹理, 您可把这个纹理设置到MediaPlayer或VideoPlayer/或第三方播放器中,来播放视频。理论上说, 支持所有可格式的视频, 只要能播放即可。我们关心的是画面, 不是视频来源。

l  工作在后台时:支持手机可以编解码的格式,默认是MP4或MOV,后台是加速处理视频画面,解码,然后编码的过程;

l  支持时间拉伸;(视频画面加减速,速度范围:0.5---2.0)

l  支持时间重复;(重复播放一段画面)

l  支持时间静止;(画面静止几秒钟)

        2.3图片图层(BitmapLayer):

l  支持父类图层Layer的所有功能,

l   支持在任意时刻切换图片,切换图片后, 默认切换的Bitmap对象在切换到纹理中后直接recycle();你可以设置不回收(有重载方法)。

l  支持增删子图层;

l  缩放策略是:
当图片宽高 小于 容器宽高时, 完整放入到容器里, 不做任意的缩放,本来尺寸多少就显示多少;
当图片宽高 大于 容器宽高时,则如果宽度大于高度,则宽度等于容器的宽度,缩放高度; 反之高度大于宽度,则高度等于容器高度,缩放宽度;

        2.4,绘制图层(CanvasLayer):

l  调用addCanvasLayer(), 返回一个Android的Canvas类,支持Android的Canvas中所有绘制方法, 包括绘制文字,图片,圆,四方形等各种形状

l  绘制后的画面, 会实时叠加到其他图层中,从而实现在视频、图片中显示文字,颜色块,图案,动画等。

l  Canvas的图层大小是当前容器大小;

l  支持父类图层Layer的所有功

2.5 UI图层(ViewLayer):

l  把一个UI界面显示到容器中, 支持Layer的所有功能;

l  界面上支持Android除异步工作的GL控件外的所有控件, 比如常用的Button, TextView,ImageView,LinearLayout,CheckButton等,

l  不支持GLSurface, SurfaceView,TextureView;因Android的View无法工作在异步模式, 故只能工作在前台;

2.6,MV图层(MVLayer):

l  支持父类Layer的所有功能

l   支持异步加载模式,

l  支持进度监听,

l   支持循环模式,

l  支持强制显示下一帧;

   2.7,YUV图层(YUVLayer):

l  支持父类Layer的所有功能,

l  支持NV21输入;

l  支持数据的90度, 270度旋转,

l  支持左右镜像, 上下镜像;

      2.8,自定义数据图层(DataLayer):

l  支持父类Layer的所有功能。

l  支持裸数据输入,

l   支持bitmap图片输入。

       2.9,纹理图层(TextureLayer):

l  支持外界纹理输入

2.10,(摄像头图层)CameraLayer:

l  摄像头图层,在DrawPadCameraView容器中已有介绍;

2.11,双视频图层(TwoVideoLayer)

l  支持先对视频做各种滤镜, 然后和第二个视频叠加, 并去除第二个视频中的黑色背景;


2.12,GIF图层(GifLayer):

l  支持父类Layer的所有功能。

l   默认循环显示

3,美颜类处理:

          当前美颜是对整体画面进行处理,没有做人脸识别,人脸检测,瘦脸,大眼等人工智能类处理。     

            3.1, 我们提供了增强型磨皮滤镜:LanSongBeautyAdvanceFilter; 轻微磨皮滤镜:LanSongBeautyFilter; 白皙磨皮滤镜:LanSongBeautyWhiteFilter;

                 这些滤镜都支持级联,您可以在磨皮的基础上,增加其他滤镜;

            3.2, 我们举例了BeautyManager, 实现自然的磨皮和美白,美白有从红润到冷白的调节。

            3.3, 我们评估过第三方的人脸识别SDK,比如Face++等, 通过我们的DrawPadCameraView把数据拉出来, 输入到第三方SDK中, 识别后,得到特征关键点,从而实现特定的美颜效果(在合作后,由我们有偿帮您集成, 也可我们提供技术支持,你们自行集成)