深度解析!短视频如何成为现象级产品

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

本文由 BestSDK 团队发布在腾讯云+社区

2016 年中国移动短视频用户数为 1.5 亿,今年预计会达到 2.4 亿,增长率高达 58.2%,可见短视频的热度在一直提升;近几年,短视频的生产模式在不断演进,从 UGC 到 PGC,再到最新的 MCN,内容的产能和质量均得到了巨大提升。

短视频发展史

?图 1

图 1 所示是短视频及直播的发展史,众所周知,2016 年是直播元年,在这期间诞生了很多直播平台,比如熊猫、映客、斗鱼等;而在 2017 年,短视频的火爆程度并不亚于直播,可能大家都以为短视频是从 2017 年开始火爆起来的,但其实早在 2015 年就已经诞生出快手、秒拍、美拍等短视频 App。

?图 2

图 2 所示是短视频在各个行业的综合应用。

研发短视频 App 的难点

前面介绍完有关短视频的历史以及发展趋势,下面着重介绍一下关于短视频开发需要的预备知识及难点:

  • 1、音视频领域固有门槛

深刻理解音视频编码格式 H.264 和 AAC 的编码细节;混音时如何将两个音频调整到一致的参数,使用什么样的算法去混合等等。

  • 2、图形图像、OpenGL 处理

摄像头预览数据,图像处理,音视频编解码都需要了解 RGB 和 YUV 色彩空间的数据格式,以及它们之间转换的方式等等。

  • 3、平台相关

要对相应平台的摄像头、麦克风、编解码、多媒体处理等 API 十分熟悉,否则它们的一些坑会耗费你大量时间。

  • 4、高级功能

视频编辑少不了特色和高级的功能,例如美颜,滤镜,MV 特效,倍数拍摄,文字特效等,每一个高级功能都对各方面技术提出很高的要求。

  • 5、系统版本,机型等兼容性问题

这算是一个老生常谈的问题,无论 iOS 还是 Android,机型和系统版本都越来越多了,必然会带来兼容性问题。比如会有小部分 Android 机型编码的视频在 iOS 端播放不了的情况,类似这种兼容性问题都是需要进行解决的。

  • 6、性能以及资源占用的优化

移动应用的计算资源受到相应系统的严格制约,在进行音视频采集,渲染,编码等复杂计算的同时,还要确保应用有足够的资源流畅运行,这要求开发人员有丰富的调优能力。

短视频 SDK 架构设计

接下来介绍一下我们团队在进行短视频 SDK 实践中主要做的一些事情,这其中最重要的就是短视频 SDK 的架构设计,包括架构设计理念、架构图、整体数据流程、模块架构设计等。

  • 1、SDK 架构设计理念

?图 3

说到 SDK 的设计理念必定要提到命名规范,就跟七牛的企业理念「简单.可信赖」一样,我们的命名规范是统一、简单并且精炼的,比如我们将对外的核心类统一以 PLShortVideo 为前缀,如图 3 所示分别是录制、编辑以及剪辑等模块的命名;参数配置类则均以 PLxxxSetting 为标准进行命名(图 4);接口回调类则均以 PLxxxListener 为标准命名。

?图 4

第二点我们遵循的是高模块化、模块可插拔的一个理念;高模块化必须要保证每个类每个方法都「名副其实」并「各司其职」,这样才能编写更清晰的逻辑;高模块化同时可以促进高复用,减少重复代码;图 5 所示是 SDK 内的转码核心类,因为编辑、剪辑在最后保存的时候都需要一个解码并重新编码的过程,在这里,转码核心类可以达到一个高复用。

?图 5

图 6?

图 6 所示为短视频 SDK 的包体划分,从表中我们可以清晰地看到每个包体的功能划分,不同的功能放在了不同的包体当中。我们并没有使用 ffmpeg 的软解软编,而是尽量使用 Android 和 iOS 的系统 API 进行硬编硬解,这样不仅减少了包体大小,而且速度要快很多,尽管在技术层面上会增加很多难度,会踩很多坑,但我们还是坚持选用这个方案。在引入第三方库时,我们也都是会经过充分配置和裁剪去严格控制包体的大小,这样一来,所有包体总和才能有现在「小而精」(1.5M)的成果。表中最后的内置滤镜模块,其中的滤镜资源可以选择性拷贝,SDK 内部会自动判断。这是关于模块设计方面的一些理念。

?图 7

第三点是要和 UI 解耦,如图 7 所示,是从不同 App 中截图得到的画面,可以看出每一个App 都有各自的设计,作为一款短视频 SDK,是绝对不可以在 UI 方面限制客户发挥的。市面上有些短视频 SDK 将 UI 写死并作为 SDK 的一部分,这样对于客户在设计 UI 界面上来说,是非常不友好的;我们采用的是另一种方法,SDK 与 UI 进行解耦,客户的 UI 是可自定义的,整个 SDK 中接受 view 的地方只有一处:

接着是扩展性这一块,我们遵循高扩展,开放性的理念。在录制以及编辑过程中,都会有数据的回调并支持第三方库进行美颜,滤镜,贴纸,特效等功能。

  • 2、短视频SDK架构

图 8?

图 8 所示为 Android 短视频 SDK 的架构图,可以划分为四层。第一层为应用层;第二层为 SDK 对外的接口层;第三层为核心层,主要是内部的一些模块;第四层主要是 Android 系统层。

?图 9

图 9 所示是整体数据流程图;输入模块支持通过两种方式采集数据,一种是通过摄像头和麦克风采集数据,采集到的数据可以进行数据处理,另一种则是通过文件导入并进行解码处理;编辑模块有着十分丰富的功能比如添加字幕、MV 特效、添加背景音乐等等;编码模块主要支持 H.264 软编/硬编以及 ACC 软编/硬编。下面将着重就几个模块进行介绍。

?图 10

图 10 为录制模块的示意图。录制模块的重点在于帧数据获取,除了可以通过摄像头获取视频帧,还可以通过屏幕录制获取视频帧,而音频帧数据主要还是通过麦克风进行获取;虚线部分的 Filter 模块主要实现了内置美颜/滤镜功能,另外因为有纹理和 YUV 数据的 CallBack 回调机制,所以也支持第三方库的美颜、滤镜、特效等功能;处理后的数据会经过 OpenGL 进行裁剪,缩放,旋转等操作,这些工作虽然可以由 CPU 来进行,但是会比较耗时,利用 GPU 是更明智的选择。

?图 11

图 11 所示为编辑模块的示意图。首先需要导入一个视频文件,解包之后会得到相应的帧数据,接着分别通过音视频解码器得到 PCM 和纹理,然后把它们送进编辑引擎,在这里面可以进行各种各样的处理数据经过编辑之后,与录制相同会分两路,其中一路进行播放渲染,另一路会进行转码保存。

?图 12

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

图 13?

图 13 为日志系统的模块图。日志系统主要是为了方便排障,快速定位问题以及调试问题,我们会将 SDK 版本、设备机型、系统版本,关键配置等一一进行输出,以方便用户根据这些信息进行排障。当然,研发过程不可能一帆风顺,总要踩过一些坑才能使整个 SDK 更加完善。下面就列举一些我们踩过的坑以及排查的过程。

部分视频剪辑出现花屏

我们通过对客户提供的一些样本视频进行分析后,发现出问题的都是带有双向引用 B 帧的 High profile 视频,如图 14 所示,B 帧(3)位于中间,其引用左右两边的 P 帧(2、4)在显示时是这样的顺序,但是在进行帧存储以及视频解码时,B 帧(3)是在这 2 个 P 帧其后的。

最后给大家分享一句话,也算是对自己的一个鼓励,就是「Fake it until you make it」。对于我们客户端团队,要将 SDK 打磨到最完美的状态我们进行了很多尝试,也历经了很多血泪,最后才有今天的成果,我们需要努力的地方也还有很多,也会再接再厉,谢谢大家!

问答

短视频的发展前景以及未来发展方向?

更多与短视频相关的精华问答,尽在腾讯云+社区!

相关阅读

快手为何能成为现象级产品?还原2017年最火短视频背后的商业逻辑

开发手游和视频直播,这几款SDK必备

数据告诉你,抖音是怎么在半年之内逆袭的

此文已由作者授权腾讯云+社区发布,转载请注明文章出处

原文链接:https://cloud.tencent.com/developer/article/1049278

 海量技术实践经验,尽在云加社区! https://cloud.tencent.com/developer

原文地址:https://www.cnblogs.com/qcloud1001/p/8662884.html

时间: 2024-10-18 20:30:38

深度解析!短视频如何成为现象级产品的相关文章

CDN高级技术专家周哲: 深度剖析短视频分发过程中的用户体验优化技术点

2018深圳云栖大会已经圆满落幕,在飞天技术汇-弹性计算.网络和CDN专场中,阿里云CDN高级技术专家周哲为我们带来了<海量短视频极速分发>的主题分享,带领我们从视频内容采集.上传.存储和分发的角度介绍整体方案,并且重点讲解短视频加速的注意事项和用户体验优化要点. 讲解从三个部分展开:短视频应用场景,阿里云短视频解决方案,阿里云对短视频用户体验优化的相关优化. 短视频应用场景 短视频比图片和文字包含更多的信息,在移动互联网普及的今天,短视频应用场景非常广泛. 一. 社群分享场景用户可以录制视频

CDN高级技术专家周哲:深度剖析短视频分发过程中的用户体验优化技术点

深圳云栖大会已经圆满落幕,在3月29日飞天技术汇-弹性计算.网络和CDN专场中,阿里云CDN高级技术专家周哲为我们带来了<海量短视频极速分发>的主题分享,带领我们从视频内容采集.上传.存储和分发的角度介绍整体方案,并且重点讲解短视频加速的注意事项和用户体验优化要点. 讲解从三个部分展开:短视频应用场景.阿里云短视频解决方案.阿里云对短视频用户体验的相关优化. 短视频应用场景 短视频比图片和文字包含更多的信息,在移动互联网普及的今天,短视频应用场景非常广泛. 一. 社群分享场景 用户可以录制视频

各大短视频平台掀起亿级补贴大战,资本家们密集进场,短视频行业异常火爆

继快手.火山小视频等短视频程序火爆后,源源不断的程序揭竿而起,短视频行业更是火爆异常,吸引了越来越多的中小型创业企业家加入这个行业,使得这个行业更是火上加火. 短视频则处于上行的风口上.相对直播的用户规模,短视频还处于迅速增长的人口红利期,增长曲线还远未到顶.短视频在定位上很好的开放了对普通大众的门槛,不看颜值如何,短视频为人人都可以是主角成为了很好的舞台,在这个舞台上每个人都可以尽力表现,因此短视频平台在用户看来,无论是参与感还是认同感,都是更好的展现自我的平台.从这个角度来看, 短视频更吸引

出新,新浪新闻客户端“精读”成“现象级”产品

女司机事件再一次让人们重新审视移动新闻平台价值,据不完全统计,事件当天发生在新浪新闻客户端就有近百万的分享和超百万的评论,这个数值,对于一个移动新闻客户端来说,确实惊人.巨大的数字背后,是新浪新闻客户端的"精读"栏目的综合阅读模式推动的结果,新闻在这里不只是一篇文字,而是事件与观点的传递,声像与文字的结合. 据介绍,"精读"是新浪移动首创产品,含文字报道但又不仅限于文字,视频.相关链接等内容俱全,更具特色的是与社交平台(微博)的打通,让新闻在评论中价值飙升.在&qu

“匿名聊聊”作者谈如何打造现象级爆款小程序

前段时间小程序“匿名聊聊”刷爆了朋友圈,可惜后面被屏蔽了.作为第一款现象级呈现爆炸级传播的小程序它是如何做到的呢?我们就跟随“匿名聊聊”作者来聊聊如何打造现象级爆款小程序. 作为第一款现象级呈现爆炸级传播的小程序,“匿名聊聊”背后的公司:朋友印象是一家深耕社交产品的公司,创始人栗浩洋和魏志成两人都公开表示,这次的“匿名聊聊”是扔出的一个问路的石子,真正的生化武器和核弹还在后面. 被寄予厚望的小程序自今年1月上线以来,一直表现的冷冷清清.流量入口没有优先级的倾斜,用户获取提供的也是模糊搜索,即便微

短视频繁荣的背后是遍体鳞伤?

近年来,短视频风口渐盛,引来腾讯.阿里.微博.今日头条等众多巨头投身红海.为了能在短视频领域中拥有绝对的话语权,一场巨头短视频争夺大战就这样轰轰烈烈地展开了. 头条系短视频点燃短视频大战,但受限于格局 早在2015年的时候,今日头条就进行"千人万元"的短视频扶持计划了,而在去年9月份,今日头条再次宣布投入10亿元来对"头条号"进行短视频内容的扶持,今年5月16日,今日头条又宣布投入10亿的资金来扶持火山小视频,由此可看出,自始至终,今日头条都是通过补贴来扶持短视频内

muse(musical.ly)音乐短视频去水印解析下载方法

有人说,短视频已经进入了"抖"的时代,上上篇文章,我们介绍了抖音短视频去水印下载方法,今天,我们接着分享下音乐短视频鼻祖musical.ly的视频下载方法. musical.ly在中国叫muse,目前大部分用户是海外用户,又有人说,muse有可能是目前第一款不用FQ就连通全世界的APP. 哈哈,我们还是说下重点,其实方法很简单: 1. 去muse app(在外国叫musical.ly app)里点开某个视频,点击右下角分享按钮,在分享弹框中点击复制链接或通过分享到微信QQ等获取分享链接

从手淘搜索到优酷短视频,阿里巴巴是如何在搜索推荐领域下应用深度学习的?

摘要:深度学习是一个既可以处理特征.学习特征又可以实现最后的排序打分的一套整体解决方案,借助深度学习的解决方案,搜索推荐的工作方式将发生巨大的变化.想知道阿里巴巴如何将在搜索推荐领域下应用深度学习技术的吗?想知道手淘和优酷搜索结果的个性化又是如何实现的吗?本文不容错过! 本节视频地址:http://click.aliyun.com/m/48161/ PDF下载:http://click.aliyun.com/m/49207/ 演讲嘉宾简介: 孙修宇(花名:翎翀),阿里巴巴机器智能技术实验室算法专

视频解析方案:解析各大直播平台、短视频

有时候我们需要解析出短视频的真实地址,引用到我们的网站中. 下面给大家推荐一些解析网站,请大家认真看我的下面: 解析抖音真实地址网站:http://aliqb.cn/ 解析各大平台直播和短视频网站1:http://new.flvurl.cn/ 解析各大平台直播和短视频网站2:https://api.berryapi.net/docs.html 有用就给我点个赞评论下吧,各位弟弟们 原文地址:https://www.cnblogs.com/sixgodbiao/p/11980160.html