I have implemented the REST api service in my deepstream [application] (discussion link for REST api implementation
Dynamically adding rtsp to deepstream - #3 by yuweiw.
How can i customize the kafka related plugins for the new implementation .
As now the new config has list of rtsp sources and sensor id , name instead of separate source and source id .
config .
application]
enable-perf-measurement=1
perf-measurement-interval-sec=5
#gie-kitti-output-dir=streamscl
[tiled-display]
enable=1
rows=2
columns=2
width=1280
height=720
gpu-id=0
#(0): nvbuf-mem-default - Default memory allocated, specific to particular platform
#(1): nvbuf-mem-cuda-pinned - Allocate Pinned/Host cuda memory, applicable for Tesla
[source-list]
num-source-bins=3
list=rtsp://example-rtsp-1;rtsp://example-rtsp-2;rtsp://example-rtsp-3
sensor-id-list=UniqueSensorId1;UniqueSensorId2;UniqueSensorId3
# Optional sensor-name-list if needed
sensor-name-list=UniqueSensorName1;UniqueSensorName2;UniqueSensorName3
use-nvmultiurisrcbin=1
max-batch-size=10
http-ip=localhost
http-port=9000
sgie-batch-size=40
[source-attr-all]
enable=0
type=4
num-sources=3
gpu-id=0
cudadec-memtype=0
latency=100
rtsp-reconnect-interval-sec=10
[primary-gie]
enable=1
gpu-id=0
batch-size=2
## 0=FP32, 1=INT8, 2=FP16 mode
bbox-border-color0=1;0;0;1
#bbox-border-color1=0;1;1;1
#bbox-border-color2=0;1;1;1
#bbox-border-color3=0;1;0;1
nvbuf-memory-type=0
interval=0
config-file=pgie_peoplenet_tao_config.txt
#infer-raw-output-dir=../../../../../samples/primary_detector_raw_output/
[sink0]
enable=1
type=1 # Use type=1 for EGL sink
sync=0 # Set to 0 for smoother display
window-width=1280 # Window width
window-height=720 # Window height
[sink1]
enable=1
#Type - 1=FakeSink 2=EglSink 3=File 4=UDPSink 5=nvoverlaysink 6=MsgConvBroker
type=6
msg-conv-config=msgconv_sample_config.txt
# Name of library having custom implementation.
# msg-conv-msg2p-lib=/opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-occupancy-analytics/bin/jetson/libnvds_msgconv.so
msg-conv-msg2p-lib=/opt/nvidia/deepstream/deepstream-7.0/sources/apps/sample_apps/occupancy_analytics/bin/x86/libnvds_msgconv.so
#(0): PAYLOAD_DEEPSTREAM - Deepstream schema payload
#(1): PAYLOAD_DEEPSTREAM_MINIMAL - Deepstream schema payload minimal
#(256): PAYLOAD_RESERVED - Reserved type
#(257): PAYLOAD_CUSTOM - Custom schema payload
msg-conv-payload-type=0
msg-broker-proto-lib=/opt/nvidia/deepstream/deepstream/lib/libnvds_kafka_proto.so
#Provide your msg-broker-conn-str here
msg-broker-conn-str=kafka_container;9092;raw-events
#topic=<topic>
#Optional:
#msg-broker-config=../../deepstream-test4/cfg_kafka.txt
[sink2]
enable=1
type=1 # Use type=1 for EGL sink
sync=0 # Set to 0 for smoother display
window-width=1280 # Window width
window-height=720 # Window height
# sink type = 6 by default creates msg converter + broker.
# To use multiple brokers use this group for converter and use
# sink type = 6 with disable-msgconv = 1
# sink type = 6 by default creates msg converter + broker.
# To use multiple brokers use this group for converter and use
# sink type = 6 with disable-msgconv = 1
[message-converter]
enable=0
msg-conv-config=msgconv_sample_config.txt
#(0): PAYLOAD_DEEPSTREAM - Deepstream schema payload
#(1): PAYLOAD_DEEPSTREAM_MINIMAL - Deepstream schema payload minimal
#(256): PAYLOAD_RESERVED - Reserved type
#(257): PAYLOAD_CUSTOM - Custom schema payload
msg-conv-payload-type=0
# Id of component in case only selected message to parse.
#msg-conv-comp-id=<val>
# Configure this group to enable cloud message consumer.
[message-converter]
enable=0
msg-conv-config=msgconv_sample_config.txt
#(0): PAYLOAD_DEEPSTREAM - Deepstream schema payload
#(1): PAYLOAD_DEEPSTREAM_MINIMAL - Deepstream schema payload minimal
#(256): PAYLOAD_RESERVED - Reserved type
#(257): PAYLOAD_CUSTOM - Custom schema payload
msg-conv-payload-type=0
# Id of component in case only selected message to parse.
#msg-conv-comp-id=<val>
# Configure this group to enable cloud message consumer.
[message-consumer0]
enable=0
proto-lib=/opt/nvidia/deepstream/deepstream/lib/libnvds_kafka_proto.so
conn-str=localhost;9092
#config-file=<broker config file e.g. cfg_kafka.txt>
subscribe-topic-list=raw-events
# Use this option if message has sensor name as id instead of index (0,1,2 etc.).
sensor-list-file=msgconv_sample_config.txt
[osd]
enable=1
gpu-id=0
border-width=1
text-size=10
text-color=1;1;1;1;
text-bg-color=0.3;0.3;0.3;1
font=Arial
show-clock=0
clock-x-offset=800
clock-y-offset=820
clock-text-size=12
clock-color=1;0;0;0
nvbuf-memory-type=0
[streammux]
gpu-id=0
##Boolean property to inform muxer that sources are live
live-source=0
batch-size=2
##time out in usec, to wait after the first buffer is available
##to push the batch even if the complete batch is not formed
batched-push-timeout=40000
## Set muxer output width and height
width=1920
height=1080
##Enable to maintain aspect ratio wrt source, and allow black borders, works
##along with width, height properties
enable-padding=0
nvbuf-memory-type=0
## If set to TRUE, system timestamp will be attached as ntp timestamp
## If set to FALSE, ntp timestamp from rtspsrc, if available, will be attached
# attach-sys-ts-as-ntp=1
[tracker]
enable=1
tracker-width=640
tracker-height=384
gpu-id=0
ll-lib-file=/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so
# ll-config-file required to set different tracker types
# ll-config-file=../../../../samples/configs/deepstream-app/config_tracker_IOU.yml
# ll-config-file=../../../../samples/configs/deepstream-app/config_tracker_NvSORT.yml
ll-config-file=../../../../samples/configs/deepstream-app/config_tracker_NvDCF_perf.yml
# ll-config-file=../../../../samples/configs/deepstream-app/config_tracker_NvDCF_accuracy.yml
# ll-config-file=../../../../samples/configs/deepstream-app/config_tracker_NvDeepSORT.yml
# enable-batch-process=0
[nvds-analytics]
enable=1
config-file=nvdsanalytics_config.txt
[tests]
file-loop=0