Files
agent_test/VIDEO_EXPORT_README.md

4.8 KiB
Raw Permalink Blame History

视频导出功能使用说明

功能简介

当用户通过相似度搜索找到图片后,可以要求导出对应的视频片段。

支持的导出模式

  1. 前后各N分钟around

    • 用户说:"给我前后5分钟的视频"
    • 效果导出图片时间点前5分钟到后5分钟的视频
  2. 后N分钟after

    • 用户说:"导出后面5分钟"
    • 效果导出图片时间点到后5分钟的视频
  3. 前N分钟before

    • 用户说:"导出前面5分钟"
    • 效果导出图片时间点前5分钟到图片时间点的视频
  4. 整个视频total

    • 用户说:"我要整个视频"
    • 效果:导出完整的视频文件

使用流程

1. 搜索相似图片

用户:找一下猫和老鼠里汤姆追杰瑞的场景
AI调用 get_donghua_images
    找到以下相似图片:
    [图片1] 相似度: 0.95, 001   Puss Gets the Boot [1940]_05m23s_456.jpg
    [图片2] 相似度: 0.89, 002   The Midnight Snack [1941]_02m15s_123.jpg
    (发送图片给用户)

2. 确认图片并导出视频

用户第一张图不错给我前后5分钟的视频
AI✅ 视频已导出!
    📁 文件名001   Puss Gets the Boot [1940]_03m23s-07m23s.mp4
    📂 保存位置:./export_videos/001   Puss Gets the Boot [1940]_03m23s-07m23s.mp4
    ⏱️ 时间范围03m23s -> 07m23s
    🎬 时长04m00s

文件结构

/home/hasee/py/
├── video_cutter.py              # 视频切割导出模块
├── chat_bot.py                  # 聊天机器人(已添加视频导出工具)
├── weixin_sender.py             # 微信发送模块(已添加视频发送函数)
├── test_video_export.py         # 测试脚本
├── INSTALL_FFMPEG.md            # ffmpeg 安装说明
├── VIDEO_EXPORT_README.md       # 本文件
├── shipin/                      # 原始视频目录
│   ├── 001   Puss Gets the Boot [1940].avi
│   ├── 001   Puss Gets the Boot [1940]_frames/
│   └── ...
└── export_videos/               # 导出视频目录(自动创建)
    └── 001   Puss Gets the Boot [1940]_03m23s-07m23s.mp4

依赖要求

  1. Python 依赖

    • 标准库os, re, subprocess, pathlib
    • 无需额外安装
  2. 系统依赖

    • ffmpeg用于视频切割
    • ffprobe用于获取视频信息

安装 ffmpeg

请参考 INSTALL_FFMPEG.md 文件。

测试

运行测试脚本:

python test_video_export.py

测试内容:

  1. 图片名解析功能
  2. 视频文件查找功能
  3. 视频导出功能(需要 ffmpeg 和视频文件)

配置参数

video_cutter.py 中可以修改以下配置:

VIDEO_DIR = "./shipin"           # 原始视频目录
EXPORT_DIR = "./export_videos"   # 导出视频目录
VIDEO_EXTENSIONS = {'.avi', '.mp4', '.mkv', '.mov', '.flv', '.wmv', '.webm', '.ts', '.m4v'}

注意事项

  1. 视频格式

    • 输入支持多种视频格式avi, mp4, mkv 等)
    • 输出:统一为 MP4 格式(兼容性最好)
  2. 切割方式

    • 使用 -c copy 参数,直接复制视频流,不重新编码
    • 优点:速度快,质量无损
    • 缺点:切割点可能不精确(取决于关键帧位置)
  3. 存储空间

    • 导出的视频会占用额外空间
    • 建议定期清理 export_videos 目录
  4. 性能考虑

    • 大视频文件切割可能需要较长时间
    • 建议设置合理的超时时间当前为10分钟
  5. 微信发送

    • 当前实现:发送文字提示(视频已保存到服务器)
    • 后续扩展:可直接发送视频文件

扩展功能

1. 直接发送视频文件

修改 weixin_sender.py 中的 send_video 方法,实现视频文件上传和发送。

2. 自定义切割精度

添加参数控制切割精度(精确到帧或秒)。

3. 批量导出

支持一次导出多个视频片段。

4. 进度提示

在切割过程中发送进度提示给用户。

常见问题

Q1: 提示"无法解析图片名"

原因:图片名格式不符合要求 解决:确保图片名格式为 {视频名}_{分钟}m{秒}s_{毫秒}.jpg

Q2: 提示"未找到视频"

原因:视频文件不在 ./shipin 目录下 解决:检查视频文件路径,或修改 VIDEO_DIR 配置

Q3: 提示"无法获取视频时长"

原因ffmpeg/ffprobe 未安装或视频文件损坏 解决:安装 ffmpeg检查视频文件是否完整

Q4: 视频切割超时

原因:视频文件过大或系统性能不足 解决:减小切割范围,或增加超时时间

技术支持

如有问题,请检查:

  1. ffmpeg 是否正确安装
  2. 视频文件是否存在
  3. 图片名格式是否正确
  4. 磁盘空间是否充足