name: downloader_logic description: 视频/音频下载流程、多线程优化及 FFmpeg 封装
下载逻辑技能 (Downloader Logic)
核心流程
- 多线程下载: 使用 HTTP Range 请求进行分片下载。对于大文件,可采用固定步长(如 20MB)或平分文件大小的分段策略。
- 下载器隔离: 抽象
Downloader接口,支持原生实现及外部工具(如 Aria2)调用。 - 合并 (Merging): 使用 FFmpeg 对音视频轨道进行流式合并或后期重封装。
下载优化策略
- 分段重试: 针对下载失败的分段应有独立重试逻辑。
- 断点续传: 通过
.qdl记录下载状态,支持进程重启后恢复。 - 临时文件: 下载过程使用
.tmp或.vclip后缀,成功后清理或合并。
FFmpeg 调用规范
- 优先寻找系统环境变量中的
ffmpeg。 - 命令应简洁:
ffmpeg -i video.m4s -i audio.m4s -c copy output.mp4 -y。 - 处理标准错误流以获取进度反馈。
安全与健壮性
- 检查磁盘空间。
- 处理断点续传。
- 任务完成后清理临时分片文件。