短视频APP开发主要依赖于短视频SDK架构设计

发布时间:2020-06-28 阅读量:45人次 来源:优匠科技(www.hshkj.com.cn)
短视频SDK架构中主要做的一些事情,这其中最重要的就是短视频SDK的架构设计,包括架构设计理念、架构图、整体数据流程、模块架构设计等。今天优匠科技就简单介绍一下短视频APP开发中,选择什么样的厂家,厂家SDK架构设计。


短视频SDK架构


Android短视频SDK的架构图,可以划分为四层。第一层为应用层(基于SDK开发的应用);第二层为SDK对外的接口层(均以PLShortVideo为前缀);第三层为核心层,主要是内部的一些模块(其中分Java和Native两块);第四层主要是Android系统层。


整体数据流程图;输入模块支持通过两种方式采集数据,一种是通过摄像头和麦克风采集数据,采集到的数据可以进行数据处理(美颜、人脸识别等),另一种则是通过文件导入并进行解码处理;编辑模块有着十分丰富的功能比如添加字幕、MV特效、添加背景音乐等等;编码模块主要支持H.264软编/硬编以及ACC软编/硬编;编码之后的数据会进行MP4封包,此后进入输出模块,可以存储到本地也可以使用HTTP进行上传。


录制模块的重点在于帧数据获取,除了可以通过摄像头获取视频帧,还可以通过屏幕录制获取视频帧,而音频帧数据主要还是通过麦克风进行获取;虚线部分的Filter模块主要实现了内置美颜/滤镜功能,另外因为有纹理和YUV数据的CallBack回调机制,所以也支持第三方库的美颜、滤镜、特效等功能;处理后的数据会经过OpenGL进行裁剪,缩放,旋转等操作,这些工作虽然可以由CPU来进行,但是会比较耗时,利用GPU是更明智的选择;最后得到纹理后,会被分成两路,一路渲染显示,另一路进行编码封装,这两个线程共享同一个纹理,这样的处理大大减少了资源的占用,提高了SDK的工作效率。


首先需要导入一个视频文件(使用短视频SDK拍摄或者从外部导入的视频文件),解包之后会得到相应的帧数据,接着分别通过音视频解码器得到PCM和纹理,然后把它们送进编辑引擎,在这里面可以进行各种各样的处理(水印、文字特效、背景音乐、多音频混音等)数据经过编辑之后,与录制相同会分两路,其中一路进行播放渲染,另一路会进行转码保存。


通过摄像头采集的数据无需解码,而MV视频文件的帧数据则需要解码后才可以进行处理。SurfaceTexture的主要作用是将解码后的数据帧进行回调通知你可以在OpenGL线程中更新纹理了,这个通知可以是多线程同时进行的操作,所以在帧回调时一定要对其进行上锁,防止出现MV画面之间不同步的问题。更新之后得到相应的纹理,将其进行混合就能得出最后的MV特效图。


日志系统主要是为了方便排障,快速定位问题以及调试问题,我们会将SDK版本、设备机型、系统版本,关键配置等一一进行输出,以方便用户根据这些信息进行排障。


只有选择好科学合理的短视频SDK架构,才能配合好短视频APP开发出稳定的短视频系统,短视频APP开发结合短视频SDK架构打造出一套完整的短视频系统功能。


————————————————


延伸阅读:


“广州优匠科技”是一家由经验丰富的技术设计开发团队创办的软件外包公司。专注于小程序、公众号、APP、软件系统等相关技术的定制与开发。


优匠科技深耕在互联⽹服务领域多年,有着几百多家的成功案例经验与资深的专业技术团队,能够帮助企业解决很多技术上的难题。


公司多年来一直都是用“匠心精神”去做好技术和产品服务。如有兴趣合作或是产品开发需求的朋友,欢迎前来咨询了解!!

填写您的服务需求获取项目报价。

*请认真填写需求信息,我们会在24小时内与您联系。

© Copyright 2017- 广州优匠科技有限公司 粤ICP备18032239号

与我们取得联系
展开