UGC平台架构

端到端的视频UGC核心路径技术方案梳理

一、目标

以UC账号为基础,从视频上传、视频存储、视频加工、视频审核、视频管理、运营、下发及播放各环节出发,为视频UGC服务提供核心路径解决方案。
注:此核心流程只关注技术概要方案,不涉及业务细节

二、架构思考

1、客户端架构

2、服务端架构

三、概要技术方案

1、架构大图

2、核心链路

2.1、本地拍摄

  • 用户从业务入口进来(带上业务ID、业务提供视频服务接口地址),可以应用UC拍摄工具拍摄视频
  • 用户还可以利用UC拍摄工具进行本地视频加工(加滤镜、加贴纸等),各业务的加工素材可以从服务端获取

2.2、视频发布

  • 用户拍摄完成的视频可以选择存储云端
  • 客户端通过调用UMS系统完成用户视频的上传和云端存储
  • 客户端通过调用图片云平台完成用户视频封面图的上传和云端存储
  • 客户端向业务服务的 “视频服务接口” 上传标题、描述等相关信息
  • 业务服务在保存信息时,可以从图片平台获取图片URL地址,同时保存视频相关信息,并向UMS发起确认和授权请求
    • 确认:使得UMS可以进行视频加工处理(如转码、压水印、去水印等)
    • 授权:便于视频在播放时能得到合适的权限管控
  • 视频在存储成功之后且至少有一档视频可播时,会回调通知内容平台其存储的视频相关信息(视频Id、落地页地址等)
  • 业务在接收到可播放相关信息后,可以根据自身的条件,选择是否直接由内容平台送审,则视频内容会自动推送到审核平台,或者业务直接自已送审视频到审核平台
  • 如果选择自动送审,则视频在审核平台审核完成后,会将审核结果以消息方式同步到UMS和业务方

2.3、视频下发

内容平台将数据同步到聚合平台后,业务可以从聚合平台获取不同的数据聚合信息输出

2.4、视频播放

用户播放视频时,业务在App端可以应用VPS播放视频

3、核心路径各环节

3.1、账号管理

  • 直接使用UC账号体系:使用userId
  • 与账号系统的数据同步
    • 原则上只需要账号系统单向同步业务,业务不需要直接同步给账号系统
    • 涉及用户登录、用户禁封等信息的同步处理
  • 用户信息管理
    • 基础信息:userId、utdid(保留最近一次)、是否有效用户、创建时间、最后登录时间
    • 权益信息:与具体业务相关

3.2、用户本地视频拍摄加工环节

  • 用户进行本地视频拍摄加工处理时,其素材可以通过视频UGC服务获取
  • 拍摄素材统一模型,业务各自维护所需要的素材
  • 模型
    • 滤镜:content、image、type、create_time、modify_time、userId
    • 贴图:待定
    • 音乐:待定

3.3、用户视频上传、存储环节

视频上传流程:

  • 客户端发起上传流程,请求UMS获取视频上传Token
  • 客户端上传视频到OSS
  • 客户端上传图片到图片云服务,图片云返回imgid
  • 客户端将上传后得到的vid、imgid、标题及描述等meta信息提交给业务方
  • 业务方调用图片云服务,根据imgid获取图片url
  • 业务方将内容存储到内容平台,之后调用UMS确认内容及授权信息
  • UMS转码处理完后回调内容平台,内容平台通知业务方,上传完成

其中关键点:

  • 数据安全:图片上传到图片云服务,上传成功后只返回imgid,不返回图片url,在视频未审核通过前,图片和视频播放地址都不会被暴露,增加安全性,在视频未审核通过前,图片和视频播放地址都不会被暴露,增加安全性。
  • 上传失败重试:
    • 断点续传功能:如果因网络抖动等原因,上传中断,可以继续传输。
    • 分片上传功能:如果上传中断,会将上传分片信息及oss token保留在本地,下次继续传输时,从失败分片开始上传,避免重复上传。

3.4、用户视频管理

  • 用户管理视频需要处于登录态
  • 用户可以查看自已的视频列表,增改删自已的视频信息(已发布的视频无法修改)
  • 用户关注关系维护(看粉丝、关注的人)

3.5、用户播放视频

客户端:调用VPS接口传递 视频地址/视频ID 获取播放地址进行播放

  • 播放地址同样要考虑时效性和播放缓存问题
    • 播放地址提供失效时间参考
    • 客户端播放缓存要根据时效时间重新拉取新的播放地址
  • VPS不做鉴权,将鉴权下放给业务方,业务方理解数据
  • 播放时,请求增加参数,是否需要判断审核态,如不传,则根据业务预先配置判断
  • 视频权限管理,针对视频,只有授权的业务方才能播放
    • 业务方可以播放该业务方上传所有视频
    • 特定业务可将该业务上传视频向其他业务授权播放
  • 播放能力
    • 支持MP4播放、支持多档清晰度播放支持

H5播放器

播放逻辑与客户端一致,需使用雪球组提供的播放sdk(player sdk),该sdk无界面,播放界面需业务自行实现,sdk直接调取vps获取播放地址

3.6、视频审核

  • 视频上传后,业务需将视频meta信息存储到内容平台,之后向ums确认、授权视频,并传递相关信息,如cid。
  • UMS转码完成后通知内容平台,由内容平台统一送审,审核平台完成审核后回调内容平台
  • 内容平台将审核结果发送到MQ,业务和UMS监听相应MQ,根据cid筛选消息,获取审核结果

3.7、视频聚合下发

  • 聚合下发有2种场景
    • 业务自有特定场景的聚合下发:利用业务数据天然落地在内容平台的特性,且内容平台与聚合平台数据链路已打通,业务可以直接应用聚合平台能力实现特定业务需求的聚合下发需求
    • 外输渠道的聚合下发:同理,各业务可以利于聚合平台实现业务内容外输支持
  • 日志信息:统一写到WA系统,聚合平台会订阅WA系统MQ消息,实现日志回流
  • 接口方式:
    • 保持与XSS下发类似协议:json格式、无线保镖加密协议

3.8、分类管理及标签管理

  • 分类及标签采用统一管理的方式,使分类及标签规范化,后续可以进行跨业务的内容聚合。
  • 初步考虑使用xss的分类规则
  • 各业务可以选择使用的分类及标签范围

3.9、运营管理

涉及几类信息管理

  • UGC视频内容库管理:包括用户视频的CURD操作、视频上下架
  • 账号管理:用户封禁、
  • 频道管理
  • 圈子管理
  • 下发管理:视频封面、视频标题、下发预览、卡片样式
  • 用户关系管理
  • 素材管理

你可能感兴趣的:(UGC平台架构)