测试开发 | 视频编辑SDK测试

news2024/11/15 15:33:30

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

功能说明

短视频编辑SDK支持gif,不同格式的图片,视频文件的拼接导入,编辑,添加特效,合成导出等功能。更具体的介绍可以参照官网的SDK开发文档。智汇云-深化数据价值,助力数字未来

模块结构

编辑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/372399.html

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

相关文章

Elasticsearch:如何轻松安全地对实时 Elasticsearch 索引重新索引你的数据

在很多的时候,由于一些需求,我们不得不修改索引的映射,也即 mapping,这个时候我们需要重新索引(reindex)来把之前的数据索引到新的索引中。槽糕的是,我们的这个索引还在不断地收集实时数据&…

Python3-数字

Python3 数字(Number) Python 数字数据类型用于存储数值。 数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。 Python 支持三种不同的数值类型: 整型(int) - 通常被称为是整型或整数,是正或负整数&#x…

8.Spring Security 权限控制

1.简介入门JavaEE和SpringMVC :Spring Security就是通过11个Fliter进行组合管理小Demouser实体类user.type字段,0普通用户,1超级管理员,2版主补全get set tostringimplement UserDetails,重写以下方法// true: 账号未过…

_improve-2

-------------------- 左边定宽,右边自适应方案 float margin,float calc /* 方案1 */ .left {width: 120px;float: left; } .right {margin-left: 120px; } /* 方案2 */ .left {width: 120px;float: left; } .right {width: calc(100% - 120px);fl…

【深度学习】线性回归、逻辑回归、二分类,多分类等基础知识总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言1. 线性回归2、逻辑回归3. 单层神经元的缺陷&多层感知机softmax 多分类前言 入行深度学习快2年了,是时间好好总结下基础知识了.现在看可能很多结论和刚学的…

SystemVerilog-时序逻辑建模(5)多个时钟和时钟域交叉

数字硬件建模SystemVerilog-时序逻辑建模(5)多个时钟和时钟域交叉数字门级电路可分为两大类:组合逻辑和时序逻辑。锁存器是组合逻辑和时序逻辑的一个交叉点,在后面会作为单独的主题处理。组合逻辑描述了门级电路,其中逻…

办公室人员离岗识别检测系统 yolov7

办公室人员离岗识别检测系统根据yolov7网络模型深度学习技术,办公室人员离岗识别检测算法能够7*24小时全天候自动识别人员是否在岗位。YOLOv7 在 5 FPS 到 160 FPS 范围内,速度和精度都超过了所有已知的目标检测器,并在V100 上,30…

2023/2/26 Vue学习笔记 配置代理解决跨域[CORS ]的问题

利用vue的脚手架巧妙的解决ajax跨域的问题 1 我们首先利用springboot服务搭建 注意这里引出了跨域[CORS ]的问题: Access to XMLHttpRequest at http://localhost:5000/getUserInfo from origin http://localhost:8080 has been blocked by CORS policy: No Access-Control-A…

【Java】Spring Boot 2 集成 nacos

【Java】Spring Boot 2 集成 nacos 官方文档&#xff1a;https://nacos.io/zh-cn/docs/quick-start-spring-boot.html pom 本次Springboot版本 2.2.6.RELEASE&#xff0c;nacos-config 版本 0.2.7&#xff0c;nacos-discovery版本 0.2.7 parent <parent><groupId&…

带你深层了解c语言指针

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:介绍c语言中有关指针更深层的知识. 金句分享: ✨今天…

麻省理工学院,Web3 人才辈出

2 月 22 日&#xff0c;NFT 交易平台 Blur 创始人公开身份&#xff0c;曾就读于麻省理工学院计算机系。除了 NFT 交易平台&#xff0c;在公链、交易所、VC、媒体、Layer2 等 Web3 和 Crypto 的多个赛道&#xff0c;麻省理工学院&#xff08;MIT&#xff09;的毕业生和教授们均有…

HDMI协议介绍(二)--DataIsland Packets

前言 前文简单介绍了HDMI传输的三个周期&#xff1a;控制周期、DataIsland周期和Video周期。DataIsland传输音频和辅助数据&#xff0c;这些数据以Packet的形式传输。本文简单介绍DataIsland Packet。 目录 前言 数据岛概述 数据岛包的构造 Packet Header Paket Body Dat…

从0开始学python -40

Python3 面向对象-3 类属性与方法 类的私有属性 __private_attrs &#xff1a;两个下划线开头&#xff0c;声明该属性为私有&#xff0c;不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs 。 类的方法 在类的内部&#xff0c;使用 def 关键字…

Linux驱动——设备模型

目录 一、起源 二、新方案 2.1 sysfs: 2.2 uevent 三、代码中自动mknod 四、实例 一、起源 仅devfs&#xff0c;导致开发不方便以及一些功能难以支持&#xff1a;&#xff08;硬编&#xff09; 1. 热插拔&#xff08;插上usb设备就立马能安装驱动&#xff09; 2. 不支持…

蓝桥杯2015年第六届真题-奇怪的数列C++

题目&#xff1a;从X星截获一份电码&#xff0c;是一些数字&#xff0c;如下&#xff1a;13111331131321131113122113....YY博士经彻夜研究&#xff0c;发现了规律&#xff1a;第一行的数字随便是什么&#xff0c;以后每一行都是对上一行“读出来”比如第2行&#xff0c;是对第…

hadoop网站流量日志数据统计

系统背景介绍 数据提供企业决策能力 网站日志的数据分析------》受欢迎程度如何评价你这个网站的受欢迎程度 用数据 下载的人多了 观看的人多了 通过Hadoop 对某个网站产生的日志数据流量进行统计分析 得出该网站的访问流量 继而做出决策我们可以采用flume收集nginx的success文…

AcWing算法提高课-2.1.1池塘计数

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 题目传送门点这里 题目描述 农夫约翰有一片 N∗M 的矩形土地。 最近&#xff0c;由于降雨的原因&#xff0c;部分土地被水淹没了。 现在用一个字符矩阵来表示他的土地。 每个单元格内&…

EasyRecovery16最新免费版电脑数据恢复软件功能介绍

EasyRecovery是一款支持Windows/Mac平台进行恢复图片的专业工具&#xff0c;尤其是各种流行单反相机RAW格式文件&#xff0c;以及超大型视频文件等&#xff0c;推荐摄影爱好者使用。适用于主流相机、无人机、PC、存储卡、USB 闪存驱动器等&#xff0c;由于删除、损坏或意外格式…

【项目精选】医院管理住院系统的研究与实现(源码+论文+视频)

点击下载源码 本系统主要分为六大模块&#xff0c;分别是医生管理模块、病人管理模块、病床管理模块、收费管理模块、统计分析模块和系统功能模块 &#xff0c;医生、病人和医院的管理人员都可以通过此系统寻找出自己所需要的信息。 1.1 背景 医院管理住院系统是当今大部分现代…

Nginx安装及介绍

前言&#xff1a;传统结构上(如下图所示)我们只会部署一台服务器用来跑服务&#xff0c;在并发量小&#xff0c;用户访问少的情况下基本够用但随着用户访问的越来越多&#xff0c;并发量慢慢增多了&#xff0c;这时候一台服务器已经不能满足我们了&#xff0c;需要我们增加服务…