下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】如何设计一款优秀的短视频SDK
2017年,短视频成为了内容创业的新风口,各种短视频App如雨后春笋般先后上线,随着互联网内容消费升级,视频越来越像文字、图片一样,成为每一个App不可或缺的一部分。为了能够更好地聚焦于业务,早日完成短视频APP的上线,越来越多的公司倾向于选择一家靠谱的短视频SDK来起步,怎么定义靠谱?要关注哪些指标?仅功能满足就可以了吗?——显然不够,下面我们看看,如何才能设计一款优秀的短视频SDK?1.包体一定要尽可能小在移动互联网时代,App的包体大小,对获取用户有着至关重要的作用,特别是在线下的推广活动中,包体太大,下载费时费流量,很多用户会失去耐心,从而直接导致App的推广效果大打折扣。而App的包体大小,除了自身的代码量,也会受到第三方库的包体影响,因此,短视频SDK包体越小,对于减小App包体大小越有帮助,开发者才会越喜欢。那么,如何做到尽可能的减小SDK的包体呢?尽一切努力使用Android/iOS系统原生的API,不怕难用,不怕踩坑良好的模块划分,不同的功能生成不同的动态库,客户可选择性的拆卸和裁剪所使用的第三方库,充分配置编译选项和功能裁剪,只打包必须的功能、单独抽离所需的模块2.SDK一定要开放使用第三方的SDK,最怕的是像个黑盒,过于封闭,想配置的参数无法配置,需要的状态也没有回调,直接导致产品经理给出的UI和交互方案无法实现。因此,SDK的开放性,越来越成为开发者选型的关键因素。那么,SDK如何做到尽可能的开放呢?凡可配置的参数,一律提供配置,比如:摄像头参数、编解码参数、美颜参数、混音参数等等凡可回调的数据,一律提供回调,比如:摄像头采集的视频帧、纹理ID,麦克风采集的音频帧等等凡运行过程中的状态,一律提供通知,比如:拍摄状态、转码进度、取消事件等等另外,还需要尽可能地跟SDK上下游厂商建立良好的合作关系,比如美颜、滤镜、人脸贴纸特效、大眼瘦脸等供应商,让客户可以随时快速接入和替换任意一家厂商,从而加快产品迭代和上线的速度。3.性能要好虽然随着时间的推移,手机的性能越来越强大,但是CPU居高不下、发热厉害、内存消耗大、运行速度慢的App终究还是会失去很多宝贵的用户,因此,无论是App本身,而是第三方SDK,性能永远是值得关注的重点。SDK如何做到更好的性能呢?其实就一条:充分地利用GPU,尽一切可能减少CPU消耗,对于短视频SDK的开发而已,具体来说有哪些值得关注的点呢?音视频编解码尽可能地使用硬编/硬解视频/图像的处理,尽可能使用OpenGL,包括:美颜、滤镜、水印、剪裁、旋转等等尽可能更高效地编写OpenGL代码,使用一些提高性能的特性,包括:VBO,VAO,FBO,PBO等等动态管理so,没有用到的不加载;动态管理内存,使用时再分配合并处理流程,各种音视频特效和处理,依次记录状态,待保存的时候,再调用算法处理4.UI和SDK逻辑要彻底的分离优秀的SDK,一定要尽可能避免把UI的界面和逻辑包含进去,不然SDK的使用者,很难满足产品经理的UI和交互设计要求,做出差异化的效果。那么,SDK如何做到与UI逻辑彻底地分离呢?需要充分分解每一个短视频的功能需求,搞清楚每一个需求的实现原理,哪部分是UI的,哪部分是核心的,前者写到DEMO上,而后者则写入SDK里面就拿短视频剪辑这个功能点来举个例子,下图所示是短视频的一个热点功能,对短视频截取中间某一段片段。仔细思考这个功能点,其实关键点在于:1.获取视频中的连续图像在列表中进行展示2.绘制左右游标,以确定剪辑的起始和结束的时间点3.读取视频文件,丢弃时间区间以外的视频帧,保留剩余视频帧属于UI的部分:1.用列表显示视频帧图像2.绘制左右游标,支持手势拖动3.根据视频的总时长和游标的位置,计算出起始和结束的时间点属于SDK的部分:1.提供视频的时长2.提供视频帧总数3.提供解码后的每一帧视频数据4.提供剪辑函数,参数为:起始和结束的时间戳5.完成剪辑处理,输出剪辑后的视频文件这样分离好了之后,再去编写SDK的接口和UI的demo代码,就非常清晰了。5.稳定可靠,有更好的可支持性优秀的App和SDK,首先一点就是要稳定可靠,因为没有人会喜欢经常崩溃的程序。不过,没有人敢说自己的程序是完美的,不会有任何BUG的,但是,具备良好的可支持性的产品,往往更容易受到亲赖。什么是可支持性?举个例子,就像家里买的某些品牌的洗衣机或者空调,在出故障的时候,液晶屏幕上会打出一些错误码,当你给售后打电话的时候,售后往往能够根据描述的信息以及错误代码很快地定位到问题或者给出临时的解决方案。如何让短视频SDK具有更好的可支持性呢?关键在于一套健全而规范的日志系统,可以有效提高技术支持和开发者排查问题的速度和效率,那么,设计这样一套完善的日志系统,有哪些关键点呢?支持配置SDK的输出日志级别,如:ERROR,WARN,INFO,DEBUG,VERBOSESDK初始化的时候输出关键的排障信息,如:应用包名,SDK版本,设备机型,系统OS版本,关键配置等规范的日志格式,如:<SDKTAG>:<ModuleTAG>:<ClassTAG>:<Message>,可以快速方便地过滤出各个模块的运行状态健全的问题牌子手册/文档,让每一个错误码都有文档可依,开发者可以完成简单初步的问题分析6.小结总而言之,设计一款优秀并且口碑好的短视频SDK,并不是简
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮业沟通管理模板
- 保险业务年终报告模板
- 保险风险管理策略模板
- 专业基础-房地产经纪人《专业基础》深度自测卷2
- 房地产交易制度政策-《房地产基本制度与政策》全真模拟试卷2
- 二零二五年度轨道交通信号系统安装合同协议2篇
- 部编版2024-2025学年六年级上语文寒假作业(二)(有答案)
- 重大版小学英语六年级下册期末试卷(含答案含听力原文无听力音频)
- 二零二五版广东文化娱乐产业劳务派遣用工协议3篇
- 二零二五年标准个人养老保障贷款担保合同样本3篇
- 高二物理竞赛霍尔效应 课件
- 金融数学-(南京大学)
- 基于核心素养下的英语写作能力的培养策略
- 柴油发电机空载试运行和负荷试运行记录
- 现场安全文明施工考核评分表
- 亚什兰版胶衣操作指南
- 四年级上册数学教案 6.1口算除法 人教版
- DB32-T 3129-2016适合机械化作业的单体钢架塑料大棚 技术规范-(高清现行)
- 6.农业产值与增加值核算统计报表制度(2020年)
- 人工挖孔桩施工监测监控措施
- 供应商物料质量问题赔偿协议(终端)
评论
0/150
提交评论