短视频SDK架构设计,短视频APP开发目标首选
短视频 SDK 实践中主要做的一些事情,这其中最重要的就是短视频 SDK 的架构设计,包括架构设计理念、架构图、整体数据流程、模块架构设计等。今天小编就简单介绍一下短视频APP开发中,选择什么样的厂家,厂家SDK 架构设计理念。
第一点说到 SDK 的设计理念必定要提到命名规范,就跟腾讯的企业理念一样,他们的命名规范是统一、简单并且精炼的,比如他们将对外的核心类统一以 PLShortVideo 为前缀,在录制、编辑以及剪辑等模块的命名;参数配置类则均以 PLxxxSetting 为标准进行命名;接口回调类则均以 PLxxxListener 为标准命名。
第二点他们遵循的是高模块化、模块可插拔的一个理念;高模块化必须要保证每个类每个方法都「名副其实」并「各司其职」,这样才能编写更清晰的逻辑;高模块化同时可以促进高复用,减少重复代码;在 SDK 内的转码核心类,因为编辑、剪辑在最后保存的时候都需要一个解码并重新编码的过程,在这里,转码核心类可以达到一个高复用。
短视频 SDK 的包体划分,他们的可以清晰地看到每个包体的功能划分,不同的功能放在了不同的包体当中。他们并没有使用 ffmpeg 的软解软编,而是尽量使用 Android 和 iOS 的系统 API 进行硬编硬解,这样不仅减少了包体大小,而且速度要快很多,尽管在技术层面上会增加很多难度,会踩很多坑,但我们还是坚持选用这个方案。在引入第三方库时,他们也都是会经过充分配置和裁剪去严格控制包体的大小,这样一来,所有包体总和才能有现在「小而精」(1.5M)的成果。表中最后的内置滤镜模块,其中的滤镜资源可以选择性拷贝,SDK 内部会自动判断。这是关于模块设计方面的一些理念。
第三点是要和 UI 解耦,在从不同 App 中截图得到的画面,可以看出每一个App 都有各自的设计,作为一款短视频 SDK,是绝对不可以在 UI 方面限制客户发挥的。市面上有些短视频 SDK 将 UI 写死并作为 SDK 的一部分,这样对于客户在设计 UI 界面上来说,是非常不友好的;他们采用的是另一种方法,SDK 与 UI 进行解耦,客户的 UI 是可自定义的,整个 SDK 中接受 view 的地方只有一处:
接着是扩展性这一块,我们遵循高扩展,开放性的理念。在录制以及编辑过程中,都会有数据的回调并支持第三方库进行美颜,滤镜,贴纸,特效等功能。
最后是关于可配置参数方面的设计,除了常规参数,比如摄像头分辨率和帧率、麦克风采样率等可以进行配置之外,包括美颜等参数也都是可以进行配置的。
只有选择好科学合理的短视频SDK,才能配合好短视频APP开发出稳定的短视频系统,短视频APP开发结合短视频SDK打造出一套完整的短视频系统功能。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
了解何时使用RabbitMQ
人们如何做出决定?在日常生活中,情绪往往是第一动力。但当人们需要承担长期后果时,不可能纯靠冲动行事。聪明者只会在心里有数后才会靠直觉做出决定。 如今市场上有数十种发送消息的技术,无数ESB和近100家iPaaS供应商。当然,如何挑选就成为了一个问题。需要批发一堆技术吗?还是对症下药?那么,正确的工具应该是什么? 这篇文章正是想给那些“无头苍蝇”们一些简单直接的建议,就从如今最时尚最受欢迎的RabbitMQ开始吧!两者都有自己的起源故事,设计意图,闪光点,集成功能和开发人员的切身体验。起源揭示了本软件的整体设计意图o。重要的是,本文中的目的是比较两者围绕消息中介的重叠用例,而不是Kafka擅长的“事件存储/事件源”用例。 起源 RabbitMQ是一个“传统”消息中介,可以实现各种消息传递协议。它是首批实现大量功能,客户端库,开发工具和质量文档的开源消息中介之一。RabbitMQ最初是为实现开放式线路协议AMQP而开发的。虽然Java具有像JMS这样的消息传递标准,但它对于需要分布式消息传递的非Java应用程序没有帮助,因为它严重限制了集成场景,微服务。随着AMQP的出现,跨语言的灵活性成...
-
下一篇
Spring Cloud各个组件的配套使用
我们从整体上来看一下Spring Cloud各个组件如何来配套使用: 从上图可以看出Spring Cloud各个组件相互配合,合作支持了一套完整的微服务架构。 其中Eureka负责服务的注册与发现,很好将各服务连接起来Hystrix 负责监控服务之间的调用情况,连续多次失败进行熔断保护。Hystrix dashboard,Turbine 负责监控 Hystrix的熔断情况,并给予图形化的展示Spring Cloud Config 提供了统一的配置中心服务当配置文件发生变化的时候,Spring Cloud Bus 负责通知各服务去获取最新的配置信息所有对外的请求和服务,我们都通过Zuul来进行转发,起到API网关的作用最后我们使用Sleuth+Zipkin将所有的请求数据记录下来,方便我们进行后续分析Spring Cloud从设计之初就考虑了绝大多数互联网公司架构演化所需的功能,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。这些功能都是以插拔的形式提供出来,方便我们系统架构演进的过程中,可以合理的选择需要的组件进行集成,从而在架构演进的过程中会更加平滑、顺利。 微服务...
相关文章
文章评论
共有0条评论来说两句吧...