How to save output videos deepstream app to individual files? And what is need to change in congif f...

Hi,
I’m trying to run deepsteam app on jetson nano. And it was perfectly run. I was set two videos input to source8_1080p_dec_infer-resnet_tracker_tiled_display_fp16_nano this file and edit source portion. It was run perfectly and show two output videos on single display. My question is: How to save this output videos to indivisibly/separate in two files for two input videos.

Here is my config edit file:

# Copyright (c) 2019 NVIDIA Corporation.  All rights reserved.
#
# NVIDIA Corporation and its licensors retain all intellectual property
# and proprietary rights in and to this software, related documentation
# and any modifications thereto.  Any use, reproduction, disclosure or
# distribution of this software and related documentation without an express
# license agreement from NVIDIA Corporation is strictly prohibited.

[application]
enable-perf-measurement=1
perf-measurement-interval-sec=5
#gie-kitti-output-dir=streamscl

[tiled-display]
enable=1
rows=4
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
#(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

[source0]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
type=3
uri=file://../../streams/sample_1080p_h264.mp4
num-sources=1
#drop-frame-interval=2
gpu-id=0
# (0): memtype_device   - Memory type Device
# (1): memtype_pinned   - Memory type Host Pinned
# (2): memtype_unified  - Memory type Unified
cudadec-memtype=0

[source1]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
type=3
uri=file:///home/imran/Downloads/deepstream_sdk_v4.0.1_jetson/samples/streams/sample_cam6.mp4
num-sources=1
#drop-frame-interval=2
gpu-id=0
# (0): memtype_device   - Memory type Device
# (1): memtype_pinned   - Memory type Host Pinned
# (2): memtype_unified  - Memory type Unified

[sink0]
enable=1
#Type - 1=FakeSink 2=EglSink 3=File
type=3
source-id=0
gpu-id=0
qos=0
nvbuf-memory-type=0
output-file=out_sink8989.mp4
overlay-id=1

[sink1]
enable=1
type=3
#1=mp4 2=mkv
container=1
#1=h264 2=h265
codec=1
sync=0
#iframeinterval=10
bitrate=2000000
output-file=out_sink_8585.mp4
source-id=1

[sink2]
enable=0
#Type - 1=FakeSink 2=EglSink 3=File 4=RTSPStreaming
type=3
#1=h264 2=h265
codec=1
sync=0
bitrate=4000000
output-file=out25.mp4
# set below properties in case of RTSPStreaming
rtsp-port=8554
udp-port=5400

[osd]
enable=1
gpu-id=0
border-width=1
text-size=15
text-color=1;1;1;1;
text-bg-color=0.3;0.3;0.3;1
font=Serif
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=8
##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

# config-file property is mandatory for any gie section.
# Other properties are optional and if set will override the properties set in
# the infer config file.
[primary-gie]
enable=1
gpu-id=0
model-engine-file=../../models/Primary_Detector_Nano/resnet10.caffemodel_b8_fp16.engine
batch-size=8
#Required by the app for OSD, not a plugin property
bbox-border-color0=1;0;0;1
bbox-border-color1=0;1;1;1
bbox-border-color2=0;0;1;1
bbox-border-color3=0;1;0;1
interval=4
gie-unique-id=1
nvbuf-memory-type=0
config-file=config_infer_primary_nano.txt

[tracker]
enable=0
tracker-width=480
tracker-height=272
#ll-lib-file=/opt/nvidia/deepstream/deepstream-4.0/lib/libnvds_mot_iou.so
ll-lib-file=/opt/nvidia/deepstream/deepstream-4.0/lib/libnvds_mot_klt.so
#ll-config-file required for IOU only
#ll-config-file=iou_config.txt
gpu-id=0

[tests]
file-loop=0

Hi,
Please refer to
https://devtalk.nvidia.com/default/topic/1065137/deepstream-sdk/pipeline-to-send-multiple-sources-to-multiple-sinks-/post/5393858/#5393858

It should work by disabling [tiled-display] in your config file.

Thanks DaneLLL for replay.

Actually I know this one. If I enable [tiled-display], it will show multiple video in one display, and if I disable [tiled-display], it will show multiple video in particular display. I know this one. This is not my problem. My question is: I watched the detection of output and how could I save all video in particular files? for example I saw eight different video in one screen or particular screen. and A separate output file will be created for the first output video and as same as second, third…videos.
So what should I do?

Hi,
Please identify sink* with source-id. Below is a sample of 2 sources with 2 EglSink + 2 Encode + File Save.

[sink0]
enable=1
#Type - 1=FakeSink 2=EglSink 3=File
type=2
sync=0
<b>source-id=0</b>
gpu-id=0
qos=0
nvbuf-memory-type=0
overlay-id=1

[sink1]
enable=1
type=3
#1=mp4 2=mkv
container=1
#1=h264 2=h265
codec=1
sync=0
#iframeinterval=10
bitrate=2000000
output-file=out.mp4
<b>source-id=0</b>

[sink2]
enable=1
#Type - 1=FakeSink 2=EglSink 3=File
type=2
sync=0
<b>source-id=1</b>
gpu-id=0
qos=0
nvbuf-memory-type=0
overlay-id=1

[sink3]
enable=1
type=3
#1=mp4 2=mkv
container=1
#1=h264 2=h265
codec=1
sync=0
#iframeinterval=10
bitrate=2000000
output-file=out1.mp4
<b>source-id=1</b>

Thanks DaneLee. It’s working.
Thanks again.

When I disable [tiled-display] and input 2 videos it will show particular on screen display. 2 videos for 2 speared display and create 2 output videos to save file. That’s working very nice. Actually that was my problem. Thank you for solving.
I just a query, If I enable [tiled-display] and I was input 2 video, it showed 2 detection out video in one display. And It is doing save one video. I open this video and saw two output video in one video. Is it possible to enable [tiled-display] and save the output video for particular file?

screenshot image: https://ibb.co/pd28TyL

Hi,

It is not supported in default deepstream-app. You may refer to the source code and customize it.