2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

  • 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:0312946
用户头像

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

关注

评论

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

二叉树的先序中序后序递归实现

Kenn

算法 递归

“IPO上市扒层皮”,以阿里巴巴为例看看公开了什么 | 如何读IPO招股书(3-b)

赵新龙

阿里巴巴 IPO 招股说明书

JCJC错别字检测JS接口新增CORS跨域支持

田春峰-JCJC错别字检测

Harbor和Dragonfly双剑合璧 打造容器镜像运维新模式

亨利笔记

容器 k8s Harbor dragonfly 镜像

判断链表是否有环

Kenn

算法 链表 双指针 Brent

我们是时候降低对完全自动驾驶的期望了

赵钰莹

自动驾驶 AI

不知不觉,写了10000字了

小天同学

写作 个人感想 思辨

批注MYSQL开发规范,助你了解其背后的“道”

三石

数据库规范 规范背后的原理 白话规范

祝这些不要脸的王八蛋同行家里着火

二爷

运维 Harbor 镜像仓库的法宝:Operator

亨利笔记

Kubernetes 容器 k8s Harbor operator

浅谈行业软件

孙苏勇

软件 思考 转型

像产品设计一样思考、像程序运行一样执行

水色

曾国藩的人生“六戒”

霍太稳@极客邦科技

身心健康 个人成长 心理学

“IPO上市扒层皮”,以阿里巴巴为例看看公开了什么 | 如何读IPO招股书(3-a)

赵新龙

阿里巴巴 IPO 招股说明书

我不是怕表错态,而是怕我会不自觉地捍卫它

池建强

个人成长

哪儿有真实靠谱的数据,说谎话必须负责的那种?| IPO招股说明书(1)

赵新龙

阿里巴巴 IPO 旷视科技 数据

死磕Java并发编程(4):happens-before是什么?JMM最最核心的概念,看完你就懂了

Seven七哥

Java Java并发 happens-before JMM

如何读IPO招股说明书(2)到哪儿下载招股书?

赵新龙

IPO 上市 招股说明书

Nginx学习

陈雷雷

nginx

演讲的秘诀

伯薇

个人成长 演讲 追求极致 完美主义

“WHY-HOW-WHAT”这个被誉为伟大的领袖如何激励行动的黄金圈法则,非常值得大家学一学!

数列科技杨德华

思维方式

OpenCV 在 Android 上的应用

fengzhizi715

android OpenCV 计算机视觉

程序员陪娃漫画系列——吃饭

孙苏勇

程序员 生活 陪伴 漫画

迷茫时,想想能为这个世界做些什么就好了

霍太稳@极客邦科技

身心健康 个人成长 团队协作

“消灭你,与你无关”——阿里巴巴的风险 | 旧文重发

赵新龙

阿里巴巴 风险 蒋凡 IPO

ZGC都出来了,你还不懂G1?

大白给小白讲故事

G1 JVM

回"疫"录(4):见证历史

小天同学

疫情 回忆录 现实纪录 纪实

vSphere 7融合Kubernetes,构建现代化应用的平台

亨利笔记

Kubernetes 容器 云原生 k8s vSphere

如何避免把中台变成外包团队

松花皮蛋me

数据中台

二叉树先序中序后序的非递归实现

Kenn

算法

Golang 真的好用吗?

极客时间

编程语言 Go 语言

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