KPI

Performance

Runtime profiling of the VST/NVStreamer microservice in terms of number of streams. Use below tools from inside vst container at path: /home/vst/vst_release/tools. These tools are based on x86_64 ubuntu22.04

How to run profiling tools

  • To measure RTSP streams perf:

    # Specify rtsp streams or VST/NVStreamer endpoint to play & provide fps.
    
    #./testRTSPClient
    Usage: ./testRTSPClient --urls "<rtsp-url-1>, <rtsp-url-12>, ... <rtsp-url-N>"
            (where each <rtsp-url-i> is a "rtsp://" URL)
    
    =================== Options =========================
    --tcp                                => stream over tcp (Default is udp)
    --port <port_number>                 => client start port number
    --fps                                => Display received fps of the stream
    --fps-interval <interval_in_seconds> => Publish fps at this interval (Default interval is 5sec)
    --csv-file <filePath to dump fps>    => Provide path & filename Eg. fps_report.csv
    --num-streams <Max num of streams>   => Max number of streams to be played (Default no limit)
    --socket-buffer-size                 => OS socket buffer size in bytes (needs to be root)
    --jitter-buffer-size                 => JitterBuffer/reordering buffer size in ms (default 200ms)
    --vst-endpoint <ip:port>             => VST endpoint to fetch rtsp streams
    
    ================== Examples =========================
    1. Play two rtsp streams
            ./testRTSPClient --urls "rtsp://10.0.0.1:8554/stream1,rtsp://10.0.0.1:8554/stream2"
    
    2. Play two rtsp streams, stream over tcp & use client start port number as 30000
            ./testRTSPClient --tcp --port 30000 --urls "rtsp://10.0.0.1:8554/stream1,rtsp://10.0.0.1:8554/stream2"
    
    3. Play two rtsp streams, specify Names
            ./testRTSPClient --urls "Amcrest_1|rtsp://10.0.0.1:8554/stream1, Amcrest_2|rtsp://10.0.0.1:8554/stream2"
    
    4. Play two rtsp streams & log fps on console for every 5second
            ./testRTSPClient --fps --fps-inteval 5 --urls "Amcrest_1|rtsp://10.0.0.1:8554/stream1, Amcrest_2|rtsp://10.0.0.1:8554/stream2"
    
    5. Play two rtsp streams & dump fps data in given csv file
            ./testRTSPClient --fps --csv-file /home/vst/fps_report.csv --urls "Amcrest_1|rtsp://10.0.0.1:8554/stream1, Amcrest_2|rtsp://10.0.0.1:8554/stream2"
    
    6. Play all rtsp streams from given vst endpoint & dump fps in csv file
            ./testRTSPClient --fps --csv-file /home/vst/fps_report.csv --vst-endpoint 10.0.0.1:30000
    
    7. Play 4 rtsp streams from given vst endpoint & dump fps in csv file
            ./testRTSPClient --fps --csv-file /home/vst/fps_report.csv --num-streams 4 --vst-endpoint 10.0.0.1:30000
    
  • To measure webrtc streams perf:

    # specify VST/NVStreamer endpoint to play the webrtc streams
      ./testWebrtcClient --duration 600 --vst-endpoint 10.0.0.1:30000 --fps-interval 10 --num-streams 4 --csv-file ./fps_file.csv