ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

通过ve模板实现一键在线视频制作

2022-01-14 21:33:11  阅读:199  来源: 互联网

标签:动画 1.0 ve 在线视频 一键 素材 ui 100 模板


通过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实现视频制作。

  • 模板解析
    主要解析config.json文件获取上述模型中所需要的信息(模板类型,sdk版本,ae版本,fps,size,duration 等都可以直接获取使用,可替换文字数量和可替换图片数量需要遍历assets获取。解析可编辑的 asset (有 ui 字段),把默认替换素材(name 字段), 前景图(f字段),后景图(b字段),config.json 后上传至云端供前端模板编辑是获取素材使用;
  • 模板编辑
    前端在初始化完成编辑界面后, 可以对可编辑素材进行编辑, 比如旋转, 缩放,位移, 更改文字内容. 之后把数据组装成 replaceJson replaceJson详解 后, 再调用后端 api 组成渲染任务数据, 调用渲染api 开启视频渲染即可.

本篇文章旨在为大家为大家实现一键视频制作提供思路。想要详细了解VE视频引擎可以去网站咨询,获取详细服务。

标签:动画,1.0,ve,在线视频,一键,素材,ui,100,模板
来源: https://www.cnblogs.com/zoule/p/15805065.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有