====== VIM3/3L Object Detection with RTSP Streaming ======
=== Overview ===
This document describes how to compile and run the object detection demo with RTSP streaming on the ''Khadas VIM3'' using its ''NPU'' (Neural Processing Unit).
=== Prerequisites ===
Before building the project, ensure your system is up to date and the required dependencies are installed:
sudo apt update
sudo apt install cmake libopencv-dev ffmpeg gstreamer1.0-rtsp
=== Clone the Project ===
Clone the official Khadas VIM3 NPU repository:
git clone https://github.com/khadas/vim3_npu_applications_lite.git
cd vim3_npu_applications_lite/object_detection+RTSP
=== Compile ===
Compile the project using the provided build script:
bash build_vx.sh
=== Start RTSP Server with MediaMTX ===
Before running the demo, ensure an RTSP server is running in your local network. You can use [https://github.com/bluenviron/mediamtx MediaMTX] or other RTSP servers.
==== Install and Start MediaMTX ====
wget https://github.com/bluenviron/mediamtx/releases/download/v1.11.3/mediamtx_v1.11.3_linux_amd64.tar.gz
tar -xzf mediamtx_v1.11.3_linux_amd64.tar.gz
cd mediamtx
./mediamtx
By default, MediaMTX listens on port 8554. Once started, it's ready to receive RTSP streams.
==== Stream a test video using FFmpeg ====
ffmpeg -re -stream_loop -1 -i input.mp4 -c:v copy -an -f rtsp rtsp://:8554/live/stream
Replace '''' with the IP address of the machine running MediaMTX.
=== Run the Demo ===
Navigate to the output directory and run the demo:
cd bin_r_cv4/
./object_detection+RTSP -d /dev/video50 -m ../nn_data/yolov8n_88.nb -r rtsp://192.168.31.19:8554/stream
=== Parameters ===
/dev/video50 # Camera device index (e.g., /dev/video50)
../nn_data/yolov8n_88.nb # Path to model file
rtsp://:8554/... # RTSP server address
=== RTSP Server Options ===
You may use one of the following RTSP servers:
* MediaMTX (recommended)
* FFmpeg (as RTSP server)
* VLC Streaming
* RTSP Simple Server
=== Play the RTSP Stream ===
You can verify the RTSP stream using a player such as ''ffplay'' or ''VLC''.
==== Option 1: ffplay (from FFmpeg) ====
ffplay rtsp://:8554/live/stream
{{:local:users:jacobe:screenshot-from-2025-04-21-16-55-15.png?600|{{:local:users:jacobe:screenshot-from-2025-04-21-15-58-34.webp?600|}}
==== Option 2: VLC ====
Open VLC and go to:
* Media → Open Network Stream
* Enter the URL
* Click ''Play''
Replace '''' with the IP address of the RTSP server (e.g., ''192.168.31.19'').
=== Notes ===
* Ensure the specified video device (e.g., ''/dev/video33'') is connected and accessible.
* The RTSP server must be reachable from the VIM3 device (same LAN).
* Encoder settings (e.g., resolution, bitrate, format) can be modified in the source code.
* You can check your IP with: ''ip a'' or ''hostname -I''