视频编辑SDK测试

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

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

功能说明

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

模块结构

编辑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,内存消耗,以及不同平台下的合成时长。这对于产品的优化发展而言,也是大有裨益的。

相关文章
|
3月前
|
数据可视化 API 开发工具
影创SDK☀️三、工程默认配置,及基础测试建议
影创SDK☀️三、工程默认配置,及基础测试建议
|
4月前
|
NoSQL 开发工具 数据库
开发与运维测试问题之应用启动报 Can not load this fake sdk class 的异常如何解决
开发与运维测试问题之应用启动报 Can not load this fake sdk class 的异常如何解决
|
Web App开发 资源调度 测试技术
Sentry 开发者贡献指南 - 浏览器 SDK 集成测试
Sentry 开发者贡献指南 - 浏览器 SDK 集成测试
131 0
Sentry 开发者贡献指南 - 浏览器 SDK 集成测试
|
Java 测试技术 API
.net core实践系列之短信服务-Api的SDK的实现与测试(二)
.net core实践系列之短信服务-Api的SDK的实现与测试(二)
176 0
.net core实践系列之短信服务-Api的SDK的实现与测试(二)
|
XML JSON API
.net core实践系列之短信服务-Api的SDK的实现与测试(一)
.net core实践系列之短信服务-Api的SDK的实现与测试(一)
315 0
.net core实践系列之短信服务-Api的SDK的实现与测试(一)
|
消息中间件 API PHP
阿里云微服务消息队列MQTT管控 API PHP SDK 测试Quick Start
微消息队列MQTT版是阿里云推出的一款面向移动互联网以及物联网领域的轻量级消息中间件。如果说传统的消息队列中间件一般应用于微服务之间,那么适用于物联网的微消息队列MQTT版则实现了端与云之间的消息传递和真正意义上的万物互联。前面介绍了Java SDK本地调用方法,这里介绍一下PHP SDK快速调用方法。
469 0
阿里云微服务消息队列MQTT管控 API PHP SDK 测试Quick Start
|
17天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
29 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
191 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
197 3
快速上手|HTTP 接口功能自动化测试
|
26天前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
35 0