The deepstream-app configuration file with the Old Streammux is:
application:
enable-perf-measurement: 1
perf-measurement-interval-sec: 5
##gie-kitti-output-dir=streamscl
tiled-display:
enable: 1
rows: 1
columns: 2
width: 1920
height: 1080
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
#(2): nvbuf-mem-cuda-device - Allocate Device cuda memory, applicable for Tesla
#(3): nvbuf-mem-cuda-unified - Allocate Unified cuda memory, applicable for Tesla
#(4): nvbuf-mem-surface-array - Allocate Surface Array memory, applicable for Jetson
nvbuf-memory-type: 0
source:
csv-file-path: sources_rtsp.csv
sink0:
enable: 1
#Type - 1=FakeSink 2=EglSink/nv3dsink (Jetson only) 3=File
type: 2
sync: 1
source-id: 0
gpu-id: 0
nvbuf-memory-type: 0
streammux:
gpu-id: 0
##Boolean property to inform muxer that sources are live
live-source: 1
buffer-pool-size: 2
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
The deepstream-app configuration file with the New Streammux is:
application:
enable-perf-measurement: 1
perf-measurement-interval-sec: 5
##gie-kitti-output-dir=streamscl
tiled-display:
enable: 1
rows: 1
columns: 2
width: 1920
height: 1080
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
#(2): nvbuf-mem-cuda-device - Allocate Device cuda memory, applicable for Tesla
#(3): nvbuf-mem-cuda-unified - Allocate Unified cuda memory, applicable for Tesla
#(4): nvbuf-mem-surface-array - Allocate Surface Array memory, applicable for Jetson
nvbuf-memory-type: 0
source:
csv-file-path: sources_rtsp.csv
sink0:
enable: 1
#Type - 1=FakeSink 2=EglSink/nv3dsink (Jetson only) 3=File
type: 2
sync: 1
source-id: 0
gpu-id: 0
nvbuf-memory-type: 0
streammux:
gpu-id: 0
config-file-path: config_new_streammux.txt
where config_new_streammux.txt contains:
[property]
batch-size=2
overall-min-fps-n=25
overall-min-fps-d=1
Tests conducted are as follows:
Test 1
Streammux. Old
Source Frame Rates: Left - 25 fps, Right - 25 fps
Video File: old_streammux_same_framerate.webm
Test 2
Streammux: New
Source Frame Rates: Left - 25 fps, Right - 25 fps
Video File:new_streammux_same_framerate.webm
Test 3
Streammux: Old
Source Frame Rates: Left - 15 fps, Right - 25 fps
Video File: old_streammux_different_framerate.webm
Test 4
Streammux: New
Source Frame Rates: Left - 15 fps, Right - 25 fps
Video File: new_streammux_different_framerate.webm
The distortion is only in Test4 on the video with higher frame rate.
All videos mentioned above have been uploaded in the zip file.
videos.zip (3.6 MB)
Thanks