# Copy to .env and adjust values for your deployment # Paths OUTPUT_DIR=/opt/jetson-counter DB_PATH=/opt/jetson-counter/jetson_counter.db STATE_FILE=/opt/jetson-counter/current_batch.json # Camera stream (rtsp://, http://, or file path for offline testing) SOURCE=rtsp://user:pass@192.168.0.100:554/stream1 # RKNN model MODEL_PATH=/opt/jetson-counter/yolo9t.rknn # Identity CAMERA_NAME=CC1 OBJECT_LABEL=ayam-potong CLASS_AYAM=ayam CLASS_TALENAN=talenan # Counting line: pixel position (empty = auto from LINE_X_FRAC) LINE_X= LINE_X_FRAC=0.5 CROSS_DIRECTION=rtl # Model input size IMGSZ=320 # Inference (ignored by RKNN scripts; used by Jetson/TensorRT variant) HALF=false # Confidence threshold for detections CONF=0.3 # TensorRT device index (ignored by RKNN scripts; used by Jetson variant) DEVICE=0 # RKNN NPU core mask: 1=core0, 2=core1, 3=dual, 7=all CORE_MASK=1 # YOLO decoder: number of classes NUM_CLASSES=2 # Set to true if model outputs raw logits instead of sigmoid probabilities SCORE_SIGMOID=false # ByteTrack parameters (counter_live_rknn_bytetrack.py only) TRACK_HIGH_THRESH=0.5 TRACK_LOW_THRESH=0.1 TRACK_MATCH_THRESH=0.8 TRACK_BUFFER=30 TRACK_MIN_HITS=3 # Batch / cutoff DAILY_CUTOFF_TIME=20:00 BATCH_TIMEOUT_SECONDS=300 IGNORE_BATCH_LABEL_TIMEOUT_SECONDS=30 MIN_OBJECT_PER_BATCH=60 MIN_DURATION_PER_BATCH=60 # CSV export EXPORT_CSV=true CROSS_CSV=/opt/jetson-counter/batch_crossings.csv # Stream connection WARMUP_FRAMES=30 RECONNECT_DELAY_SEC=3 MAX_RECONNECT_ATTEMPTS=0 # Health logging interval FLUSH_EVERY_N_FRAMES=100 # Stale track pruning (seconds) TRACKED_PRUNE_SEC=300 # Video recording RECORD_VIDEO=false VIDEO_SEGMENT_SEC=3600 OUTPUT_FPS=15 # Live stream (writes JPEG snapshot to disk for nginx) LIVE_STREAM_ENABLED=false LIVE_STREAM_FRAME_PATH=/dev/shm/jetson-counter/live_frame.jpg LIVE_STREAM_QUALITY=75 LIVE_STREAM_EVERY_N=2 # OpenCV FFmpeg backend options (semicolon/pipe separated) OPENCV_FFMPEG_CAPTURE_OPTIONS=rtsp_transport;tcp|fflags;nobuffer|flags;low_delay