写点什么

开发仅用两天三个人,谈谈小咖秀背后的技术故事

  • 2015-10-18
  • 本文字数:2056 字

    阅读完需:约 7 分钟

小咖秀是一款非常火爆的移动视频拍摄应用,据爱范儿消息,它三个月的下载量就超过了1500 万。其CEO 官韩坤表示,小咖秀只有两个后端工程师和一个运维人员,开发周期仅有两天,看来在这之前团队已经有了足够的技术积累。记得前不久,另外一个爆红的移动应用足记在突然来了100 万用户之后就遇到了技术上的问题,这也是很多移动应用的短板。那小咖秀是如何做技术积累的?一个小团队是如何玩转如此大用户量的应用的?InfoQ 记者采访了小咖秀的CTO 汤力嘉。

InfoQ:能介绍下你们团队和产品目前的情况吗?

汤力嘉:炫一下科技成立于 2011 年,目前公司 150 人,一半是技术产品。公司旗下三款产品:秒拍、小咖秀、Vitamio 多媒体框架。秒拍是微博官方的短视频拍摄应用,是最大的短视频分享平台;小咖秀是时下最火的对嘴型拍摄应用,刚推出即占据 Apple Store 总榜第一半月之久;Vitamio 是多媒体一揽子解决方案,包括视频拍摄、美化、转码、播放等一系列 SDK,全球有 2 万款应用在使用,覆盖用户超过 5 亿。

InfoQ: 小咖秀和秒拍都是视频类的应用,针对这类的应用,你们的架构是怎么样的?

汤力嘉:上传流程:应用端通过拍摄或导入等方式生成视频,经过特效加工美化,生成 MP4 文件。通过全局调度系统,确定就近的上传点。应用进行视频上传后,服务器会进行截图等操作。最后视频经过审核后,完成整个上传流程。

播放流程:用户打开应用或 HTML 5 页面上进行视频播放。根据不同的操作系统,选择合适的视频格式。通过全局调度系统,选择就近的质量最好的播放 CDN 进行播放。

InfoQ: 小咖秀和秒拍这样的应用最大的挑战是什么?为了应对这些挑战,你们做了怎么样的调整?

汤力嘉:在视频量爆发之后,我们凸显的问题是:如何快速甄选出优质视频,对优质内容进行最大可能的传播。因此我们加入很多触发规则以及监控体系,随时发现热点视频并快速消费。从产品层面上,我们也配合这些内容推出 24 小时热榜栏目,得到很多用户的喜爱。同时由于用户群体的多样化,不同用户消费和渴望看到的内容有很大的差别,为此我们也组建了数据挖掘团队,通过大数据分析,给不同用户推荐不一样的内容,完全根据用户的行为作推荐,通过个性化推荐后,视频播放量上升 30% 以上,这也是我们接下来持续优化的方向。

由于视频数量越来越多,内容的审核压力也越来越大,除了人工审核以外,我们也使用了多方面的技术和手段,进行一些半自动化的审核加速,例如对违规视频的分析和预审,能把高危视频优先审核;另外根据用户行为筛选高风险视频,以及应用机器学习进行反垃圾评论过滤。

InfoQ:足记在爆红之后,服务器曾一度垮掉,小咖秀有遇到这样的访问压力吗?

汤力嘉:视频分享讲究的是即时性,尤其在微博等社交平台上分享尤为突出,视频在刚分享时,就已是最热的时候。例如一个明星大 V 的视频分享到微博上,瞬间就会吸引他的粉丝打开观看,这时往往很考验系统对突发的海量请求做出及时响应。因此在系统的设计之初,我们就一直按着大流量突发请求的方式去做。

系统的设计都是可以随时横向扩展的,所有逻辑请求都会考虑两级的缓存进行分流,确保数据库的轻负载。逻辑服务上,我们使用可弹性伸缩的云平台,以应对突发的流量。视频服务上,我们接入了多家 CDN 厂商进行服务,并且有实时追踪系统,能对出现故障的节点进行快速的屏蔽,同时对应每一个请求,都会选择出最优的节点进行服务(包括性价比、速度和可用性)。

InfoQ:手机端录制的视频会比较大,特别是一些像素高的手机,小咖秀客户端有没有对视频进行压缩处理,请问使用到了哪些技术。服务器端存储的时候是如何进行优化的?

汤力嘉:我们有强大的视频处理团队,多年来一直进行视频处理优化和应用,手机端的拍摄模块,我们使用了 Vitamio 拍摄 SDK(VCamera SDK)进行视频的拍摄和生成,视频大小会压缩到合适网络分享的程度,视频生成后,服务器端没有对视频进行二次处理,这样也加快了视频的准备过程,为视频快速传播祭奠基础。

在服务器端存储上,主要是需要考虑安全性,其次考虑视频存储的性能,尤其是视频读取的性能,便于视频的快速加载播放,所以目前的方案是在全国三地架设存储区,每一个视频都会同步三份,以确保视频的安全,同时便于就近快速访问。

InfoQ:视频特效这块,谈谈你们的解决方案?

汤力嘉:随着手机性能越来越好,手机对视频的处理逻辑已经越来越复杂了,我们的架构是把视频处理过程分成 source、filter、render 三个部分,source 是各种输入源,可以是文件,可以是摄像头,可以是网络流等,用于源视频输入到处理框架上;filter 是各种各样的不同特效,因此可以很方便的做扩展;render 是处理完的视频如何输出,可以是输出成文件,可以输出到屏幕上等等。这三部分组件可以通过脚本的方式,更换不一样的处理逻辑,实现不同的特效。

InfoQ:视频与音频的拼接,特效的处理,你们的解决方案是怎么样的?

汤力嘉:在视频的基本编辑处理方面,iOS 系统有对应的 API,可以直接使用,对于 Android 来说,我们使用 FFmpeg 框架进行基础视频编辑处理。特效的处理,我们主要使用 OpenGL 进行各种效果的叠加。

2015-10-18 02:0312806
用户头像

发布了 219 篇内容, 共 148.7 次阅读, 收获喜欢 195 次。

关注

评论

发布
暂无评论
发现更多内容

OpenHarmony源码的编译构建

坚果

OpenHarmony 9月月更

腾讯前端二面面试题(附答案)

beifeng1996

JavaScript 前端

文盘Rust -- 如何把配置文件打包到二进制文件里

京东科技开发者

rust 后端 文件 配置文件 spring-boot

MySQL架构与历史

阿柠xn

MySQL innodb 事务 sql 9月月更

『数据结构与算法』之时间复杂度与空间复杂度,看这一篇就够啦

喜羊羊

9月月更

关于AWS Aurora

Joseph295

关于 DynamoDB

Joseph295

近期对前端性能优化的总结

南城FE

性能优化 前端 性能 性能提升

美团前端二面高频面试题合集

loveX001

JavaScript 前端

频面试题合集

helloworld1024fd

JavaScript 前端

还能把浏览器当作 Web 服务器?骚操作,学废了~

掘金安东尼

前端 9月月更

基于阿里云GPU云服务器的AIACC助力UC搜索业务性能提效380%,每年节省数千万成本

阿里云弹性计算

神龙 加速引擎 TensorRT QTC

预约报名!阿里云EDA上云解决方案直播开启

阿里云弹性计算

EDA

「趣学前端」图片操作之“多媒体顶流”不羁的一生

叶一一

node.js 前端 9月月更

分布式事务解决思想以及实现方案

想要飞的猪

3PC 2PC注意事项 TCC 本地消息表

库调多了,都忘了最基础的概念《Mysql相关知识》

知识浅谈

MySQL 9月月更

社招前端二面面试题

夏天的味道123

JavaScript 前端

架构实战营模块七作业

zhihai.tu

Qt实现文本编辑器(二)

中国好公民st

c++ qt 9月月更

nft平台搭建:nft商城开发nft平台开发

开源直播系统源码

NFT 数字藏品 数字藏品开发 数字藏品系统

「趣学前端」“寓教于乐”的Node.js学习记录

叶一一

node.js 前端 9月月更

数据治理(十五):Ranger 管理 Hive 安全

Lansonli

数据治理 9月月更

社招前端必会面试题

bb_xiaxia1998

JavaScript 前端

手部骨骼跟踪能力,打造控制虚拟世界的手势密码

HarmonyOS SDK

Java常见名词解释

源字节1号

软件开发 后端开发

详解KubeEdge边缘网络项目EdgeMesh

华为云开发者联盟

云计算 云原生 后端 边缘计算 企业号九月金秋榜

打通JAVA与内核!一个ReentrantLock锁的实现原理

Java快了!

java;

Elasticsearch聚合学习之一:基本操作

程序员欣宸

Elastic Search 9月月更

SpringCloud Feign 远程调用(史上最详细讲解)

SpringCloud Fegin 9月月更

Python基础(三) | Python的组合数据类型

timerring

Python. 9月月更

专业低代码如何选型?看这12项关键能力

牛刀专业低代码

低代码 低代码开发 低代码平台

开发仅用两天三个人,谈谈小咖秀背后的技术故事_移动_小盖_InfoQ精选文章