diff --git a/internal/config/config.go b/internal/config/config.go index ea2b8d3..1f09103 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -17,6 +17,7 @@ type Config struct { MqttUser string `yaml:"mqtt_user"` MqttPass string `yaml:"mqtt_pass"` EdgeToken string `yaml:"edge_token"` + StreamEnabled bool `yaml:"stream_enabled"` RTSPURLs []string `yaml:"rtsp_urls"` InferSocket string `yaml:"infer_socket"` InferFPS int `yaml:"infer_fps"` diff --git a/internal/stream/ingestor.go b/internal/stream/ingestor.go index a2957d7..9b693fa 100644 --- a/internal/stream/ingestor.go +++ b/internal/stream/ingestor.go @@ -64,6 +64,23 @@ func (sm *StreamManager) applyStreams(ctx context.Context, urls []string, fps in sm.mu.Lock() defer sm.mu.Unlock() + // Stream enabled check + enabled := true + if sm.cfg != nil && !sm.cfg.StreamEnabled { + enabled = false + } + + // If disabled, stop all streams and return + if !enabled { + log.Println("stream: disabled by config, stopping all") + for url, sp := range sm.processes { + log.Printf("stream: stopping %s", url) + sm.stopProcess(sp) + delete(sm.processes, url) + } + return + } + // Identify URLs to remove (present in sm.processes but not in new urls) toRemove := map[string]*streamProcess{} for url, sp := range sm.processes { diff --git a/start_infer.sh b/start_infer.sh new file mode 100755 index 0000000..6b256e3 --- /dev/null +++ b/start_infer.sh @@ -0,0 +1,12 @@ +#!/bin/bash +exec >> /tmp/infer-server-systemd.log 2>&1 +echo "=== infer-server starting $(date) ===" +export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/latest/arm64-linux/lib64:/usr/local/Ascend/driver/lib64:/usr/local/Ascend/ascend-toolkit/latest/arm64-linux/lib64/plugin/opskernel +export ASCEND_OPP_PATH=/usr/local/Ascend/ascend-toolkit/latest/arm64-linux/opp +export PYTHONPATH=/usr/local/Ascend/ascend-toolkit/latest/python/site-packages:$PYTHONPATH +export PATH=/usr/local/miniconda3/bin:$PATH +cd /root/AI-tianyan +echo "PYTHONPATH=$PYTHONPATH" +/usr/local/miniconda3/bin/python3 -c "import acl; print('acl OK:', acl.__file__)" 2>&1 +echo "--- launching server ---" +exec /usr/local/miniconda3/bin/python3 /root/AI-tianyan/python/infer_server.py