通过ve模板实现一键在线视频制作。具体工具从以下网站获取:http://vesdk.com/ https://www.mbjia.com/ 。ve视频引擎领有弱小的ae导出工具个渲染sdk, 咱们能够从ae工具中导出根底模板,通过渲染sdk进行视频制作。https://www.mbjia.com/ 就是通过这种模式实现一键视频制作。
ve视频模板
模板文件夹构造assets:寄存所有参加模板渲染资源文件datas:寄存所有动画数据文件ui:寄存ui界面设计所需配饰图文件config.json:模板配置文件music.mp3:音频文件
规范模板config文件介绍{ "settings": { "attr": 0 //属性设置 1:关上OIT渲染 }, "fps": 30, //模板的主帧速率 "main": "comp0", //渲染应用的主合成的name属性,SDK反对预合成,所以导出的合层不止一个,这里定义的是主合成的name。 "description": "合成 1", //模板的形容,对应AE中主合成的名称 "version": "1.3.0.beta", //SDK内核版本号,与渲染成果非亲非故 "ui_version": "2.0", //编辑界面版本号目前分为1.0与2.0 2.0界面更加欠缺更加易懂 "type": 1, //模版属性,按位设置,1: 一般模版, 2:动静模版,4:滤镜, 512:字符动画 // 请留神这是一个按位设置的值,如果一般模板中含有字符动画 // type 的二进制值为 1001, 也就是 1 + 512 = 513 // 所以判断模板类型不要通过 == 去判断, 而是通过按位与去判断, // 比方判断是不是规范模板 type & 1 != 0, 而不是 type == 1 "snap": [], //整型数组,要截图的帧索引号,目前尚无实现 "comps": [{ //保留所有合成对象 "name": "comp0", //合成名称 "duration": 150, //总帧数 "fps": 30, //帧率 "size": [720, 1280], //合成大小,局部机型不反对超过4096 "bg": "#ffffffff", //背景色彩 "layers": [{ //合成中的所有层对象 "uuid": "layer_2", //层的惟一ID "ui_key": "", //设计师界面中的由设计师设置的标记 "ui_extra": "", //设计师界面中的由设计师设置的额定信息 "source": "assetkey0", //层所对应的资源ID "type": 32769, //层的属性 如3D属性,层类型等 "blend": 0, //混合模式 "matte": 0, //trakmat类型 "resample": 0, // "enabled": true, //是否可见 "range": [0, 0, 149,30], //对应层的终点帧Start Time,可见的终点帧In Point,可见的继续帧数(Out Point - In Point)下文有详解, 第四个数据已废除 "mask": [], //蒙版数据 "effects": [], //特效数据 "transform": { //变换信息,3d层为三维数组 "p": [360.0, 640.0], //地位,[x 轴坐标, y 轴坐标] "a": [540.0, 960.0], //锚点,[x 轴坐标, y 轴坐标] "s": [1.0, 1.0], //缩放,[x 轴缩放, y 轴缩放] "t": 1.0, //透明度, 0 - 1.0 "r": 0.0 //旋转角度 } }] }], "assets": [{ //保留所有素材对象数组 "key": "assetkey0", //素材的惟一ID "ui_key": "", //设计师在导出工具中为素材设置的标识key "ui_extra": "", //设计师在导出工具中为素材设置的附加数据 "fps": 30, //在AE中解释素材选项中如果指定帧速率,则存在此key,否则为0或不存在 "name": "asset1.mp4", //素材的名称,依据素材类型type的不同,name字段的作用也不同 "type": 1, //素材的类型 0:未知的素材类型 1:图片或视频或图片序列帧素材 2:OpenGL纹理素材 3:预合成素材 4:固态色彩素材 5:自定义素材 "num": 0, //如果该素材为图片序列帧素材,那么这个num代表序列帧文件的数量,其余状况下num字段为0 "text_anim":"data.json", //文字动画数据,仅开启高级字符动画时存在 "size": [1080, 1920], //素材大小,ui 2.0 文字素材不再应用这个尺寸(参考 editSize) "ui":{//变换信息仅反对2D 图片与文字只同时存在一种 "f":"a.png", //前景图(配饰图) "b":"b.png", //背景图 //图片素材信息 "group": 10, //组索引 "index": 0, //组内索引 "duration": 278, //继续帧数(以主合成帧率为基准的最大帧数) "accept": 0, //承受素材类型 "type": 1, //可编辑类型 1:图片 2:文字 3: 高级字符动画文字 "editSize": [100, 100], // 编辑区域,图片素材大小 "p": [100.5, 38.0], "a": [100.5, 38.0], "s": [1.0, 1.0], "t": 1.0, "r": 0.0, "area": [0, 0, 100, 100] // 设计师指定的点击选中区域, 别离是 x轴坐标, y轴坐标, width, height //文字素材信息 "group": 9, //组索引 "index": 0, //组内索引 "duration": 348, //继续帧数(以主合成帧率为基准的最大帧数) "type": 2, //可编辑类型 1:图片 2:文字 3: 高级字符动画文字 "default": "编辑文字", //默认文字 "max": 4, //最大字数 "font": "SimHei", //字体残缺名称 "font_style": "Regular", //字体款式(例如粗体、细体或斜体等) "font_family": "STSong",//字体系列名称 "font_file": "Songti.ttc",//字体文件名称(不保障为所有字体类型返回字符串;对于某些类型的字体,返回值可能是空字符串) "size": 92, //字体大小 "line_height": 110, //行高 "fill": "#ffffff", //填充色彩 "stroke": "#000000", //描边色彩 "width": 0, //描边宽度 "strokeOverFill": true, //描边是画在填充之上 "align": 0, //排版形式 0:左对齐 1:右对齐 2:居中对齐 "direction": 0,//文字方向 0:横向文字 1:纵向文字 //-------------------------------------------------------------------------------- //type=3类型文字可调用SDK绘制图片,须要用到以下信息 "box_text":true, //是否是文本框类型文字(仅高级字符动画反对) "adapt":true, //是否开启自适应(仅高级字符动画反对) "bound":[-50,-50,100,100], //文本框[x,y,width,height](仅高级字符动画反对) //-------------------------------------------------------------------------------- "faux_bold":true, //是否应用仿粗体 (高级字符动画暂未反对) "faux_italic":true, //是否应用仿斜体 (高级字符动画暂未反对) "shadow": "#000000", //投影 (弃用,图层款式投影已反对) "s_alpha": 0.0,//(弃用,图层款式投影已反对) "s_angle": 0,//(弃用,图层款式投影已反对) "s_dist": 0,//(弃用,图层款式投影已反对) "s_size": 0,//(弃用,图层款式投影已反对) "editSize": [100, 100], // 编辑区域,文字图片素材大小 "p": [0.0, 0.0], "a": [0.0, 0.0], "s": [1.0, 1.0], "t": 1.0, "r": 0.0, "area": [0, 0, 100, 100] // 设计师指定的点击选中区域, 别离是 x轴坐标, y轴坐标, width, height } }], "ui_group": [ // 对应 assets->ui->group { "size": [ 720, 1080 ] }, { "size": [ 720, 1080 ] } ]}confi配置文件中蕴含模板所有素材信息和参数,咱们能够通过这些参数编辑组装咱们须要制作的是的对应json,而后通过渲染sdk实现视频制作。
...