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

    NVStreamer Dashboard

    Note

    User options like Home, Profile, Settings, etc. are not implemented in current release.


Upload files

  1. To upload files to NVStreamer, go to File Upload page in UI.

  2. Select correct NVStreamer device from dropdown menu.

  3. Mention any tag for the video, and select transcode options if needed.

  4. Now file can be uploaded by drag and drop method or by clicking in the upload area and selecting the file by browsing.

NVStreamer Upload

Remove files

  1. To remove files from NVStreamer, go to Management tab in UI.

  2. Go to Delete files option & select the file from dropdown menu.

  3. Click on Delete option.

NVStreamer Deletefile

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.

NVStreamer Dashboard
  • To enable bounding boxes on the video, select overlay option from the video player and enable it.

    NVStreamer Overlay

For more context on configuration, when the microservice is used:

Configuration

The Configuration tab provides information about file metadata and provides option to edit name and tag.

NVStreamer Configuration 1 NVStreamer Configuration 2

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:

  1. 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
    
  2. 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. The nvstreamer_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 the nvstreamer_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

  1. 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>
    
  2. 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:

NVStreamer-related config

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