Usage & Configuration
Web App
Default URL: http://<IP_address>:31000
Dashboard
Dashboard area contains following information:
NVStreamer devices connected
Number of files uploaded
RTSP URLs of videos
Note
User options like Home, Profile, Settings, etc. are not implemented in current release.
Upload files
To upload files to NVStreamer, go to File Upload page in UI.
Select correct NVStreamer device from dropdown menu.
Mention any tag for the video, and select transcode options if needed.
Now file can be uploaded by drag and drop method or by clicking in the upload area and selecting the file by browsing.
Remove files
To remove files from NVStreamer, go to Management tab in UI.
Go to Delete files option & select the file from dropdown menu.
Click on Delete option.
Playback
Playback in Web UI can be seen in Stream tab. You can filter videos based on the tags by selecting appropriate tag in the dropdown menu. Select videos to be played.
To enable bounding boxes on the video, select overlay option from the video player and enable it.
For more context on configuration, when the microservice is used:
In the Multi-Camera Tracking app, refer to its Operation Parameters section.
In the Real Time Location System app, refer to its Operation Parameters section.
In the Occupancy Analytics app, refer to its Operation Parameters section.
In the Few-Shot Product Recognition app, refer to its Operation Parameters section.
Configuration
The Configuration tab provides information about file metadata and provides option to edit name and tag.
Setup & Deployment
NVStreamer-related configuration details can be found here: NVStreamer Config.
Using Docker Container
NVStreamer uses a config file that needs to be defined and mounted into the container. Use the sample config file contents shown in NVStreamer Config and copy it to a file named nvstreamer_config.json.
Launch NVStreamer using command line as shown below:
Docker run with default configs:
sudo docker run -it -v /data/videos/:/home/vst/vst_release/streamer_videos/ --net=host -e ADAPTOR=streamer -e HTTP_PORT=31000 -e RTSP_SERVER_PORT=31554 nvcr.io/rxczgrvsg8nx/vst-1-0/vst:v1.2.35_x86_64
Docker run with external configs:
sudo docker run -it -v /data/videos/:/home/vst/vst_release/streamer_videos/ -v /data/configs/:/home/vst/vst_release/updated_configs/ --net=host -e ADAPTOR=streamer -e HTTP_PORT=31000 -e RTSP_SERVER_PORT=31554 nvcr.io/rxczgrvsg8nx/vst-1-0/vst:v1.2.35_x86_64 --vstConfigFile /home/vst/vst_release/updated_configs/nvstreamer_config.json
To get the latest container version, refer here: https://registry.ngc.nvidia.com/orgs/rxczgrvsg8nx/teams/vst-1-0/containers/vst/tags.
Two directories are mounted into the container:
Directory on the host where video files are stored is mounted into the NVStreamer container at
/home/vst/vst_release/streamer_videos/
. It is shown as/data/videos
in the command line above; modify it appropriately depending on where videos will be stored in your system. Make sure this host directory has write permissions for non-root users, since NVStreamer runs as non-root user:sudo chmod 777 /data/videos
NVStreamer config directory is mounted at
/home/vst/vst_release/updated_configs
. Thenvstreamer_config.json
file created earlier should be stored in the folder that is getting mounted. It is shown as/data/configs
in the command line above; modify it appropriately depending on where you stored thenvstreamer_config.json
file in your system.
Upon successful launch of the docker container, you’ll see the message below:
'Entering Main Loop'
.
Using Helm Charts
Download NVStreamer Helm chart:
helm fetch https://helm.ngc.nvidia.com/rxczgrvsg8nx/vst-1-0/charts/nvstreamer-0.2.30.tgz --username='$oauthtoken' --password=<YOUR API KEY>
Install Helm chart:
# with default config parameters helm install <name> <latest-version> # with customized config parameters helm install <name> <latest-version> -f command-values.yaml
Sample format of
command-values.yaml
. Edit as per your requirement:nvstreamer: imagePullSecrets: - name: ngc-docker-reg-secret configs: vst_config.json: data: nv_streamer_loop_playback: false nv_streamer_sync_playback: true nv_streamer_max_upload_file_size_MB: 10000 nv_streamer_media_container_supported: - mp4 - mkv supported_video_codecs: - h264 - h265 use_software_path: false network: server_domain_name: stunurl_list: - stun.l.google.com:19302 # List of turnUrls with static credentials. Example - admin:admin@10.0.0.1:3478 static_turnurl_list: [] # List of coturn turnUrls with secret. Example - 10.0.0.1:3478:secret_key use_coturn_auth_secret: false coturn_turnurl_list_with_secret: # Twilio account details userId & auth_token. use_twilio_stun_turn: false twilio_account_sid: "" twilio_auth_token: ""
To get the latest Helm Chart version, refer here: https://registry.ngc.nvidia.com/orgs/rxczgrvsg8nx/teams/vst-1-0/helm-charts/nvstreamer.
NVStreamer Config
Following table describes the NVStreamer-related parameters in VST config file, which should be provided as command-line option deploying helm chart:
Key
Description
Typical Value
network
Section to define all Network related parameters
“server_domain_name”
Server domain name
“vst-service”
“stunurl_list”
STUN server address
[“stun.l.google.com:19302”]
“static_turnurl_list”
TURN server address
[]
“coturn_turnurl_list_with_secret”
Coturn Turnurl list with secret
[]
“use_coturn_auth_secret”
Enable/Disable Coturn Auth secret
FALSE
“use_twilio_stun_turn”
Enable/Disable Twilio
FALSE
“twilio_account_sid”
Twilio Account Sid
“”
“twilio_auth_token”
Auth token for Twilio
“”
data
Section to define all VST data related parameters
“nv_streamer_loop_playback”
Enable/Disable looping in nvstreamer
FALSE
“nv_streamer_sync_playback”
Enable/Disable sync playback feature in nvstreamer. When enabled client will get time-synchronized frame for any rtsp_url. Please note that to work this feature properly all video files should have same properties such as duration/framerate/keyint
TRUE
“nv_streamer_max_upload_file_size_MB”
Maximum file upload size in nvstreamer
10000
“use_software_path”
Enable/Disable software path for decoder
FALSE