UWP 手绘视频创作工具技术分享系列 - 手绘视频与视频的结合
本篇作为技术分享系列的第三篇,详细讲一下手绘视频中结合视频的处理方式。
随着近几年短视频和直播行业的兴起,视频成为了人们表达情绪和交流的一种重要方式,人们对于视频的创作、编辑和分享有了更多的需求。而视频的编辑、剪辑方式,也由过去需要借助专业的视频剪辑软件,专业的视频剪辑操作者操作,变为现在的普通用户可以使用视频类 App 很方便的创作出视频。
短视频和直播类 App 对于视频的处理,主要集中在:滤镜、美颜、贴纸、视频剪切和拼接、视频变速、音轨合成,这些实现基本都是基于 OpenCV、OpenGL 和 FFMpeg 的实现,这里我们不多做介绍,本篇主要介绍的是手绘视频中插入视频文件的处理和视频中加入手绘视频元素的处理。
这两种形式的应用场景很多,例如手绘视频中有一个电视机框,视频在框内播放;再比如视频为天气预报,周围加上手绘视频的人物元素,形成人物解说的形式;再比如最常见的在视频中加入一些手绘视频元素,做成动态特效或字幕/表情等,下面是几个例子:
上面例子的结合方式分别是:
1) 黑板部分为插入的视频,周围是手绘人物和手势,字幕等;
2) 电视机框内是插入的视频,周围手绘视频元素营造一个观看电视的场景;
3) 电视框内是插入的视频,手绘视频元素营造播报新闻的场景;
4) 这个是我临时做的,在视频中插入手绘视频元素,主体还是视频,做出一些特效等。
下面先介绍手绘视频中插入视频文件的处理:
以上面前三张图为例,这种结合方式中插入的视频,都是把视频以固定大小放在了固定的位置,在设定的开始时间开始出现,播放完成后消失。而声音处理方面,在视频出现后,手绘视频的背景音乐需要和视频的声音做音轨合成。结合前面几篇说的 SVG 的绘制和文字的绘制,整体流程:
接下来是视频中插入手绘视频元素的处理:
这种情况以第四张图为例,这种方式,我们认为视频会维持原本的尺寸和帧率,而手绘视频元素,在指定时间,以指定的速度角度和指定的起始终止位置出现,动画播放完成后,或维持在原位置,或消失。整体流程:
上面两种方式的整体流程中,大部分流程是共通的,或者说第二种情况是第一种情况的一个特例,它指定的视频宽高就是视频的宽高,视频之外不存在手绘元素。而且视频固定出现在层级的最底层。
流程中大部分操作都是比较常规的音视频操作,如解析视频文件、合成音轨、视频帧序列生成视频文件等。其中关键的一个步骤是视频每一帧的获取,因为涉及到各种元素的动画,所以这个获取过程的原理是:在后台运行一张画布,把每个需要渲染的元素动画,按照实际动画属性去渲染,包括位置、速度、角度、层级覆盖关系等,然后按照导出视频指定的帧率去截取画布生成视频帧。
到这就把手绘视频与视频的结合介绍完了,实现过程相对简单,但是应用场景很广泛,如果有更有趣的场景,欢迎交流!
UWP 手绘视频创作工具技术分享系列 - 手绘视频与视频的结合的更多相关文章
- UWP 手绘视频创作工具技术分享系列 - 手绘视频导出
手绘视频最终的生成物是视频文件,前面几篇主要讲的是手绘视频的创作部分,今天讲一下手绘视频的导出问题.主要以 UWP 为例,另外会介绍一些 Web 端遇到的问题和解决方法. 如上所述,手绘视频在创作后, ...
- UWP 手绘视频创作工具技术分享系列
开篇先来说一下写这篇文章的初衷. 初到来画,通读了来画 UWP App 的代码,发现里面确实有很多比较高深的技术点,同时也是有很多问题的,扩展性,耦合,性能,功能等等.于是我们决定从头重构这个产品,做 ...
- UWP 手绘视频创作工具技术分享系列 - 全新的 UWP 来画视频
从2017年11月开始,我们开始规划和开发全新的来画Pro,在12月23日的短视频峰会上推出了预览版供参会者体验,得到了很高的评价和关注度.吸取反馈建议后,终于在2018年1月11日正式推出了全新版本 ...
- UWP 手绘视频创作工具技术分享系列 - 有 AI 的手绘视频
AI(Artificial Intelligence)正在不断的改变着各个行业的形态和人们的生活方式,图像识别.语音识别.自然语言理解等 AI 技术正在自动驾驶.智能机器人.人脸识别.智能助理等领域中 ...
- UWP 手绘视频创作工具技术分享系列 - Ink & Surface Dial
本篇作为技术分享系列的第四篇,详细讲一下手绘视频中 Surface Pen 和 Surface Dial 的使用场景. 先放一张微软官方商城的图,Surface 的使用中结合了 Surface Pen ...
- UWP 手绘视频创作工具技术分享系列 - SVG 的解析和绘制
本篇作为技术分享系列的第一篇,详细讲一下 SVG 的解析和绘制,这部分功能的研究和最终实现由团队的 @黄超超 同学负责,感谢提供技术文档和支持. 首先我们来看一下 SVG 的文件结构和组成 SVG ( ...
- UWP 手绘视频创作工具技术分享系列 - 文字的解析和绘制
本篇作为技术分享系列的第二篇,详细讲一下文字的解析和绘制,这部分功能的研究和最终实现由团队共同完成,目前还在寻找更理想的实现方式. 首先看一下文字绘制在手绘视频中的应用场景 文字是手绘视频中很重要的表 ...
- UWP 手绘视频创作工具技术分享系列 - 位图的绘制
前面我们针对 SVG 的解析和绘制做了介绍,SVG 是图片的一种形式,而另一种很重要的图片是:位图,包括 png.jpeg.bmp 等格式.位图的基本规则是,组成的基本元素是像素点,由宽度 * 高度个 ...
- 腾讯技术分享:微信小程序音视频技术背后的故事
1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...
随机推荐
- 前端测试框架Jest系列教程 -- Mock Functions
写在前面: 在写单元测试的时候有一个最重要的步骤就是Mock,我们通常会根据接口来Mock接口的实现,比如你要测试某个class中的某个方法,而这个方法又依赖了外部的一些接口的实现,从单元测试的角度来 ...
- mysql基础知识点
/* 启动MySQL */net start mysql /* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */mysqld ...
- Java数据结构和算法(七)——链表
前面博客我们在讲解数组中,知道数组作为数据存储结构有一定的缺陷.在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除效率都很低,并且数组在创建后,其大小是固定了,设置的过大会造 ...
- 大数据学习系列之五 ----- Hive整合HBase图文详解
引言 在上一篇 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机) 和之前的大数据学习系列之二 ----- HBase环境搭建(单机) 中成功搭建了Hive和HBase的环 ...
- Java解决Hanoi问题
package fa.ct; import java.util.Scanner; public class Hanoi { public static void hanoi(int num,char ...
- iscroll4 input textarea不能获得焦点问题
最近在做移动端项目的时候,使用iscroll4实现页面滚动效果,之后发现页面中的input,textarea等不能得到焦点,输入内容. 问题原因是: 使用iscroll之后,输入框无法聚焦,页面文字等 ...
- Android之本地相冊图片选取和拍照以及图片剪辑
转载请注明出处:http://blog.csdn.net/loveyaozu/article/details/51160482 相信有非常多Android开发者在日常开发中,因为项目需求,须要我们的A ...
- HBase源代码分析之HRegion上MemStore的flsuh流程(一)
了解HBase架构的用户应该知道,HBase是一种基于LSM模型的分布式数据库.LSM的全称是Log-Structured Merge-Trees.即日志-结构化合并-树. 相比于Oracle普通索引 ...
- Oracle ROWID具体解释
1.ROWID定义 ROWID:数据库中行的全局唯一地址 对于数据中的每一行,rowid伪列返回行的地址.rowid值主要包括下面信息: 对象的数据对象编号 该行所在的数据文件里的数据块 该行中数据块 ...
- OR1200中指令Cache的结构
下面内容摘自<步步惊芯--软核处理器内部设计分析>一书 12.3 ICache结构 OR1200中实现ICache的文件有or1200_ic_top.v.or1200_ic_fsm.v.o ...