云端智创 | 批量化生产,如何利用Timeline快速合成短视频?

news2024/11/23 3:05:12

本文内容整理自「智能媒体生产」系列课程第三讲:开发者实战,由阿里云智能视频云技术专家分享云剪辑Timeline的功能及使用方法、云剪辑OpenAPI的使用流程、短视频批量生产的基本原理以及使用Timeline合成常见的短视频效果。课程回放见文末。

01 Timeline简化之道

什么是时间线Timeline?Timeline是一个完整的数据结构,通过数据结构把整个剪辑表示出来。在云剪辑编辑器中,界面可分为轨道、素材、预览窗口、特效设置四个部分。

轨道分为视频轨、音频轨、字幕轨以及特效轨,上面的轨道会盖住下面的轨道,而一个轨道上可以包含多个素材。

比如,视频轨是按照视频的先后顺序拼接起来的,视频上可添加多个特效,像调色、蒙层、裁剪等,视频中可添加转场,也可以通过特效轨的方式,在视频中添加全局特效。字幕轨,可以设置字号、字体以及字幕样式等。

设置每一个素材的开始、结束时间,并通过一系列参数组成完整的视频剪辑。

图片1.png

Timeline剪辑合成

通过视频合成接口提交剪辑,合成以下视频。把多个视频拼接起来,添加设置过样式的字幕和贴纸,同时又补充了上下黑边,将原本的横屏视频素材转成竖屏视频。

Timeline可能包含多个轨道、每个轨道包含多个素材、而每个素材又包含很多设置信息,通过组装时间线,用户调用OpenAPI就可以剪辑出自己的视频。

图片2.png

Timeline示例合成效果展示:https://v.youku.com/v_show/id_XNTk0MTY3NTU0OA==.html

Timeline数据结构

Timeline中可包含多种轨道,包括视频轨、音频轨、字幕轨、特效轨等,而视频轨中也可以包含多个视频或图片素材。

素材最重要的信息是其来源,将OSS文件或VOD媒资ID引入到Timeline中,以此指定唯一的视频或图片。此外,还可以设置素材的开始、结束时间,位置、尺寸等信息。

在Timeline中,上面的轨道会盖住下面的轨道,表现在数据结构中是数组后面的轨道会放置在上面,如下图代码所示:上面的轨道是视频,下面的轨道是图片。而字幕轨也可以包含多个片段,可以是标题、底部的翻译等信息。

图片3.png

文中形如 “https://your-bucket.oss-cn-shanghai.aliyuncs.com/your-video.mp4” 的OSS URL均为示例地址,实际执行需替换成客户真实OSS地址执行。

接下来介绍每类轨道素材的详细参数设置:

l VideoTrackClip

VideoTrackClip是视频轨上的片段,比如视频或图片,可以设置其在成片画布上的位置,如XY坐标、宽高,以及在时间线中的位置等。

例如,想把一个视频素材的第5秒到第10秒截取出来,放在时间线第15秒到第20秒的位置,那可以将它的In、Out、Timelinein、Timelineout分别设置为5、10、15、20。

同时还可以给视频增加特效,除了转场、滤镜外还有一些基础特效,比如音量调整、倍速、裁剪、视频水平翻转、旋转、AI特效、字幕样式、绿幕抠图、智能遮标等。

图片4.png

l AudioTrackClip

AudioTrackClip是音频轨上的素材,与视频轨不同,音频没有画布的概念,可以设置其在时间线中的位置,比如第几秒出现、第几秒结束,也可以设置其在原素材中截取的位置。

此外,音频也可以增加一些特效,比如音量、倍速、是否循环播放、淡入淡出、语音识别等。

音频轨中的素材,可以是音频或有音频流的视频,也支持把一段文字转成人声,作为音频播放。文字转人声可以设置人声的类型、语速、音调等,同时,在合成过程中,也可以把文字转换为字幕,添加到视频中。

图片5.png

l SubtitleTrackClip

SubtitleTrackClip是字幕轨上的素材,可以是文字或是字幕文件。

如果是一段文字,可以设置这段文字在成片画布中的位置,x、y坐标,在时间线中的位置,还可以设置字体、字号、颜色、描边及阴影属性、动画等。

如果素材为字幕文件,则支持SRT或者ASS字幕,同时,字幕样式包含在字幕文件里,可以直接合成到视频中。

图片6.png

l EffectTrackClip

EffectTrackClip是特效轨,一般在特效轨中设置全局特效,比如氛围类特效、滤镜、调色等,也可以设置特效在视频中的开始和结束时间。在素材中也可以设置特效,把它加入Effects里即可。特效的关键参数是其类型,部分特效可以设置调色等参数。

图片7.png

Timeline简化

Timeline轨道中参数繁多,剪辑场景非常复杂,因而对Timeline进行简化至关重要。

在剪辑过程中,Timeline会先分析用户传入的素材,然后根据素材补全参数。

比如在两个10s视频前后拼接的场景中,用户只需要传入两个视频的MediaURL,Timeline就可以自动进行推导,而不再需要传入时间、坐标等参数。

由此,开发人员在使用云剪辑时,不但可以进行非常复杂的剪辑操作,也可以进行一些简单的视频处理工作。

图片8.png

比如视频的拼接,开发人员只需传入两个视频的地址,组装成一个简单的Timeline即可进行拼接。

图片9.png

比如视频的裁剪,用户只需传入视频素材以及裁剪位置,而无需传入分辨率等其他信息。

图片10.png

再比如文字转语音,音频轨的输入可以是一段文字,在实际剪辑过程中,会把文字转成语音进行合成。用户将文字转为音频和字幕,并合成到视频中,只需制作一个Timeline即可。

图片11.png

合成效果展示:https://v.youku.com/v_show/id_XNTk0MTY3NTYwOA==.html

02 OpenAPI 调用指南

Timeline有何作用?

有了Timeline,调用OpenAPI提交剪辑合成任务,就可以合成出成片。提交剪辑合成作业的接口是SubmitMediaProducingJob,输入是Timeline,OutputMediaConfig输出地址和输出配置,可以设置成片的宽高、码率以及其他的转码参数。

基于此,用户只需提交一个接口就可以合成视频。提交成功后会返回JobId,根据JobId查询剪辑合成作业的状态,当状态为成功的时候,代表成片合成完成。

查询剪辑合成作业的接口是GetMediaProducingJob,输入JobId,输出Job信息,由此查询到任务状态。

图片12.png

用户提交剪辑合成作业的整体流程为:提交Timeline和OutputMediaConfig之后,同步返回JobId、ProjectId和MediaId,其中ProjectId和MediaId可以方便用户进行一些后续的操作。

当剪辑完成以后,用户可以通过轮询的方式,根据JobId不断请求Job信息,最后拿到结果。同时,也支持回调的方式,传入回调地址或者MNS队列,在剪辑完成以后回调给用户。

简单来说,用户提交一次剪辑只需用到以上两个接口,从而可以把更多的精力放在Timeline的组装上。

图片13.png

03 营销短视频是怎样合成的?

实践部分将以口播文案为索引,分步演示如何使用Timeline和OpenAPI剪辑合成营销短视频。

利用素材合成短视频的流程是:先把文案转化成人声,配上背景音乐,然后和视频素材拼接到一起,最后补充特效、Logo以及标题,由此合成最终的成片。

图片14.png

合成效果展示:https://v.youku.com/v_show/id_XNTk0MTY3NTY4OA==.html那么,如何使用Timeline来合成此视频?

首先分析该视频,不难发现,该视频是由以下几个主要轨道组成:视频轨包含了全部视频素材,是一个主要的轨道;文案转成了字幕,组成了主要的字幕轨;文案转成的人声组成了一个音频轨,此外,背景音乐构成了另外一个音频轨;叠加的全局特效组成了特效轨。

图片15.png

接下来分别看这些轨道是如何合成的。l 视频横转竖上述提到,把视频素材拼接起来,只需填入关键信息即可。

该Timeline 的功能是把每个素材截取前两秒,按照时间顺序拼接到一起。

图片16.png

此外,视频素材是横屏的,如果希望输出一个竖版视频在手机上播放,只需要在输出配置里面设置分辨率即可,比如720✖️280,由此输出了一个720P的视频。

同时,会默认把每个素材进行等比缩放,并按照成片的分辨率居中展示,不足部分补充上下黑边,即可实现视频横转竖效果。

合成效果展示:https://v.youku.com/v_show/id_XNTk0Mjc3ODY1Mg==.htmll

背景模糊当然,上下黑边的效果仍不够好,我们期望在不足部分补充上毛玻璃效果,把整个视频用内容填满。

在Timeline上的实现是这样的:添加Effects,Type是Background,添加背景模糊效果,同时SubType为Blur,并设置模糊半径。

图片17.png

合成效果展示:https://v.youku.com/v_show/id_XNTk0Mjc3ODY5Mg==.htmll 字幕转人声、背景音乐接下来补充人声和背景音乐,分别为两个音频轨,实现同时播放效果。

在人声的音频轨中,设置人声类型,将文案素材合成到视频中,同时,添加Effects为AI_ASR,把识别出来的人声转成字幕并设置字幕样式。

在背景音乐的音频轨中,只需设置其URL,就可以从第0秒播放到视频的结束。

图片18.png

合成效果展示:https://v.youku.com/v_show/id_XNTk0Mjc3NzM4MA==.htmll 添加标题、修改字幕样式标题作为字幕,添加时只需新增一个字幕轨并将其置入即可。

字幕可以设置各种属性,比如字号、字体、颜色、描边、阴影等。在短视频中还经常使用花字、字幕动画等,将字幕居中对齐,设置为TopCenter并确定居顶的外坐标即可。

图片19.png

标题和AI_TTS中添加字幕样式属性

合成效果展示:https://v.youku.com/v_show/id_XNTk0MDkwMjc2NA==.htmll 转场、特效转场即Transition,需要设置其类型以及持续时间,需要注意的是,转场会占用前后两个视频的时间,因为转场是上下两个视频之间的过渡。

比如,把两个1秒的视频拼接起来,中间加一个0.3秒的转场,那么最后成片的时间为1.7秒,即需要减去转场的时间。特效即VFX,比如电影特效、氛围特效等。

图片20.png

合成效果展示:https://v.youku.com/v_show/id_XNTk0MDkwMjc2NA==.htmll 随机特效、随机截取随机效果是剪辑过程中经常会使用到的功能,用户期望只使用一个时间线,实现每次剪辑时随机挑选一个特效和转场进行使用的效果。

随机效果有很多,这里介绍随机特效和随机截取。转场和特效的SubType可以设置为多个,并用英文逗号隔开,这样在实际合成过程中,就可以随机选取一个进行合成。

图片21.png

截取可以添加一个Effect:Clip,再添加SubType为RandomClip,并设置随机截取的时长,比如2秒,这样在每次剪辑过程中,会在素材里随机截取2秒,如果素材不足2秒则直接使用素材的全部时长。

合成效果展示:https://v.youku.com/v_show/id_XNTk0Mjc3ODgzMg==.html

以上讲解了短视频每个轨道的制作过程、Timeline展示以及使用的功能,完整的时间线和代码见文末课程回放。

l 字幕对齐

上述场景中,是把每个素材随机截取2秒进行前后拼接,更好的效果是把每个素材和每句话的开始结束时间一一对应,以此更富有节奏感。

合成效果展示:https://v.youku.com/v_show/id_XNTk0MTY3NTY4OA==.html

如何合成有节奏感的视频呢?

首先,可以根据文字素材生成字幕和音频,以此获取每句话的开始、结束时间。

图片22.png

基于此信息,即可根据字幕截取素材,然后再把截出来的片段按照顺序进行拼接,使得每个素材正好和句子对齐,从而达到预期效果。

图片23.png

这里要额外用到一个接口,即提交智能生产作业。此接口有三个参数,FunctionName为AsyncTextToSpeech,即文字转语音;Input是一段文案,需要将其放到OSS文件里;Output是音频和句子的时间戳。

提交完成后会返回一个JobId,根据JobId调用QueryIProductionJob获取任务信息,当任务状态为Success时即可得到任务结果。

图片24.png

整体流程为:首先,用文案调用SubmitIProductionJob,提交文字转语音任务,调用QueryIProductionJob查询任务的结果。

当任务状态为Success时,获取人声的音频,以及每句话的开始、结束时间。

其次,基于此信息封装时间线,把素材正好卡在每一句话的开始、结束时间上,进行一一对齐。

然后,调用SubmitMediaProducingJob提交剪辑合成任务,根据剪辑合成任务的JobId调用MediaProducingJob,等待剪辑任务合成完成。

当任务状态为Success时,获取最终成片。(具体代码见文末课程回放)

图片25.png

除了以文案为主线截取视频素材之外,还可以根据音乐卡点、剧本等实现视频的“节奏感”,组装时间线进行视频合成,就能实现视频批量生产的效果。

04 Tips:经验分享

最后分享一些云剪辑的相关经验。

视频的批量生产、批量混剪,在云剪辑中非常常见。

随着短视频的兴起,客户需要在不同的营销号上分发不同的广告内容,从而达到宣传的目的。

由于分发到不同营销号上,分发的视频之间不能重复,此时云剪辑就发挥了重大作用。

客户一般会准备很多素材,分成不同的组,然后通过套用不同的剧本,加上特效、转场、字幕、背景音乐,制作出很多成片,最后再通过自动化的方式进行分发,从而达到批量生产的目的,同时也大大节省了人力成本。

图片26.png

以下是批量混剪多个成片的效果,可以看到,不同成片之间,选择的素材、素材的顺序、截取素材的位置是不一样的,再加上不同的特效、贴纸、字幕、转场等,就能实现较好的去重效果。

合成效果展示:https://v.youku.com/v_show/id_XNTk0MTY3NTg2MA==.html

节奏卡点

视频的批量混剪内含很多小技巧,比如卡点。

卡点能让视频更有节奏感,从而达到更好的效果。除了口播文案外,也可以通过卡点相册来达到效果,并且音乐卡点的节奏感更强,能给人一种打击感。

合成效果展示:https://v.youku.com/v_show/id_XNTk0MTY3NTk1Ng==.html

上一节课介绍过,视频AI能够自动识别出一首歌的副歌部分和节奏卡点,由此就可以自动制作出卡点相册,从而达到批量化和自动化制作视频的效果。

除此之外,歌曲歌词、小说、剧本制作等都可以全自动地生成视频。

分镜时长

卡点作为一个很小的剧本,决定了视频以什么样的结构展开,而剧本制作也包含了一些小技巧:比如分镜,即一个视频片段,一个分镜的时间不建议超过3s,太长的分镜会让用户视觉疲劳,尤其是在看短视频时,用户都想以最快速度看到自己想要的内容。

因此,无论是口播文案、卡点还是剧本,每个片段的时间都不要太长。(分镜时长差异效果详见文末课程回放)

素材挑选

除此之外,片段时长短还有另一个好处:挑选素材会更方便。

合成效果展示:https://v.youku.com/v_show/id_XNTk0MTY5ODEzMg==.html

以上述素材举例,此类素材的特点为视频内容并没有发生太大的变化,可以截取任意部分套入剧本进行剪辑。

在剪辑中时常存在一种误区,即人们往往想保证素材的完整性,而这其实是不对的。

在剪辑中,首先要保证剧本的完整性,因为剧本才是视频的灵魂,要以素材适配剧本,而不是以剧本适配素材。

此外,更重要的是能提高开发的效率。用户上传的素材多种多样,如果针对素材去做适配非常繁琐,但如果先准备好剧本,然后让用户的素材来适配剧本,则能够极大地简化开发量。

还有一种情况是,用户上传的每个素材都很短,比如都是1秒,但剧本里需要一个2秒的素材,这种情况下更建议准备多个剧本,适配不同的素材,当拿到用户素材以后,直接挑选对应的剧本进行合成即可。

而智能媒体生产的模板工厂功能,则可以把用户常见的时间线沉淀到模板中,即刚才所说的剧本,将其做成一个个模板供剪辑使用。

总结视频批量生产的整体流程:首先创建剧本,剧本来源可以是口播文案、音乐卡点、或是自己创作的剧本。

其次,准备多个用来适配不同剧本的素材,可以是长视频或是短视频。

最后,在用户传完素材之后,根据用户的素材挑选对应的剧本并进行合成。

图片27.png

由此,可以减少很多不必要的适配工作,提高开发效率,降低开发成本,同时还能获得很多模板沉淀,从而提高视频批量生产效率。

视频剪辑场景复杂,在实际的工作中更考察创作者的灵感与创意。运用云剪辑工具,智能媒体生产依托云端算力,让剪辑工作更快捷、更高效、更智能,进一步提升媒体生产制作效率。

更多完整内容详见课程回放:https://v.youku.com/v_show/id_XNTk0MzQ1NTY4OA==.html

阿里云视频云将行业资深导师分享的视频生产精彩演讲内容,浓缩成智能媒体生产领域的实用宝典《云端智创》电子书,与各位开发者和视频制作技术朋友分享。

《云端智创》电子书获取路径:关注【视频云技术】,回复“电子书”即可领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/344366.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSDN每日一练:蛇形矩阵

题目名称:蛇形矩阵 时间限制:1000ms内存限制:256M 题目描述 给你一个整数n,输出n∗n的蛇形矩阵。 输入描述: 输入一行,包含一个整数n 输出描述: 输出n行,每行包含n个正整数&#xff…

【重磅】IEEE33配电网两阶段鲁棒优化调度CCG

目录 1 前言 2基本内容 2.1 配网两阶段鲁棒模型 2.2 求解步骤 3部分程序 4程序结果 5程序链接 1 前言 鲁棒优化是电力系统研究的热点,而两阶段鲁棒和分布鲁棒研究就成为各类期刊(sci/ei/核心)的宠儿,最简单的思路是通过改…

影像组学|案例流程复现

对一篇影像组学的的论文(《Development and validation of an MRI-based radiomics nomogram for distinguishing Warthin’s tumour from pleomorphic adenomas of the parotid gland》)中方法进行复现。完整地跑通影像组学全流程,对临床影像…

Alibaba微服务组件Nacos配置中心

目录 Nacos配置中心使用 springcloud config 对比 快速开始 搭建nacos-config服务 Config相关配置 配置的优先级 RefreshScope Nacos配置中心使用 官方文档: Nacos config alibaba/spring-cloud-alibaba Wiki GitHub Nacos 提供用于存储配置和其他元数据…

链表基本原理

链表基本原理1.链表1.1 基本原理1.2 链表大O记法表示2. 链表操作2.1 读取2.2 查找2.3 插入2.4 删除3.链表代码实现1.链表 1.1 基本原理 节点 组成链表的数据格子不是连续的。可以分布在内存的各个位置。这种不相邻的格子就叫结点。每个结点保存数据还保存着链表里的下一结点的…

Leetcode—移除元素、删除有序数组中的重复项、合并两个有序数组

移除元素 此题简单,用双指针方法即可, 如果右指针指向的元素不等于val,它一定是输出数组的一个元素,我们就将右指针指向的元素复制到左指针位置,然后将左右指针同时右移; 如果右指针指向的元素等于 val&…

04 OpenCV位平面分解

1 基本概念 位平面分解的核心思想是将图像的每一个像素分解为多个二进制位,分别存储在不同的位平面上。例如,如果一个图像是8位深度的,则可以分解为8个位平面,每个位平面上存储一个二进制位。 位平面分解在图像压缩中有着重要的…

对Node.js 的理解?优缺点?应用场景?

一、是什么 Node.js 是一个开源与跨平台的 JavaScript 运行时环境 在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核),利用事件驱动、非阻塞和异步输入输出模型等技术提高性能 可以理解为 Node.js 就是一个服务器端的、非阻塞式I/…

中国计算机设计大赛来啦!用飞桨驱动智慧救援机器狗

‍‍中国大学生计算机设计大赛是我国高校面向本科生最早的赛事之一,自2008年开赛至今,一直由教育部高校与计算机相关教指委等或独立或联合主办。大赛的目的是以赛促学、以赛促教、以赛促创,为国家培养德智体美劳全面发展的创新型、复合型、应…

保姆级Vue3+Vite项目实战多布局(下)

写在前面注:本文首发掘金签约专栏,此文为文章同步!本文为 Vue3Vite 项目实战系列教程文章第三篇,系列文章建议从头观看效果更佳,大家可关注专栏防走失!点个赞再看有助于全文完整阅读!此系列文章…

如何在 C++ 应用程序中集成 Spire.XLS for C++

Spire.XLS for C 是一个 Excel 库,供开发人员在任何类型的 C 应用程序中操作 Excel 文档(XLS、XLSX、XLSB 和 XLSM)。 本文演示了如何以两种不同的方式将 Spire.XLS for C 集成到您的 C 应用程序中。 通过 NuGet 安装Spire.XLS for C通过手动…

一篇文章带你读懂HashMap

HashMap是面试中经常问到的一个知识点,也是判断一个候选人基础是否扎实的标准之一。可见HashMap的掌握是多重要。 一、HashMap源码分析 1、构造函数 让我们先从构造函数说起,HashMap有四个构造方法,别慌 1.1 HashMap() // 1.无参构造方法、// 构造一…

企业数字化转型和升级:架构设计方法与实践

企业架构整体结构图例:企业架构整体结构企业架构整体结构从战略层、规划层、落地层这三层来分别对应企业架构中业务、架构和实施的各种重要活动和产出。业务架构,数据架构,应用架构和技术架构之间的内在逻辑联系:图例:企业架构整体…

什么,Excel竟然听得懂人话!?!

Excel知道我们想干啥,不相信?看下面的案例。“数据格式”列中规定了各种数据元类型的长度、保留位数等,我们需要提取对应的数值作为“字段长度”列。比如an..100取100,n4取4,an..100,3取100,..ul取1000&…

C语言学习笔记-排序算法

选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小&…

元宇宙营销面临的三大挑战

元宇宙的营销就像在早期的互联网建立一个网站一样,你没有多少可以向过去借鉴的,这个领域一切都是崭新的。对于一个实验性很强的项目而言,你很难知道要投入多少的时间和资源,而且这个项目也不一定能保障收益以及满足其他的一些关键…

[小记]注入服务进程/跨session注入

最近测试注入遇到一个问题:OpenProcess 失败,报错码:5,没有权限。 问题排查: 1,是否是管理员权限启动程序? 是 2,注入的目标进程有什么特殊? 目标进程是svchost.exe&…

【PyQt】PyQt学习(二)模块介绍+QObject学习

简介 PyQt API 是一组包含大量类和函数的模块。核心模块如下: QtGui:包含了窗口系统、事件处理(QEvent)、2D 图像(QImage)、基本绘画、字体(QFont)和文字类;QtCore&…

02.13:监督学习中的分类问题

今天首先学习了监督学习中的分类问题,跑了两个代码。现在学起来感觉机器学习有很多不同的定理建立了不同的分类器,也就是所谓不同的方法。具体的数学原理我不太清楚。然后不同的应用场景有一个最优的分类器。 值得一提的应该就是终于清晰的明白了精度&am…

IDEA 中使用 Git 图文教程详解

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…