在B站缓存视频时,你是否遇到过各种错误代码,导致无法顺利下载心仪的视频?别担心,本文将为你详细解析B站缓存过程中常见的错误代码,并提供针对性的解决方案,让你的缓存之路畅通无阻。

一、鉴权失败(错误代码:未明确显示,但表现为“投稿鉴权失败,请检查网络”)
问题原因:鉴权失败通常是由于客户端未能成功完成身份令牌(OAuth Token)校验,可能由会话过期、多端登录冲突或本地凭证缓存异常引发。
解决方案:
1. 退出当前B站APP或网页端账号,关闭所有浏览器标签页及后台B站进程。
2. 重新打开B站应用或访问官网,使用手机号+密码方式完整登录,禁用扫码登录或第三方快捷登录。
3. 登录成功后,不立即投稿,先进入“创作中心”任意浏览一页,等待约15秒后再尝试上传或缓存视频。
二、转码失败(错误代码:-1001、-1003、-1007等)
问题原因:转码失败表明视频虽已上传至服务器,但后台无法完成标准化压制,主因在于源文件编码参数超出B站转码集群支持范围。
解决方案:
1. 确认视频封装格式为MP4或FLV,严禁直接上传WMV、AVI、MKV等非标准封装格式。
2. 使用FFmpeg命令行工具执行基础重封装(不重编码):
```
ffmpeg -i input.wmv -c:v copy -c:a aac -f mp4 output.mp4
```
3. 若原视频含WMV2/WMV3视频流或WMA音频流,必须进行全量转码:
```
ffmpeg -i input.wmv -c:v libx264 -crf 23 -preset fast -c:a aac -b:a 128k output.mp4
```
4. 导出后用VLC播放器验证output.mp4能否正常启播、拖动、静音切换,任一异常即不可投稿或缓存。
三、进度归零或卡顿(错误代码:未明确显示,但表现为进度条归零或长时间无响应)
问题原因:该现象指向客户端上传调度模块失效,通常由本地临时目录权限异常、DNS解析污染或HTTP/2连接复用故障导致。
解决方案:
1. 清理缓存:
- Windows用户:进入`%LOCALAPPDATA%\Bilibili\BilibiliUpload\temp`,全选删除子文件夹及其中文件。
- macOS用户:前往`~/Library/Caches/Bilibili/BilibiliUpload/temp`,执行`rm -rf *`。
- 手机端:进入设置→应用管理→哔哩哔哩→存储→清除缓存,注意勿点“清除数据”。
2. 禁用IPv6:在路由器后台或本机网络设置中关闭IPv6协议栈,仅保留IPv4连接。
四、限频触发(错误代码:未明确显示,但表现为连续操作后无法缓存)
问题原因:B站对单账号单位时间内的投稿请求数实施动态阈值控制,连续高频操作将触发服务端熔断。
解决方案:
1. 停止所有投稿或缓存行为,关闭B站APP及网页端至少30分钟。
2. 切换设备环境:若原用手机投稿,改用PC网页端;若原用Chrome,改用Edge或Firefox,并启用无痕模式。
3. 修改User-Agent字符串:在浏览器开发者工具(F12)→Network选项卡中右键任意请求→Copy as cURL,粘贴至终端前,添加`-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"`参数后执行。
4. 投稿或缓存前,在创作中心页面停留满47秒,系统将据此重置当前会话的速率计数器。
五、元数据异常(错误代码:未明确显示,但表现为视频无法播放或缓存失败)
问题原因:部分剪辑软件导出时写入非法Creation Time、Invalid Duration或Non-monotonic PTS,会导致B站解析器提前终止流程。
解决方案:
1. 下载MediaInfo工具,打开视频文件,查看“General”页中“Duration”是否为有效数值(非N/A或indefinite)。
2. 在“Video”页确认“Frame rate mode”为Constant,“Scan type”为Progressive。
3. 若存在异常,使用mkvpropedit(MKVToolNix套件)清除问题字段:
```
mkvpropedit input.mp4 --edit info --set "duration=0"
```
4. 对MP4文件,可用mp4box -inter 500 input.mp4 重写moov原子位置,确保moov位于文件头部。
六、缓存视频合并失败(针对已缓存但无法播放的视频)
问题原因:B站采用HLS协议,将视频分割为多个小片段存储,普通用户无法直接合并。
解决方案:
1. 使用BilibiliCacheVideoMerge工具(仅限安卓用户):
- 安装并授予存储权限。
- 工具自动扫描B站缓存目录,解析entry.json索引文件。
- 选择需要合并的视频,配置输出格式(MP4、MKV等)和视频质量。
- 点击合并,等待完成即可。
2. 手动合并(高级用户):
- 使用FFmpeg命令行工具合并视频片段:
```
ffmpeg -f concat -i file_list.txt -c copy output.mp4
```
其中,file_list.txt为包含所有视频片段路径的文本文件,每行一个路径。
通过以上解决方案,你可以轻松应对B站缓存过程中遇到的各种错误代码,享受流畅的缓存体验。如果问题依旧存在,建议联系B站客服或查阅官方帮助文档获取更多帮助。