视频创作业务中,关于作者发文反馈的排障 SOP
在视频创作业务中,经常会收到作者发文反馈,可以归结为以下三种:
- 上传失败
- 发文失败
- 转码异常
在此做下记录,包括 问题描述、原因分析、解决方案
,方便后续建设体系化、自动化、可复用的排障方案,同时也可复用这套经验到其他视频发文业务。
# Q1: 上传失败
作者在上传视频过程中,提示上传失败,且重试上传后依然失败
# 原因分析
排查问题前首先需要了解 Web 的上传流程以及请求链路
Web 上传流程如下:
- 获取上传信息,包括上传域名和上传签名
- 初始化分片信息
- 分片上传
- 合并分片并上传存储服务
- 确认上传成功,生成唯一 ID(vid)
- 对于步骤 1 和 5,请求链路为:端 SDK -> 加速 CDN -> 源站服务
- 对于步骤 2 ~ 4,请求链路为:端 SDK -> 加速 CDN -> 中心/边缘节点 -> 存储服务
如果出现上传失败,可能的链路就这三种:
- 用户端:文件 IO 或者自身网络问题
- 网络链路:CDN 节点或者地区运营商线路问题,比如域名解析或建联失败、节点故障
- 服务端:IP 限流、非法请求(签名无效、参数缺失)、服务故障(网络、IO、崩溃)
# 解决方案
后台会自动收集上传错误信息(公司内部服务),可以根据错误码快速判断哪个环节出了哪种故障。
若未上报错误信息,则判定用户网络不通,提示用户 更换网络或关闭代理后重试
。
若收到错误信息,根据错误码判断出错的链路是在哪个环节:
- 如果是用户端,除了网络外还有 IO 问题,IO 问题通常是文件分片大小大于剩余内存,可以先检查分片策略是否合理,若不合理则及时调整并修复上线,否则提示用户
先清理内存再重试
- 如果是网络链路,说明内部的异常自动切换选路也失败了,需要指定用户下发特定可用的网络节点(接口控制),并提示用户
刷新页面后重试
。同时观察相应地区、域名及运营商的大盘数据是否波动,错误码是否集中,若是的话联系 CDN 同学处理。 - 如果是端问题,则分情况处理
- 如果是非法请求,说明是灰产用户,无需处理
- 如果是 IP 限流,说明命中风控,判定用户非灰产的情况下可以联系风控平台解除 IP 限制,并
提示用户重试
- 如果是服务故障,联系相关服务同学排查,修复后
提示用户重试
# Q2: 发文失败
作品完成上传,但在点击发布的时候提示发文失败
# 原因分析
一般是这两种情况:
- 用户账号问题,比如命中风控,或账号权限不足
- 发文服务端异常
# 解决方案
查询相关用户的发文失败日志
- 如果是风险账号,无需处理
- 如果是账号权限不足,则把
权限不足的具体描述透传用户
,比如 非万粉无法发一小时以上视频 - 如果是服务端异常,联系相关服务同学排查,修复后
提示用户重试
# Q3: 转码异常
作品发布后,视频在后台转码过程中出现异常。
转码的目的是将不同格式的视频统一转码成平台标准格式,并提供不同分辨率的资源
# 原因分析
作者的视频源文件存在问题,被转码服务拦截了,一般是这三种原因:
- 灰产恶意编辑视频源文件数据,比如修改文件头的视频时长,把长视频改成短时长想要绕过平台的一些审核流程
- 作者剪辑视频出现误操作,导致视频不符合平台规范,比如平均帧率低于阈值(10fps)、视频时间戳跳变过大
- 剪辑软件的问题,导出生成视频文件时出现 bug,比如文件头数据与实际数据不统一
# 解决方案
- 若作者未删除视频,可以在诊断平台(公司内部平台)上找到源文件,使用一键诊断分析原因
- 否则可以让作者提供视频源文件,在本地执行 FFmpeg 的 ffprobe 命令进行诊断
ffprobe test.mp4
1
得到诊断结果:
- 如果是恶意编辑,无需处理
- 如果是误操作,则
提示用户具体需要修改的地方
- 如果是剪辑软件问题,则
提示用户重新导出
编辑 (opens new window)
上次更新: 2024/09/01, 23:56:56