Files
sentinel-home-ai/fam-core/config/config.yaml.example
ericwyuan 203b076783 feat: NAS端FFmpeg预压缩 — 根治360MB视频跨境上传超时
根因诊断(网络问题,非代码逻辑):
- NAS(中国移动) → Oracle(美国Phoenix) 跨境上行带宽实测仅 0.5-0.9MB/s 且波动大
- 下载方向 3.0MB/s(非对称,典型国际出口拥塞)
- Tailscale P2P: ping 可通(224ms)但持续数据流被阻断(0 B/s, 127s超时)
- 360MB 原始视频上传需 10-20min,任何大分块都会超时

NAS dispatcher:
- 新增 _compress_video: 480p/CRF28/veryfast,静态监控场景实测 ~36x 压缩比
  (360MB → ~12MB,上传时间 20min → ~30s)
- ffmpeg 自动探测: CodecPack ffmpeg41(带libx264) > /usr/local/bin > PATH
  (Synology 系统 ffmpeg 被裁剪,无 h264 编解码)
- scale 两级滤镜: force_original_aspect_ratio=decrease + trunc(iw/2)*2
  (h264 要求偶数尺寸,853x480 会报错)
- 压缩缓存 /tmp/fam_compressed/task_{id}/,源文件未变则重试复用,TTL 24h
- 压缩完成后重置 PROCESSING 状态(重置 stale 回收计时基准)
- 压缩失败回退原始文件分块上传
- _query_uploaded_chunks 失败时记录日志(原静默失败导致全量重传无感知)

Edge api_gateway:
- fix: total_chunks 变更清理旧分块后同步重写 meta.json
  (原 bug: meta.json 不更新导致每块上传都触发清理,删除同批新分块死循环)

config:
- stale_timeout 600→1800(覆盖压缩+上传+Edge队列积压总时长)
- 新增 ffmpeg_path / compress_timeout 配置项
2026-08-20 14:59:50 +08:00

39 lines
1.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# FAM-Core 配置文件 (NAS 端)
# 复制此文件为 config.yaml 并修改实际值
server:
host: "0.0.0.0"
port: 8000
database:
host: "127.0.0.1"
port: 3306
user: "root"
password: ""
database: "sentinel_home_ai"
scheduler:
scan_interval: 60 # 扫描间隔(秒)
video_dir: "/volume1/surveillance" # 视频录制目录
video_extensions: [".mp4", ".mkv", ".avi"]
file_stable_seconds: 60 # 文件稳定判定秒数
camera_name: "默认摄像头"
dispatcher:
poll_interval: 30 # 轮询间隔(秒)
edge_url: "http://100.x.x.20:5000/api/edge/video/enqueue" # 异步队列端点上传入队Poller 拉取结果)
max_retries: 5 # 文件级重试次数分块级重试另计每块3次
stale_timeout: 1800 # PROCESSING 僵尸回收(秒),需大于压缩+上传+Edge队列积压总时长
# ffmpeg_path: "/var/packages/CodecPack/target/bin/ffmpeg41" # 可选默认自动探测Synology 需 CodecPack 版,系统版无 h264 编码)
compress_timeout: 3600 # 单个视频预压缩超时(秒)
video_server:
base_url: "http://100.x.x.10:8000/media"
token: "your-secret-token-here" # 视频访问 token
video_dir: "/volume1/surveillance"
chat_handler:
ollama_url: "http://100.x.x.20:11434/api/generate"
model_name: "llava-phi3"
timeout: 120