From c26531b4f3c2fd55d2c51290b94aae1f339c1ecc Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Fri, 17 Jul 2026 11:00:39 +0800 Subject: [PATCH] refactor: rebrand to SafeSight Edge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rename Agent binary: rk3588-agent → safesight-agent - Update Go module: rk3588sys/agent → safesight-agent - Rename CMake project: rk3588_media_server → safesight_media - Rename Media binary: media-server → safesight-media - Update all install paths, scripts, and config references --- CMakeLists.txt | 46 +++++----- Readme.md | 14 +-- agent/agent.config.example.json | 14 +-- .../{rk3588-agent => safesight-agent}/main.go | 14 +-- agent/go.mod | 2 +- agent/internal/audit/audit.go | 2 +- agent/internal/discovery/discovery.go | 2 +- agent/internal/httpapi/agent_update.go | 2 +- .../httpapi/config_candidate_apply_test.go | 4 +- .../internal/httpapi/config_candidate_test.go | 2 +- agent/internal/httpapi/config_status_test.go | 4 +- agent/internal/httpapi/extras.go | 8 +- agent/internal/httpapi/face_gallery.go | 2 +- agent/internal/httpapi/models_status_test.go | 2 +- agent/internal/httpapi/resources.go | 2 +- agent/internal/httpapi/server.go | 18 ++-- agent/internal/modelstore/modelstore.go | 2 +- agent/internal/procctl/procctl.go | 4 +- agent/internal/procctl/procctl_linux.go | 2 +- agent/internal/sysinfo/sysinfo.go | 2 +- plugins/CMakeLists.txt | 10 +-- scripts/build.sh | 6 +- scripts/deploy.sh | 86 +++++++++---------- scripts/ops.sh | 22 ++--- scripts/run_on_board.sh | 2 +- src/main.cpp | 4 +- 26 files changed, 139 insertions(+), 139 deletions(-) rename agent/cmd/{rk3588-agent => safesight-agent}/main.go (93%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5981469..6381818 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,9 @@ # Minimum version based on requirements from PRD (CMake >= 3.20) cmake_minimum_required(VERSION 3.20) -project(rk3588_media_server - VERSION 0.1.0 - DESCRIPTION "RK3588 media server bootstrap" +project(safesight_media + VERSION 1.0.0 + DESCRIPTION "SafeSight Media - AI-powered video analysis engine" LANGUAGES C CXX) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) @@ -84,28 +84,28 @@ install(TARGETS rk_shared_state LIBRARY DESTINATION bin ) -add_executable(media-server ${SRC_FILES}) -set_target_properties(media-server PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) -target_include_directories(media-server +add_executable(safesight-media ${SRC_FILES}) +set_target_properties(safesight-media PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +target_include_directories(safesight-media PRIVATE ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/third_party ) -target_link_libraries(media-server PRIVATE project_options Threads::Threads) +target_link_libraries(safesight-media PRIVATE project_options Threads::Threads) if(RK3588_ENABLE_FFMPEG) - target_compile_definitions(media-server PRIVATE RK3588_ENABLE_FFMPEG) - target_include_directories(media-server PRIVATE ${FFMPEG_INCLUDE_DIRS}) - target_link_libraries(media-server PRIVATE PkgConfig::FFMPEG PkgConfig::SWSCALE) + target_compile_definitions(safesight-media PRIVATE RK3588_ENABLE_FFMPEG) + target_include_directories(safesight-media PRIVATE ${FFMPEG_INCLUDE_DIRS}) + target_link_libraries(safesight-media PRIVATE PkgConfig::FFMPEG PkgConfig::SWSCALE) endif() if(RK3588_ENABLE_MPP) - target_include_directories(media-server SYSTEM PRIVATE + target_include_directories(safesight-media SYSTEM PRIVATE ${RK_MPP_ROOT}/inc ${RK_RKNN_ROOT}/examples/3rdparty/mpp/include ) if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") - target_compile_options(media-server PRIVATE -Wno-pedantic) + target_compile_options(safesight-media PRIVATE -Wno-pedantic) endif() endif() @@ -120,11 +120,11 @@ if(RK3588_ENABLE_RGA) message(WARNING "RGA enabled but librga not found; disable RK3588_ENABLE_RGA or install librga-dev") else() message(STATUS "Found librga: ${RK_RGA_LIB}") - target_compile_definitions(media-server PRIVATE RK3588_ENABLE_RGA) - target_include_directories(media-server SYSTEM PRIVATE ${RK_RGA_INCLUDE_DIR}) - target_link_libraries(media-server PRIVATE ${RK_RGA_LIB}) + target_compile_definitions(safesight-media PRIVATE RK3588_ENABLE_RGA) + target_include_directories(safesight-media SYSTEM PRIVATE ${RK_RGA_INCLUDE_DIR}) + target_link_libraries(safesight-media PRIVATE ${RK_RGA_LIB}) if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") - target_compile_options(media-server PRIVATE -Wno-pedantic) + target_compile_options(safesight-media PRIVATE -Wno-pedantic) endif() endif() endif() @@ -142,21 +142,21 @@ if(RK3588_ENABLE_RKNN) if(NOT RK_RKNN_LIB) message(WARNING "RKNN enabled but librknnrt not found; disable RK3588_ENABLE_RKNN or set RKNN_RUNTIME_LIB_DIR") else() - target_compile_definitions(media-server PRIVATE RK3588_ENABLE_RKNN) - target_include_directories(media-server PRIVATE ${RKNN_RUNTIME_INCLUDE_DIR}) - target_link_libraries(media-server PRIVATE ${RK_RKNN_LIB}) + target_compile_definitions(safesight-media PRIVATE RK3588_ENABLE_RKNN) + target_include_directories(safesight-media PRIVATE ${RKNN_RUNTIME_INCLUDE_DIR}) + target_link_libraries(safesight-media PRIVATE ${RK_RKNN_LIB}) endif() endif() if(WIN32) - target_link_libraries(media-server PRIVATE ws2_32) + target_link_libraries(safesight-media PRIVATE ws2_32) endif() -target_compile_definitions(media-server PRIVATE +target_compile_definitions(safesight-media PRIVATE RK_PROJECT_VERSION="${PROJECT_VERSION}" RK_GIT_SHA="${RK_GIT_SHA}" ) -install(TARGETS media-server RUNTIME DESTINATION bin) +install(TARGETS safesight-media RUNTIME DESTINATION bin) if(BUILD_SAMPLES) add_subdirectory(samples) @@ -170,4 +170,4 @@ endif() add_subdirectory(plugins) include(GNUInstallDirs) -install(FILES configs/sample_cam1.json DESTINATION ${CMAKE_INSTALL_DATADIR}/rk3588-media-server) +install(FILES configs/sample_cam1.json DESTINATION ${CMAKE_INSTALL_DATADIR}/safesight-media) diff --git a/Readme.md b/Readme.md index 757fc3a..ec90dfb 100644 --- a/Readme.md +++ b/Readme.md @@ -1,5 +1,5 @@ -# RK3588 智能视频分析系统 PRD(v1.2) +# SafeSight 智能视觉安全监测平台 PRD(v1.2) --- @@ -40,7 +40,7 @@ ### 2.1 系统逻辑架构 ```text -[ media-server 主进程 ] +[ safesight-media 主进程 ] | +-- Graph Manager (图管理:加载配置、构建DAG、热更新/回滚) | @@ -53,7 +53,7 @@ +-- HTTP Server (REST API + Web 控制台 + 状态查询) ``` -- **media-server**:主入口,负责初始化配置、图构建、主事件循环。 +- **safesight-media**:主入口,负责初始化配置、图构建、主事件循环。 - **Graph Manager(GraphMgr)**: - 对应多个 graph(每个 graph 一路/一组业务流程)。 - 实例化节点(Node),建立边(Edge),负责热更新时的 diff & 切换。 @@ -1199,13 +1199,13 @@ cmake --build build -j$(nproc) ```bash # 纯转码网关 -./build/media-server --config configs/sample_cam1.json +./build/safesight-media --config configs/sample_cam1.json # 带预处理的 pipeline -./build/media-server --config configs/sample_preprocess.json +./build/safesight-media --config configs/sample_preprocess.json # 内置 RTSP Server 模式 -./build/media-server --config configs/sample_cam1_rtsp_server.json +./build/safesight-media --config configs/sample_cam1_rtsp_server.json ``` ### 10.2 交叉编译(可选) @@ -1228,7 +1228,7 @@ cmake -S . -B build-cross \ cmake --build build-cross -j$(nproc) # 同步到板子 -rsync -avz build-cross/ user@board_ip:/opt/media-server/ +rsync -avz build-cross/ user@board_ip:/opt/safesight-media/ ``` --- diff --git a/agent/agent.config.example.json b/agent/agent.config.example.json index 1f4a9c5..877a237 100644 --- a/agent/agent.config.example.json +++ b/agent/agent.config.example.json @@ -8,18 +8,18 @@ "discovery_port": 35688, "device_name": "cam1_strict_minio_alarm", - "device_id_path": "/var/lib/rk3588-agent/device_id", + "device_id_path": "/var/lib/safesight-agent/device_id", - "models_dir": "/opt/rk3588-media-server/models", + "models_dir": "/opt/safesight-media/models", "max_upload_mb": 200, - "config_path": "/opt/rk3588-media-server/etc/media-server.json", + "config_path": "/opt/safesight-media/etc/media-server.json", "media_server_process": { "enable": true, - "exec_path": "/opt/rk3588-media-server/bin/systemctl-wrapper.sh", - "work_dir": "/opt/rk3588-media-server", - "configs_dir": "/opt/rk3588-media-server/etc", - "pid_file": "/var/run/rk3588sys-media-server.pid", + "exec_path": "/opt/safesight-media/bin/systemctl-wrapper.sh", + "work_dir": "/opt/safesight-media", + "configs_dir": "/opt/safesight-media/etc", + "pid_file": "/var/run/safesight-media-server.pid", "graceful_timeout_ms": 5000 }, "media_server_base_url": "http://127.0.0.1:9000", diff --git a/agent/cmd/rk3588-agent/main.go b/agent/cmd/safesight-agent/main.go similarity index 93% rename from agent/cmd/rk3588-agent/main.go rename to agent/cmd/safesight-agent/main.go index 1605cbd..0a859f5 100644 --- a/agent/cmd/rk3588-agent/main.go +++ b/agent/cmd/safesight-agent/main.go @@ -16,13 +16,13 @@ import ( "syscall" "time" - "rk3588sys/agent/internal/config" - "rk3588sys/agent/internal/discovery" - "rk3588sys/agent/internal/httpapi" - "rk3588sys/agent/internal/log" - "rk3588sys/agent/internal/mediaserver" - "rk3588sys/agent/internal/modelstore" - "rk3588sys/agent/internal/sysinfo" + "safesight-agent/internal/config" + "safesight-agent/internal/discovery" + "safesight-agent/internal/httpapi" + "safesight-agent/internal/log" + "safesight-agent/internal/mediaserver" + "safesight-agent/internal/modelstore" + "safesight-agent/internal/sysinfo" ) var Version = "0.0.0-dev" diff --git a/agent/go.mod b/agent/go.mod index e0e448f..aaad95e 100644 --- a/agent/go.mod +++ b/agent/go.mod @@ -1,3 +1,3 @@ -module rk3588sys/agent +module safesight-agent go 1.21 diff --git a/agent/internal/audit/audit.go b/agent/internal/audit/audit.go index ce138be..c93bb2c 100644 --- a/agent/internal/audit/audit.go +++ b/agent/internal/audit/audit.go @@ -6,7 +6,7 @@ import ( "path/filepath" "sync" - "rk3588sys/agent/internal/files" + "safesight-agent/internal/files" ) type Entry struct { diff --git a/agent/internal/discovery/discovery.go b/agent/internal/discovery/discovery.go index 0e6877e..31e3510 100644 --- a/agent/internal/discovery/discovery.go +++ b/agent/internal/discovery/discovery.go @@ -11,7 +11,7 @@ import ( "strings" "time" - "rk3588sys/agent/internal/sysinfo" + "safesight-agent/internal/sysinfo" ) const Magic = "RK3588SYS_DISCOVERY_V1" diff --git a/agent/internal/httpapi/agent_update.go b/agent/internal/httpapi/agent_update.go index 61cfc82..740a001 100644 --- a/agent/internal/httpapi/agent_update.go +++ b/agent/internal/httpapi/agent_update.go @@ -15,7 +15,7 @@ import ( "strings" "time" - "rk3588sys/agent/internal/files" + "safesight-agent/internal/files" ) type agentBinaryUpdateResult struct { diff --git a/agent/internal/httpapi/config_candidate_apply_test.go b/agent/internal/httpapi/config_candidate_apply_test.go index 2d59bbf..2bb2589 100644 --- a/agent/internal/httpapi/config_candidate_apply_test.go +++ b/agent/internal/httpapi/config_candidate_apply_test.go @@ -10,8 +10,8 @@ import ( "strings" "testing" - "rk3588sys/agent/internal/config" - "rk3588sys/agent/internal/mediaserver" + "safesight-agent/internal/config" + "safesight-agent/internal/mediaserver" ) func TestHandleConfigCandidateApplyPromotesCandidateAndBacksUpCurrent(t *testing.T) { diff --git a/agent/internal/httpapi/config_candidate_test.go b/agent/internal/httpapi/config_candidate_test.go index ece3807..db0b106 100644 --- a/agent/internal/httpapi/config_candidate_test.go +++ b/agent/internal/httpapi/config_candidate_test.go @@ -11,7 +11,7 @@ import ( "strings" "testing" - "rk3588sys/agent/internal/config" + "safesight-agent/internal/config" ) func TestHandleConfigCandidateStoresValidatedCandidate(t *testing.T) { diff --git a/agent/internal/httpapi/config_status_test.go b/agent/internal/httpapi/config_status_test.go index abd351b..c40d2af 100644 --- a/agent/internal/httpapi/config_status_test.go +++ b/agent/internal/httpapi/config_status_test.go @@ -11,8 +11,8 @@ import ( "path/filepath" "testing" - "rk3588sys/agent/internal/config" - "rk3588sys/agent/internal/procctl" + "safesight-agent/internal/config" + "safesight-agent/internal/procctl" ) type fakeProcessController struct { diff --git a/agent/internal/httpapi/extras.go b/agent/internal/httpapi/extras.go index 6e61422..0072efe 100644 --- a/agent/internal/httpapi/extras.go +++ b/agent/internal/httpapi/extras.go @@ -11,10 +11,10 @@ import ( "strings" "time" - "rk3588sys/agent/internal/assets" - "rk3588sys/agent/internal/audit" - "rk3588sys/agent/internal/metrics" - "rk3588sys/agent/internal/sysinfo" + "safesight-agent/internal/assets" + "safesight-agent/internal/audit" + "safesight-agent/internal/metrics" + "safesight-agent/internal/sysinfo" ) type configFileStatus struct { diff --git a/agent/internal/httpapi/face_gallery.go b/agent/internal/httpapi/face_gallery.go index 4c425cb..67560c0 100644 --- a/agent/internal/httpapi/face_gallery.go +++ b/agent/internal/httpapi/face_gallery.go @@ -10,7 +10,7 @@ import ( "strings" "time" - "rk3588sys/agent/internal/files" + "safesight-agent/internal/files" ) type faceGalleryInfo struct { diff --git a/agent/internal/httpapi/models_status_test.go b/agent/internal/httpapi/models_status_test.go index 046531c..127fc91 100644 --- a/agent/internal/httpapi/models_status_test.go +++ b/agent/internal/httpapi/models_status_test.go @@ -8,7 +8,7 @@ import ( "strings" "testing" - "rk3588sys/agent/internal/modelstore" + "safesight-agent/internal/modelstore" ) func TestHandleModelsStatusReturnsInstalledModels(t *testing.T) { diff --git a/agent/internal/httpapi/resources.go b/agent/internal/httpapi/resources.go index 584be64..c8bbb33 100644 --- a/agent/internal/httpapi/resources.go +++ b/agent/internal/httpapi/resources.go @@ -10,7 +10,7 @@ import ( "sort" "strings" - "rk3588sys/agent/internal/files" + "safesight-agent/internal/files" ) type installedResource struct { diff --git a/agent/internal/httpapi/server.go b/agent/internal/httpapi/server.go index 9df3a3d..57b569e 100644 --- a/agent/internal/httpapi/server.go +++ b/agent/internal/httpapi/server.go @@ -17,15 +17,15 @@ import ( "sync" "time" - "rk3588sys/agent/internal/audit" - "rk3588sys/agent/internal/config" - "rk3588sys/agent/internal/files" - "rk3588sys/agent/internal/mediaserver" - "rk3588sys/agent/internal/metrics" - "rk3588sys/agent/internal/modelstore" - "rk3588sys/agent/internal/procctl" - "rk3588sys/agent/internal/sysinfo" - "rk3588sys/agent/internal/tasks" + "safesight-agent/internal/audit" + "safesight-agent/internal/config" + "safesight-agent/internal/files" + "safesight-agent/internal/mediaserver" + "safesight-agent/internal/metrics" + "safesight-agent/internal/modelstore" + "safesight-agent/internal/procctl" + "safesight-agent/internal/sysinfo" + "safesight-agent/internal/tasks" ) type Server struct { diff --git a/agent/internal/modelstore/modelstore.go b/agent/internal/modelstore/modelstore.go index 48e3cce..824409b 100644 --- a/agent/internal/modelstore/modelstore.go +++ b/agent/internal/modelstore/modelstore.go @@ -12,7 +12,7 @@ import ( "sort" "strings" - "rk3588sys/agent/internal/files" + "safesight-agent/internal/files" ) type Item struct { diff --git a/agent/internal/procctl/procctl.go b/agent/internal/procctl/procctl.go index fc410d8..4ee9206 100644 --- a/agent/internal/procctl/procctl.go +++ b/agent/internal/procctl/procctl.go @@ -14,8 +14,8 @@ import ( "sync" "time" - "rk3588sys/agent/internal/config" - "rk3588sys/agent/internal/files" + "safesight-agent/internal/config" + "safesight-agent/internal/files" ) var ErrNotSupported = errors.New("not supported") diff --git a/agent/internal/procctl/procctl_linux.go b/agent/internal/procctl/procctl_linux.go index a1409c8..acfe2fd 100644 --- a/agent/internal/procctl/procctl_linux.go +++ b/agent/internal/procctl/procctl_linux.go @@ -9,7 +9,7 @@ import ( "syscall" "time" - "rk3588sys/agent/internal/log" + "safesight-agent/internal/log" ) func isAlive(pid int) (bool, error) { diff --git a/agent/internal/sysinfo/sysinfo.go b/agent/internal/sysinfo/sysinfo.go index 5cbd415..509acca 100644 --- a/agent/internal/sysinfo/sysinfo.go +++ b/agent/internal/sysinfo/sysinfo.go @@ -14,7 +14,7 @@ import ( "strings" "time" - "rk3588sys/agent/internal/files" + "safesight-agent/internal/files" ) func Hostname() string { diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 001f5a9..79c094f 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -205,7 +205,7 @@ if(RK3588_ENABLE_ZLMEDIAKIT AND RK_ZLMK_API_LIB) add_custom_command(TARGET publish POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${RK_ZLMK_API_LIB}" $ ) - install(FILES "${RK_ZLMK_API_LIB}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/rk3588-media-server/plugins) + install(FILES "${RK_ZLMK_API_LIB}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/safesight-media/plugins) endif() set_target_properties(publish PROPERTIES OUTPUT_NAME "publish" @@ -564,8 +564,8 @@ if(RK3588_ENABLE_ZLMEDIAKIT AND RK_ZLMK_API_LIB) COMMAND ${CMAKE_COMMAND} -E copy_if_different "${RK_ZLMK_API_LIB}" $ ) install(TARGETS zlm_http - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/rk3588-media-server/plugins - RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}/rk3588-media-server/plugins + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/safesight-media/plugins + RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}/safesight-media/plugins ) endif() @@ -587,6 +587,6 @@ set_target_properties(ai_shoe_det PROPERTIES ) install(TARGETS input_rtsp input_file publish preprocess ai_yolo ai_face_det ai_scrfd ai_scrfd_sliding ai_face_recog tracker gate osd alarm logic_gate region_event action_recog event_fusion storage ai_scheduler ai_shoe_det - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/rk3588-media-server/plugins - RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}/rk3588-media-server/plugins + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/safesight-media/plugins + RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}/safesight-media/plugins ) diff --git a/scripts/build.sh b/scripts/build.sh index 0e1c641..99b7f5f 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -190,11 +190,11 @@ if [ $BUILD_AGENT -eq 1 ]; then # 编译 Agent echo -e "${CYAN}[编译 Agent]${NC}" - go build -o rk3588-agent_linux_arm64 ./cmd/rk3588-agent + go build -o safesight-agent_linux_arm64 ./cmd/safesight-agent echo -e "${GREEN}✓${NC} Agent 编译完成" - echo " 输出: $AGENT_DIR/rk3588-agent_linux_arm64" - ls -lh "$AGENT_DIR/rk3588-agent_linux_arm64" + echo " 输出: $AGENT_DIR/safesight-agent_linux_arm64" + ls -lh "$AGENT_DIR/safesight-agent_linux_arm64" fi echo "" fi diff --git a/scripts/deploy.sh b/scripts/deploy.sh index f693655..c021b7e 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -4,7 +4,7 @@ # # 用法: sudo ./deploy.sh [install|upgrade|status|logs|clean-hls|uninstall] # 首次安装 Agent 时传入后台管理统一主钥匙;后续部署默认沿用设备保存的主钥匙: -# sudo AGENT_TOKEN= ./deploy.sh install +# sudo AGENT_TOKEN= ./deploy.sh install set -e @@ -22,13 +22,13 @@ PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" BUILD_DIR="$PROJECT_DIR/build" # 安装目录 -INSTALL_DIR="/opt/rk3588-media-server" -AGENT_INSTALL_DIR="/opt/rk3588-agent" +INSTALL_DIR="/opt/safesight-media" +AGENT_INSTALL_DIR="/opt/safesight-agent" SERVICE_DIR="/etc/systemd/system" LOGROTATE_DIR="/etc/logrotate.d" # 运行时数据目录(持久化数据) -RUNTIME_DIR="/var/lib/rk3588-media-server" +RUNTIME_DIR="/var/lib/safesight-media" HLS_DIR="$RUNTIME_DIR/hls" LOGS_DIR="$RUNTIME_DIR/logs" ALARMS_DIR="$RUNTIME_DIR/alarms" @@ -62,7 +62,7 @@ resolve_agent_token() { echo -e "${GREEN}✓${NC} 使用设备已保存的后台管理统一主钥匙" else echo -e "${RED}错误: 未提供 AGENT_TOKEN,且未找到已保存的主钥匙 $AGENT_TOKEN_FILE${NC}" - echo "首次安装必须使用:sudo AGENT_TOKEN= ./scripts/deploy.sh install" + echo "首次安装必须使用:sudo AGENT_TOKEN= ./scripts/deploy.sh install" echo "部署脚本不会本地生成 token。" exit 1 fi @@ -125,8 +125,8 @@ install_logrotate() { echo -e "${CYAN}[配置日志轮转]${NC}" # Media Server 日志轮转 - cat > "$LOGROTATE_DIR/rk3588-media-server" << 'EOF' -/var/lib/rk3588-media-server/logs/*.log { + cat > "$LOGROTATE_DIR/safesight-media" << 'EOF' +/var/lib/safesight-media/logs/*.log { daily rotate 7 compress @@ -143,7 +143,7 @@ EOF # HLS 分片清理(保留最近7天) cat > "$LOGROTATE_DIR/rk3588-hls" << 'EOF' -/var/lib/rk3588-media-server/hls/*/index*.ts { +/var/lib/safesight-media/hls/*/index*.ts { daily rotate 1 maxage 7 @@ -152,7 +152,7 @@ EOF nocompress } -/var/lib/rk3588-media-server/hls/*/index*.m3u8 { +/var/lib/safesight-media/hls/*/index*.m3u8 { daily rotate 1 maxage 7 @@ -162,7 +162,7 @@ EOF } EOF - chmod 644 "$LOGROTATE_DIR/rk3588-media-server" + chmod 644 "$LOGROTATE_DIR/safesight-media" chmod 644 "$LOGROTATE_DIR/rk3588-hls" echo -e "${GREEN}✓${NC} 日志轮转配置完成" @@ -177,7 +177,7 @@ install_hls_cleanup() { # HLS 分片清理脚本 - 保留最近 N 天的分片 KEEP_DAYS=${1:-3} -HLS_DIR="/var/lib/rk3588-media-server/hls" +HLS_DIR="/var/lib/safesight-media/hls" if [ ! -d "$HLS_DIR" ]; then echo "HLS 目录不存在: $HLS_DIR" @@ -196,20 +196,20 @@ EOF chmod +x "$INSTALL_DIR/bin/cleanup-hls.sh" # 添加到 crontab(每天凌晨3点执行) - CRON_FILE="/etc/cron.d/rk3588-media-server" + CRON_FILE="/etc/cron.d/safesight-media" cat > "$CRON_FILE" << 'EOF' # RK3588 Media Server 定时任务 SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # 每天凌晨3点清理HLS旧分片(保留3天) -0 3 * * * root /opt/rk3588-media-server/bin/cleanup-hls.sh 3 >> /var/lib/rk3588-media-server/logs/cleanup.log 2>&1 +0 3 * * * root /opt/safesight-media/bin/cleanup-hls.sh 3 >> /var/lib/safesight-media/logs/cleanup.log 2>&1 # 每周日凌晨4点清理告警视频(保留30天) -0 4 * * 0 root find /var/lib/rk3588-media-server/clips -name "*.mp4" -type f -mtime +30 -delete 2>/dev/null +0 4 * * 0 root find /var/lib/safesight-media/clips -name "*.mp4" -type f -mtime +30 -delete 2>/dev/null # 每周日凌晨4点清理告警图片(保留90天) -30 4 * * 0 root find /var/lib/rk3588-media-server/alarms -name "*.jpg" -type f -mtime +90 -delete 2>/dev/null +30 4 * * 0 root find /var/lib/safesight-media/alarms -name "*.jpg" -type f -mtime +90 -delete 2>/dev/null EOF chmod 644 "$CRON_FILE" @@ -334,7 +334,7 @@ render_template_config() { fi rendered_at="$(date -Iseconds)" - out_file="/tmp/rk3588-media-server-${DEPLOY_CONFIG_ID}-${DEPLOY_CONFIG_VERSION}.json" + out_file="/tmp/safesight-media-${DEPLOY_CONFIG_ID}-${DEPLOY_CONFIG_VERSION}.json" for overlay in $DEPLOY_CONFIG_OVERLAYS; do overlay_path="$PROJECT_DIR/$overlay" @@ -413,9 +413,9 @@ import json import os import re -config_file = "/opt/rk3588-media-server/etc/media-server.json" -install_dir = "/opt/rk3588-media-server" -runtime_dir = "/var/lib/rk3588-media-server" +config_file = "/opt/safesight-media/etc/media-server.json" +install_dir = "/opt/safesight-media" +runtime_dir = "/var/lib/safesight-media" project_dir = os.path.expanduser("~/apps/OrangePi3588Media") def fix_path(path): @@ -522,12 +522,12 @@ cmd_install_agent() { # 查找 Agent 编译产物(优先使用预编译的 arm64 二进制) AGENT_SOURCE="" - if [ -f "$PROJECT_DIR/agent/rk3588-agent_linux_arm64" ]; then - AGENT_SOURCE="$PROJECT_DIR/agent/rk3588-agent_linux_arm64" - echo -e "${GREEN}✓${NC} 找到预编译 Agent: rk3588-agent_linux_arm64" - elif [ -f "$PROJECT_DIR/agent/cmd/rk3588-agent/rk3588-agent" ]; then - AGENT_SOURCE="$PROJECT_DIR/agent/cmd/rk3588-agent/rk3588-agent" - echo -e "${GREEN}✓${NC} 找到源码编译 Agent: rk3588-agent" + if [ -f "$PROJECT_DIR/agent/safesight-agent_linux_arm64" ]; then + AGENT_SOURCE="$PROJECT_DIR/agent/safesight-agent_linux_arm64" + echo -e "${GREEN}✓${NC} 找到预编译 Agent: safesight-agent_linux_arm64" + elif [ -f "$PROJECT_DIR/agent/cmd/safesight-agent/safesight-agent" ]; then + AGENT_SOURCE="$PROJECT_DIR/agent/cmd/safesight-agent/safesight-agent" + echo -e "${GREEN}✓${NC} 找到源码编译 Agent: safesight-agent" fi if [ -z "$AGENT_SOURCE" ]; then @@ -536,10 +536,10 @@ cmd_install_agent() { fi mkdir -p "$AGENT_INSTALL_DIR" - mkdir -p "/var/lib/rk3588-agent" + mkdir -p "/var/lib/safesight-agent" - cp "$AGENT_SOURCE" "$AGENT_INSTALL_DIR/rk3588-agent" - chmod +x "$AGENT_INSTALL_DIR/rk3588-agent" + cp "$AGENT_SOURCE" "$AGENT_INSTALL_DIR/safesight-agent" + chmod +x "$AGENT_INSTALL_DIR/safesight-agent" printf '%s\n' "$AGENT_TOKEN" > "$AGENT_TOKEN_FILE" chmod 600 "$AGENT_TOKEN_FILE" @@ -553,7 +553,7 @@ cmd_install_agent() { "discovery_enable": true, "discovery_port": 35688, "device_name": "rk3588_$(hostname)", - "device_id_path": "/var/lib/rk3588-agent/device_id", + "device_id_path": "/var/lib/safesight-agent/device_id", "models_dir": "$INSTALL_DIR/models", "resources_dir": "$INSTALL_DIR/resources", "max_upload_mb": 200, @@ -569,7 +569,7 @@ cmd_install_agent() { } EOF - chown -R orangepi:orangepi "/var/lib/rk3588-agent" + chown -R orangepi:orangepi "/var/lib/safesight-agent" echo -e "${GREEN}✓${NC} Agent 安装完成,已写入后台管理统一主钥匙" } @@ -615,7 +615,7 @@ WantedBy=multi-user.target EOF # Agent 服务 - cat > "$SERVICE_DIR/rk3588-agent.service" << EOF + cat > "$SERVICE_DIR/safesight-agent.service" << EOF [Unit] Description=RK3588 Agent Service After=network.target media-server.service @@ -626,12 +626,12 @@ Type=simple User=root Group=root WorkingDirectory=$AGENT_INSTALL_DIR -ExecStart=$AGENT_INSTALL_DIR/rk3588-agent --config $AGENT_INSTALL_DIR/agent.config.json +ExecStart=$AGENT_INSTALL_DIR/safesight-agent --config $AGENT_INSTALL_DIR/agent.config.json Restart=always RestartSec=5 StandardOutput=journal StandardError=journal -SyslogIdentifier=rk3588-agent +SyslogIdentifier=safesight-agent [Install] WantedBy=multi-user.target @@ -672,8 +672,8 @@ cmd_install() { echo -e "${BLUE}[启动服务]${NC}" systemctl enable media-server systemctl start media-server - systemctl enable rk3588-agent - systemctl start rk3588-agent + systemctl enable safesight-agent + systemctl start safesight-agent echo "" echo -e "${GREEN}╔════════════════════════════════════════════════════════════╗${NC}" @@ -711,7 +711,7 @@ cmd_upgrade() { # 停止服务 echo "停止服务..." - systemctl stop media-server rk3588-agent + systemctl stop media-server safesight-agent # 重新安装 cmd_install @@ -779,7 +779,7 @@ cmd_status() { # Agent echo -e "${CYAN}[RK3588 Agent]${NC}" - if systemctl is-active --quiet rk3588-agent 2>/dev/null; then + if systemctl is-active --quiet safesight-agent 2>/dev/null; then echo -e " 状态: ${GREEN}● 运行中${NC}" echo " 管理界面: http://$(hostname -I | awk '{print $1}'):9100" else @@ -834,15 +834,15 @@ cmd_uninstall() { [ "$REPLY" != "y" ] && [ "$REPLY" != "Y" ] && echo "已取消" && exit 0 echo "[1/4] 停止服务..." - systemctl stop media-server rk3588-agent 2>/dev/null || true - systemctl disable media-server rk3588-agent 2>/dev/null || true + systemctl stop media-server safesight-agent 2>/dev/null || true + systemctl disable media-server safesight-agent 2>/dev/null || true echo "[2/4] 删除服务文件..." rm -f "$SERVICE_DIR/media-server.service" - rm -f "$SERVICE_DIR/rk3588-agent.service" - rm -f "$LOGROTATE_DIR/rk3588-media-server" + rm -f "$SERVICE_DIR/safesight-agent.service" + rm -f "$LOGROTATE_DIR/safesight-media" rm -f "$LOGROTATE_DIR/rk3588-hls" - rm -f "/etc/cron.d/rk3588-media-server" + rm -f "/etc/cron.d/safesight-media" systemctl daemon-reload echo "[3/4] 备份数据..." @@ -899,7 +899,7 @@ case "${1:-install}" in echo " uninstall 卸载服务" echo "" echo "示例:" - echo " sudo AGENT_TOKEN= ./deploy.sh install" + echo " sudo AGENT_TOKEN= ./deploy.sh install" echo " sudo ./deploy.sh upgrade # 沿用设备保存的后台管理统一主钥匙" echo " sudo ./deploy.sh status" echo " sudo ./deploy.sh clean-hls 7 # 保留最近7天" diff --git a/scripts/ops.sh b/scripts/ops.sh index b21b351..56ab7bc 100755 --- a/scripts/ops.sh +++ b/scripts/ops.sh @@ -1,6 +1,6 @@ #!/bin/bash # RK3588 Media Server 运维脚本 -# 安装后位于 /opt/rk3588-media-server/script/ops.sh +# 安装后位于 /opt/safesight-media/script/ops.sh # # 用法: sudo ./ops.sh [status|start|stop|restart|logs|hw|ddr-status|ddr-performance|ddr-ondemand|ddr-restore] @@ -15,7 +15,7 @@ NC='\033[0m' # 服务名称 MEDIA_SERVICE="media-server" -AGENT_SERVICE="rk3588-agent" +AGENT_SERVICE="safesight-agent" cmd_status() { echo -e "${BLUE}========== RK3588 Media Server 状态 ==========${NC}" @@ -65,8 +65,8 @@ cmd_status() { # HLS 输出 echo -e "${CYAN}[HLS 输出]${NC}" - if [ -d "/var/lib/rk3588-media-server/hls" ]; then - CHANNELS=$(find "/var/lib/rk3588-media-server/hls" -maxdepth 1 -type d 2>/dev/null | wc -l) + if [ -d "/var/lib/safesight-media/hls" ]; then + CHANNELS=$(find "/var/lib/safesight-media/hls" -maxdepth 1 -type d 2>/dev/null | wc -l) CHANNELS=$((CHANNELS - 1)) echo " 通道数: $CHANNELS" fi @@ -74,8 +74,8 @@ cmd_status() { # 存储使用 echo -e "${CYAN}[存储使用]${NC}" - echo " HLS: $(du -sh /var/lib/rk3588-media-server/hls 2>/dev/null | cut -f1)" - echo " 日志: $(du -sh /var/lib/rk3588-media-server/logs 2>/dev/null | cut -f1)" + echo " HLS: $(du -sh /var/lib/safesight-media/hls 2>/dev/null | cut -f1)" + echo " 日志: $(du -sh /var/lib/safesight-media/logs 2>/dev/null | cut -f1)" echo "" echo "命令帮助:" @@ -115,23 +115,23 @@ cmd_logs() { } cmd_metrics() { - /opt/rk3588-media-server/scripts/monitor_hw.sh + /opt/safesight-media/scripts/monitor_hw.sh } cmd_ddr_status() { - bash /opt/rk3588-media-server/scripts/ddr_mode.sh status + bash /opt/safesight-media/scripts/ddr_mode.sh status } cmd_ddr_performance() { - bash /opt/rk3588-media-server/scripts/ddr_mode.sh performance + bash /opt/safesight-media/scripts/ddr_mode.sh performance } cmd_ddr_ondemand() { - bash /opt/rk3588-media-server/scripts/ddr_mode.sh ondemand + bash /opt/safesight-media/scripts/ddr_mode.sh ondemand } cmd_ddr_restore() { - bash /opt/rk3588-media-server/scripts/ddr_mode.sh restore + bash /opt/safesight-media/scripts/ddr_mode.sh restore } # 主入口 diff --git a/scripts/run_on_board.sh b/scripts/run_on_board.sh index 5aff551..85bbbaf 100644 --- a/scripts/run_on_board.sh +++ b/scripts/run_on_board.sh @@ -40,7 +40,7 @@ if [[ ! -d "$ARTIFACT_DIR" ]]; then exit 1 fi -REMOTE_DIR="/tmp/rk3588_media_server" +REMOTE_DIR="/tmp/safesight_media" scp -r "$ARTIFACT_DIR" "$USER@$HOST:$REMOTE_DIR" diff --git a/src/main.cpp b/src/main.cpp index 8a8de09..b68ecc4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -8,11 +8,11 @@ namespace { void PrintUsage() { - std::cout << "Usage: media-server [--config ] [--version]\n"; + std::cout << "Usage: safesight-media [--config ] [--version]\n"; } void PrintVersion() { - std::cout << "RK3588 Media Server v" << rk3588::ProjectVersion() + std::cout << "SafeSight Media v" << rk3588::ProjectVersion() << " (git " << rk3588::GitSha() << ")\n"; }