本篇作为技术分享系列的第三篇,详细讲一下手绘视频中结合视频的处理方式。

随着近几年短视频和直播行业的兴起,视频成为了人们表达情绪和交流的一种重要方式,人们对于视频的创作、编辑和分享有了更多的需求。而视频的编辑、剪辑方式,也由过去需要借助专业的视频剪辑软件,专业的视频剪辑操作者操作,变为现在的普通用户可以使用视频类 App 很方便的创作出视频。

短视频和直播类 App 对于视频的处理,主要集中在:滤镜、美颜、贴纸、视频剪切和拼接、视频变速、音轨合成,这些实现基本都是基于 OpenCV、OpenGL 和 FFMpeg 的实现,这里我们不多做介绍,本篇主要介绍的是手绘视频中插入视频文件的处理和视频中加入手绘视频元素的处理。

这两种形式的应用场景很多,例如手绘视频中有一个电视机框,视频在框内播放;再比如视频为天气预报,周围加上手绘视频的人物元素,形成人物解说的形式;再比如最常见的在视频中加入一些手绘视频元素,做成动态特效或字幕/表情等,下面是几个例子:

  

  

上面例子的结合方式分别是:

1) 黑板部分为插入的视频,周围是手绘人物和手势,字幕等;

2) 电视机框内是插入的视频,周围手绘视频元素营造一个观看电视的场景;

3) 电视框内是插入的视频,手绘视频元素营造播报新闻的场景;

4) 这个是我临时做的,在视频中插入手绘视频元素,主体还是视频,做出一些特效等。

下面先介绍手绘视频中插入视频文件的处理:

以上面前三张图为例,这种结合方式中插入的视频,都是把视频以固定大小放在了固定的位置,在设定的开始时间开始出现,播放完成后消失。而声音处理方面,在视频出现后,手绘视频的背景音乐需要和视频的声音做音轨合成。结合前面几篇说的 SVG 的绘制和文字的绘制,整体流程:

接下来是视频中插入手绘视频元素的处理:

这种情况以第四张图为例,这种方式,我们认为视频会维持原本的尺寸和帧率,而手绘视频元素,在指定时间,以指定的速度角度和指定的起始终止位置出现,动画播放完成后,或维持在原位置,或消失。整体流程:

上面两种方式的整体流程中,大部分流程是共通的,或者说第二种情况是第一种情况的一个特例,它指定的视频宽高就是视频的宽高,视频之外不存在手绘元素。而且视频固定出现在层级的最底层。

流程中大部分操作都是比较常规的音视频操作,如解析视频文件、合成音轨、视频帧序列生成视频文件等。其中关键的一个步骤是视频每一帧的获取,因为涉及到各种元素的动画,所以这个获取过程的原理是:在后台运行一张画布,把每个需要渲染的元素动画,按照实际动画属性去渲染,包括位置、速度、角度、层级覆盖关系等,然后按照导出视频指定的帧率去截取画布生成视频帧。

到这就把手绘视频与视频的结合介绍完了,实现过程相对简单,但是应用场景很广泛,如果有更有趣的场景,欢迎交流!

UWP 手绘视频创作工具技术分享系列 - 手绘视频与视频的结合的更多相关文章

  1. UWP 手绘视频创作工具技术分享系列 - 手绘视频导出

    手绘视频最终的生成物是视频文件,前面几篇主要讲的是手绘视频的创作部分,今天讲一下手绘视频的导出问题.主要以 UWP 为例,另外会介绍一些 Web 端遇到的问题和解决方法. 如上所述,手绘视频在创作后, ...

  2. UWP 手绘视频创作工具技术分享系列

    开篇先来说一下写这篇文章的初衷. 初到来画,通读了来画 UWP App 的代码,发现里面确实有很多比较高深的技术点,同时也是有很多问题的,扩展性,耦合,性能,功能等等.于是我们决定从头重构这个产品,做 ...

  3. UWP 手绘视频创作工具技术分享系列 - 全新的 UWP 来画视频

    从2017年11月开始,我们开始规划和开发全新的来画Pro,在12月23日的短视频峰会上推出了预览版供参会者体验,得到了很高的评价和关注度.吸取反馈建议后,终于在2018年1月11日正式推出了全新版本 ...

  4. UWP 手绘视频创作工具技术分享系列 - 有 AI 的手绘视频

    AI(Artificial Intelligence)正在不断的改变着各个行业的形态和人们的生活方式,图像识别.语音识别.自然语言理解等 AI 技术正在自动驾驶.智能机器人.人脸识别.智能助理等领域中 ...

  5. UWP 手绘视频创作工具技术分享系列 - Ink & Surface Dial

    本篇作为技术分享系列的第四篇,详细讲一下手绘视频中 Surface Pen 和 Surface Dial 的使用场景. 先放一张微软官方商城的图,Surface 的使用中结合了 Surface Pen ...

  6. UWP 手绘视频创作工具技术分享系列 - SVG 的解析和绘制

    本篇作为技术分享系列的第一篇,详细讲一下 SVG 的解析和绘制,这部分功能的研究和最终实现由团队的 @黄超超 同学负责,感谢提供技术文档和支持. 首先我们来看一下 SVG 的文件结构和组成 SVG ( ...

  7. UWP 手绘视频创作工具技术分享系列 - 文字的解析和绘制

    本篇作为技术分享系列的第二篇,详细讲一下文字的解析和绘制,这部分功能的研究和最终实现由团队共同完成,目前还在寻找更理想的实现方式. 首先看一下文字绘制在手绘视频中的应用场景 文字是手绘视频中很重要的表 ...

  8. UWP 手绘视频创作工具技术分享系列 - 位图的绘制

    前面我们针对 SVG 的解析和绘制做了介绍,SVG 是图片的一种形式,而另一种很重要的图片是:位图,包括 png.jpeg.bmp 等格式.位图的基本规则是,组成的基本元素是像素点,由宽度 * 高度个 ...

  9. 腾讯技术分享:微信小程序音视频技术背后的故事

    1.引言 微信小程序自2017年1月9日正式对外公布以来,越来越受到关注和重视,小程序上的各种技术体验也越来越丰富.而音视频作为高速移动网络时代下增长最快的应用形式之一,在微信小程序中也当然不能错过. ...

随机推荐

  1. Java中的比较总结

    Java中的比较问题是一个很基础又很容易混淆的问题.今天就几个容易出错的点作一个比较详细的归纳与整理,希望对大家的学习与面试有帮助. 一.==与equals()的区别 首先,我们需要知道==与equa ...

  2. Scala入门系列(十):函数式编程之集合操作

    1. Scala的集合体系结构 Scala中的集合体系主要包括(结构跟Java相似): Iterable(所有集合trait的根trait) Seq(Range.ArrayBuffer.List等) ...

  3. .Net Core实现将文件上传到七牛云存储

    功能:将图片上传到七牛云存储 准备工作 注册七牛账号,提交实名认证(基本上1天内内审核通过) 登录七牛后台->对象存储->新建空间 (基本概念:https://developer.qini ...

  4. 【jQuery】复选框的全选、反选,推断哪些复选框被选中

    本文与<[JavaScript]复选框的全选.反选.推断哪些复选框被选中>(点击打开链接)为姊妹篇,把里面内容再与jQuery框架中实现一次,相同做到例如以下的效果: 布局还是相同的布局, ...

  5. html5 canvas 画板

    <!doctype html> <head> <meta http-equiv="Content-Type" content="text/h ...

  6. 关于React组件之间如何优雅地传值的探讨

    闲话不多说,开篇撸代码,你可以会看到类似如下的结构: import React, { Component } from 'react'; // 父组件 class Parent extends Com ...

  7. Asp.Net Web API(六)

    Asp.Net Web API不可以需要IIS.可以自己在主机上承载一个Web API 创建WebAPI.Server项目 创建一个控制器项目的服务端 在Nuget中添加Microsoft.AspNe ...

  8. Linux 运行级别

    本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/47 运行级别 不同运行级别的描述 运行级别0:系统停机状态,系统 ...

  9. bzoj 1855: [Scoi2010]股票交易

    Description 最近lxhgww又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,lxhgww预测到了未来T天内某只股票的走势,第i天的股票买入价 ...

  10. 【WebGL】《WebGL编程指南》读书笔记——第4章

    一.前言        今天继续第四章的学习内容,开始学习复合变换的知识. 二.正文        Example1: 复合变换 在书中,作者为我们封装了一套用于变换的矩阵对象:Matrix4对象.它 ...