这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
视频上传
推荐流的上游是内容供给。用户能刷到什么,首先取决于创作者上传的视频能否稳定进入系统。
视频上传比普通文件更复杂,因为它通常需要转码、截图、审核和多清晰度处理。
状态流转
一个视频从上传到可推荐,可以经历这些状态:
uploading -> uploaded -> transcoding -> auditing -> published -> recommendable
-> rejected
状态要写入元数据表,推荐系统只消费 recommendable 的内容。还在审核或转码的视频不能进入推荐池。
上传与转码
视频文件大,上传通常采用分片上传到对象存储。上传完成后触发异步转码任务:
- 生成多码率版本,例如 360p、720p、1080p。
- 生成封面和首帧预览。
- 提取时长、分辨率、码率、文件大小。
- 生成播放清单,例如 HLS 或 DASH。
转码是耗时任务,不能阻塞上传接口。用户看到的状态应该是“处理中”,处理完成后再发布。
内容审核
视频进入推荐池前需要审核:
- 机器审核:涉黄、暴恐、版权、低质画面。
- 文本审核:标题、描述、标签。
- 人工复核:机器不确定或高风险内容。
审核结果不只是通过或拒绝,还会影响推荐权重。例如边界内容可以发布但不进推荐,只允许主页访问。
内容特征
推荐系统需要内容特征:
- 作者、标签、分类、语言、地域。
- 视频时长、清晰度、封面质量。
- 图像、音频、文本 embedding。
- 审核风险等级。
这些特征会进入召回和排序。内容服务不仅要保存视频,还要把可推荐特征同步给推荐系统。
入库与发布
发布时要保证三件事:
- 播放资源已经可访问。
- 审核状态允许推荐。
- 内容特征已经准备好或有降级默认值。
内容供给链路做好后,下一步要保证用户刷到视频时能快速播放。
