视频编辑SDK测试

news2025/4/8 23:07:22

短视频编辑SDK测试有一段时间了,因此抽时间对编辑SDK的相关内容进行简要复盘。

功能说明

短视频编辑SDK支持gif,不同格式的图片,视频文件的拼接导入,编辑,添加特效,合成导出等功能。更具体的介绍可以参照官网的SDK开发文档。live.360.cn/developer/d…

** 模块结构**

编辑SDK的核心模块包括时间线、特效指令、预览播放器、合成器。整体架构图概括如下:

  • **时间线:**时间线上包含多个音/视频轨道。轨道是文件素材的载体,视频轨道上可以添加视频、音频文件,音频轨道上只能添加音频文件。片段上可以添加特效,片段间可以设置不同的转场效果。
  • **特效指令:**特效指令分为音、视频特效,譬如变声、滤镜、贴纸、画质调节等效果。
  • **预览播放器:**实时预览,源素材文件和添加的特效都可以通过预览播放器实时渲染。
  • **合成器:**读取素材文件,并按特效指令处理素材文件,最终按照合成配置合成新的媒体文件。

播放/合成模块处理

播放/合成模块文件处理过程可以通过下图概括。

实际上,播放和合成模块是分立的两个模块,并非涵盖关系。只不过两个模块读取文件配置信息和音视频解码部分流程相同。另外,在添加文件时,SDK会对文件进行格式转换,方便之后对于音、视频数据的处理。读取文件并解码后,还会涉及到视频像素数据的颜色空间转换。由此,也需要我们在测试过程中对相关知识进行学习了解,譬如常见的音视频文件格式,视频数据的颜色空间等。

测试注意点

在了解了编辑SDK的基本功能和处理过程后,我们接下来看看测试编辑SDK的过程中有哪些需要注意的方面呢。

  • 输入素材文件的格式类型

在根据需求实际测试过程中,我总结出以下需要覆盖的素材文件类型(测试设备主要为iPhone设备)

由于源素材的格式类型众多,确实会在一定程度上增加测试的繁琐性。不过在发现问题并协助开发解决问题的过程中还是能够学习到很多东西。

  • 预览播放时特效的叠加操作

当前编辑SDK支持转场,变速,添加背景音乐和字幕贴纸等功能。那么在实际测试过程中不可忽视的就是相关操作的叠加。假设我们导入一段时长20s的视频,从视频的起始位置到结束位置添加背景音乐后,对其进行2倍速变速操作。此时视频的播放时间为10s,那当前的视频导出后时长是否正确,源素材的音频轨和背景音乐是否依照预期叠加,源素材文件和背景音乐是否在对应的时间线上同步变速等,则是需要着重关注的地方。

  • 预览播放和合成导出过程中的中断操作

预览播放时,播放器进行数据的渲染。在一些中断操作(锁屏,切后台,电话打入,闹钟等)后,我们也要关注播放器是否能够正常的刷新或重启,是否会出现黑屏,丢帧等异常现象。合成过程中进行数据的编码,同样要验证中断操作对编码器逻辑的影响。

问题举例

测试过程中的确也遇到了不少问题,其实也是由于我们上面说到的一些注意点没有考虑全面导致的,试举两例:

1.iPhone7+iOS11拍摄的视频导入demo崩溃

原因:iPhone7(及以上)+iOS11(及以上)的设备拍摄的视频均采用H265编码格式。之前多数iPhone设备拍摄的视频为H264编码,此处需要特别注意。

2.iPhone X 截图导入demo后,画面出现拉伸类似于马赛克的情况。

原因:iPhone X截图分辨率比较特殊,为2436*1125。因此需要针对此类特殊分辨率的素材文件作特殊处理。

另外,在我们进行功能测试的同时,也要关注下SDK的性能指标。可以和竞品进行对比,输入同一段素材文件,保证输入和输出分辨率相同的情况下,获取不同阶段的CPU,内存消耗,以及不同平台下的合成时长。这对于产品的优化发展而言,也是大有裨益的。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

14:00面试,14:06就出来了,问的问题有点变态。。。。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到5月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

Android 13.0 Launcher3 app图标长按去掉应用信息按钮

1.前言 在13.0的rom定制化开发中,在Launcher3定制化开发中,对Launcher3的定制化功能中,在Launcher3的app列表页会在长按时,弹出微件和应用信息两个按钮,点击对应的按钮跳转到相关的功能页面, 现在由于产品需求要求禁用应用信息,不让进入到应用信息页面所以要去掉应用信息…

5个高质量图片处理软件,抠图、特效不求人!

作为一个设计师或摄影家或者平面设计工作人员,又或者是普通人,只要你有图片处理的需求,就不可避免的会需要一个好用高效的图片处理网站,会抠素材,找图片,删除图片内容等等,都需要花费大量的时间…

【Redis】hash类型-内部编码使用场景

文章目录 内部编码测试内部编码: 使用场景缓存方式对比 内部编码 哈希的内部编码有两种: ziplist(压缩列表):当哈希类型元素个数⼩于hash-max-ziplist-entries配置(默认512个)、同时所有值都⼩…

【C++】智能指针【内存泄漏|智能指针原理及使用|RAII】

目录 1、了解内存泄露 1.1 内存泄漏的定义及危害 1.2 内存泄漏分类(了解) 1.3 如何检测内存泄漏(了解) 1.4如何避免内存泄漏 2、智能指针的引出 3、智能指针的使用及原理 3.1 RAII 3.2 智能指针的原理 3.3 std::auto_pt…

雨洪水资源管理远程监控平台

雨洪水资源管理远程监控平台 汛期来临时,及时获得河道水库的水位涨幅数据对开展防汛抗洪工作至关重要,大量河道水库分布在远离城市的区域,而且分散,尤其是在紧急防汛阶段,如果只依靠传统人力巡查获得河道水位数据必将耗…

1688店铺所有商品数据接口(1688.item_search_shop)

1688店铺所有商品数据接口是一种允许开发者在其应用程序中调用1688店铺所有商品数据的API接口。利用这一接口,开发者可以获取1688店铺的所有商品信息,包括产品ID、SKU信息、价格、库存、图片等。这些数据可以用于构建各种业务场景,例如供应链…

Day1 ARM基础

【ARM课程认知】 1.ARM课程的作用 承上启下 基础授课阶段:c语言、数据结构、linux嵌入式应用层课程:IO、进程线程、网络编程嵌入式底层课程:ARM体系结构、系统移植、linux设备驱动c/QT 2.ARM课程需要掌握的内容 自己能够实现简单的汇编编…

宠物养成猫狗商城门店问诊档案流量主小程序开发

宠物养成猫狗商城门店问诊档案流量主小程序开发 猫狗宠物养成商城门店问诊档案流量主小程序开发,这是一个充满趣味性和创新性的项目。通过将宠物养成游戏与商城、问诊服务、社交功能等相结合,为用户提供一站式的宠物养育体验。 在宠物养成方面&#x…

高阶数据结构---并查集

文章目录 格子游戏搭配购买程序自动分析奇偶游戏银河英雄传说 一、格子游戏OJ链接 本题思路:本题首先我们将题目中所给的二维坐标映射到一维坐标中,从坐标从0开始进行,而题目中是从1开始,我们需要先进行--操作,然后利用并查集来判…

技术分享 | Appium环境安装与架构介绍

Appium架构 Appium 设计哲学 不需要为了自动化而重新编译或修改被测应用 不应该让移动端自动化测试限定在某种语言或者某个具体的框架 不要为了移动端的自动化测试而重新造轮子 移动端自动化测试应该是开源的 Appium 架构 Appium 架构图如下: Appium 的核心是…

【数据库】数据库模式 Schema

数据库模式 Schema 1.MySQL2.PostgreSQL3.SQL Server4.Oracle5.SQLite 在数据库的术语中,模式(schema)是一个逻辑概念,用于组织数据库中的对象。模式中的对象通常包括 表、索引、数据类型、序列、视图、存储过程、主键、外键 等等…

STM32笔记—DMA

目录 一、DMA简介 二、DMA主要特性 三、DMA框图 3.1 DMA处理 3.2 仲裁器 3.3 DMA通道 扩展: 断言: 枚举: 3.4 可编程的数据传输宽度、对齐方式和数据大小端 3.5 DMA请求映像 四、DMA基本结构 4.1 DMA_Init配置 4.2 实现DMAADC扫描模式 实现要求…

代码随想录 Day38 完全背包问题 LeetCode T70 爬楼梯 T322 零钱兑换 T279 完全平方数

前言 在今天的题目开始之前,让我们来回顾一下之前的知识,动规五部曲 1.确定dp数组含义 2.确定dp数组的递推公式 3.初始化dp数组 4.确定遍历顺序 5.打印dp数组来排错 tips: 1.当求取物品有限的时候用0-1背包,求取物品无限的时候用完全背包 结果是排列还是组合也有说法,当结果是组…

设计模式之工厂模式(Factory)

任何可以产生对象的方法或类,都可以称为工厂。 下面的代码定义了Car这种交通工具: public class Car {public void go() {System.out.println("Car go wuwuwuwuw....");} }然后在main函数里面想要调用调用Car的go方法,就需要new一个car对象&…

Netty入门指南之传统通信的问题

作者简介:☕️大家好,我是Aomsir,一个爱折腾的开发者! 个人主页:Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏:Netty应用专栏_Aomsir的博客-CSDN博客 文章目录 参考文献前言多线程…

管理类联考——写作——技巧篇——书写标点符号使用要求规范文档

写作答题卡书写标点符号使用要求规范文档 常用标点符号有逗号、句号、叹号、问号等 11 种,下面一一列举其用法和书写规范。 一、句号 用法:用于陈述句的末尾。 占格情况:占一格,写在格子左下方。 举例: 我看见妈妈走…

web3案例中解决交易所中 ETH与token都是0问题 并帮助确认展示是否成功

可能写了这么久 很多人会发现一个问 我们前面的案例 个人在交易所中的 自定义token 和 ETH 一直是放了个0 大家也不太敢确认是否真的有效 那么 很简单 我们操作 存入一些进交易所 不就ok了 我们 来看之前交易所写的代码 我们写了 depositEther 存入 ETH 和 depositToken 存入…

03 贝尔曼公式

贝尔曼公式 前言1、Motivating examples2、state value3、Bellman equation:Derivation4、Bellman equation:Matrix-vector form4、Bellman equation:Solve the state value5、Action value 前言 本文来自西湖大学赵世钰老师的B站视频。本节课主要介绍贝尔曼公式。 本节课概要…

海外问卷项目是怎么赚钱的?

大家好,我是橙河老师,今天聊一聊海外问卷项目是怎么赚钱的? 在海外国家,问卷调查这种商业模式一直都很流行,很多商业公司为了收集消费者的意见,会对外发有偿的调查问卷,从最开始的纸质调查&…