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

通过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": 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我会尽力回答你的问题。 首先,我们需要了解八段八位共阳数码管的显示原理。它由8个发光二极管和一个共阳极组成。在共阳极接通的情况下,当对应的发光二极管接通时,该二极管就会发光。因此,我们可以通过控制发光二极管和共阳极的电平来实现数码管上显示不同的数字、字母和符号。 接下来,我们需要了解如何使用STM32F401VE芯片来控制数码管的显示。我们可以通过STM32F401VE芯片上的GPIO口来控制数码管的显示。具体步骤如下: 1. 定义一个数组,用于存储要显示的数字。 ``` uint8_t num[8] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07}; ``` 上面的数组中,每个元素分别代表0~7的数字在数码管上的显示方式,其中0x3f表示0在数码管上的显示方式,0x06表示1在数码管上的显示方式,以此类推。 2. 设置GPIO口的工作模式。 我们需要将8个GPIO口设置为输出模式,用于控制数码管的8个发光二极管。具体代码如下: ``` GPIO_InitTypeDef GPIO_InitStructure; // 使能GPIO时钟 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); // 配置GPIO口 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStructure); ``` 上面的代码中,我们将PA0~PA7这8个GPIO口设置为输出模式。 3. 实现动态显示。 我们可以通过使用定时器中断来实现数码管的动态显示。具体步骤如下: - 定义一个定时器中断函数,并在其中实现数码管的动态显示。具体代码如下: ``` void TIM2_IRQHandler(void) { static uint8_t i = 0; // 关闭上一个数码管 GPIO_SetBits(GPIOA, 1 << i); // 显示下一个数码管 GPIO_ResetBits(GPIOA, 1 << ((i + 1) % 8)); // 显示当前数码 GPIO_Write(GPIOA, num[i]); // 更新计数器 i = (i + 1) % 8; // 清除中断标志位 TIM_ClearITPendingBit(TIM2, TIM_IT_Update); } ``` 上面的代码中,我们使用了一个静态变量i来记录当前显示的是哪个数码管。每次中断时,我们先关闭当前显示的数码管,然后显示下一个数码管,并显示当前数码。最后更新计数器i的值,以便下一次中断时显示下一个数码管。 - 配置定时器中断。具体代码如下: ``` TIM_TimeBaseInitTypeDef TIM_InitStructure; // 使能定时器2时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); // 配置定时器2 TIM_InitStructure.TIM_Period = 999; TIM_InitStructure.TIM_Prescaler = 8399; TIM_InitStructure.TIM_ClockDivision = 0; TIM_InitStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_InitStructure); // 配置定时器2中断 TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); // 启动定时器2 TIM_Cmd(TIM2, ENABLE); ``` 上面的代码中,我们使用定时器2来实现中断,每1ms中断一次。我们将定时器的周期设置为999,预分频系数设置为8399。这样,定时器2的计数频率就是100Hz,即每秒钟计数100次。 至此,我们就完成了使用STM32F401VE芯片实现八段八位共阳数码管动态显示的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值