| 
				
					 | 
			3 weken geleden | |
|---|---|---|
| build | 3 weken geleden | |
| include | 3 weken geleden | |
| src | 3 weken geleden | |
| .dockerignore | 3 weken geleden | |
| API_DOCUMENTATION.md | 3 weken geleden | |
| CMakeLists.txt | 3 weken geleden | |
| CMakePresets.json | 1 maand geleden | |
| DOCKER_FILES_README.md | 3 weken geleden | |
| DOCKER_README.md | 3 weken geleden | |
| Dockerfile | 3 weken geleden | |
| FEATURES_SUMMARY.md | 3 weken geleden | |
| HTTP_API_DOC.md | 3 weken geleden | |
| README.md | 3 weken geleden | |
| VIDEO_PLAYER_GUIDE.md | 3 weken geleden | |
| autocmak.py | 1 maand geleden | |
| config.json | 3 weken geleden | |
| docker-compose.yml | 3 weken geleden | |
| docker-network-test.sh | 3 weken geleden | |
| docker-start.sh | 3 weken geleden | |
| docker-stop.sh | 3 weken geleden | |
| http_server_main.cpp | 3 weken geleden | |
| main.cpp | 3 weken geleden | |
| network-test.sh | 3 weken geleden | |
| test_http_api.sh | 3 weken geleden | |
| test_report.sh | 1 maand geleden | |
| test_report_generation.cpp | 1 maand geleden | |
| video_manager.html | 3 weken geleden | |
| video_test.html | 3 weken geleden | 
本项目提供了一套完整的RTSP视频流拉取和管理解决方案,包括:
cd /Users/wenhongquan/CLionProjects/jtjai_media
# 编译RTSP拉取程序
cmake --build cmake-build-debug --target jtjai_media
# 编译HTTP服务器
cmake --build cmake-build-debug --target jtjai_http_server
# 使用默认配置文件
./cmake-build-debug/jtjai_media
# 或指定配置文件
./cmake-build-debug/jtjai_media /path/to/config.json
输出目录结构:
output/
├── 20251010_160000/        # 第1轮拉取(时间戳命名)
│   ├── test_stream1.mp4
│   ├── test_stream2.mp4
│   ├── rtsp_report.json
│   ├── report.txt
│   └── streams.csv
├── 20251010_170000/        # 第2轮拉取
│   ├── test_stream1.mp4
│   ├── test_stream2.mp4
│   ├── rtsp_report.json
│   ├── report.txt
│   └── streams.csv
└── ...
# 使用默认参数(目录:./output,端口:8080)
./cmake-build-debug/jtjai_http_server
# 指定输出目录
./cmake-build-debug/jtjai_http_server ./output
# 指定输出目录和端口
./cmake-build-debug/jtjai_http_server ./output 8080
服务器启动后会显示:
========================================
RTSP视频流管理HTTP服务器
========================================
输出目录: ./output
监听端口: 8080
HTTP服务器已启动,监听端口: 8080
API端点:
  GET  /api/videos - 列出所有视频
  GET  /api/timestamps - 列出所有时间戳目录
  GET  /api/videos/{timestamp} - 列出指定时间戳目录的视频
  DELETE /api/video?path={path} - 删除指定视频文件
  DELETE /api/timestamp/{timestamp} - 删除指定时间戳目录及其所有文件
HTTP服务器已启动,按 Ctrl+C 停止服务器
video_manager.html 文件http://localhost:8080 并加载数据主要功能:
详细的API文档请参考:HTTP_API_DOC.md
curl http://localhost:8080/api/timestamps
curl http://localhost:8080/api/videos
curl http://localhost:8080/api/videos/20251010_160000
curl -X DELETE "http://localhost:8080/api/video?path=./output/20251010_160000/test_stream1.mp4"
curl -X DELETE http://localhost:8080/api/timestamp/20251010_160000
./test_http_api.sh
该脚本会自动测试所有API端点并显示结果。
RTSP拉取程序使用JSON配置文件(默认:config.json):
{
  "global_config": {
    "total_poll_duration_seconds": 60,    // 每轮总时长
    "max_concurrent_streams": 2,          // 最大并发数
    "output_directory": "./output",       // 基础输出目录
    "report_filename": "rtsp_report.json",
    "connection_timeout_seconds": 3,
    "read_timeout_seconds": 5,
    "poll_cycles": 3,                     // 轮询次数(-1为无限)
    "cycle_interval_seconds": 30          // 轮询间隔
  },
  "streams": [
    {
      "rtsp_url": "rtsp://...",
      "duration_seconds": 15,
      "weight": 1.0,
      "output_filename": "test_stream1.mp4"
    }
  ]
}
jtjai_media/
├── include/
│   ├── config.h                 # 配置管理
│   ├── rtsp_client.h           # RTSP客户端
│   ├── scheduler.h             # 任务调度器
│   ├── reporter.h              # 报告生成器
│   ├── concurrent_calculator.h # 并发计算器
│   └── http_server.h           # HTTP服务器
├── src/
│   ├── config.cpp
│   ├── rtsp_client.cpp
│   ├── scheduler.cpp
│   ├── reporter.cpp
│   ├── concurrent_calculator.cpp
│   └── http_server.cpp
├── main.cpp                    # RTSP拉取主程序
├── http_server_main.cpp        # HTTP服务器主程序
├── video_manager.html          # Web管理界面
├── config.json                 # 配置文件
├── HTTP_API_DOC.md            # API文档
├── test_http_api.sh           # API测试脚本
└── README.md                  # 本文件
拉取视频流
jtjai_media 程序管理视频文件
jtjai_http_server 服务器监控和维护
A: 启动时指定端口参数:./jtjai_http_server ./output 9090
A: 时间戳目录名包含日期时间(YYYYMMDD_HHMMSS),可以通过API按时间戳查询
A: 不可以,删除操作是永久的,请谨慎操作
A: 可以使用API遍历时间戳目录,删除指定日期之前的目录