The main issue is that the AGX performs perfectly if I start 15 encodings simultaneously in one gst-launch-1.0 command.
But very bad if I execute each encoding with an individual gst-launch-1.0 command/process.
On Jetson Nano the results are identical with both methods.
i have also read this post where the opposite of my issue is happening:
Here are my results
Sample Video:
Video Type: 1920×816 (1080p), 4:2:0
framerate: 23.967 FPS
duration: 123 seconds
downloaded from: H.264 Demo Clips - H264info.com
Video Name: “I Am Legend” Trailer
Xavier AGX Powermode: MAXN
15x encodings simultaneously (command is executed 15 times at once):
gst-launch-1.0 -v filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc bitrate=2000000 maxperf-enable=1 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 &
#finished in 140seconds
#21 fps average each encoding
15x encodings within one command line:
gst-launch-1.0 -v \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0
#80 fps average each encoding
#finished in 39sec
Jetson Nano Powermode: MAXN
10x encodings simultaneously:
gst-launch-1.0 -v filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc bitrate=2000000 maxperf-enable=1 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 &
#35fps average each encoding
#finished in 84 sec
10x encoding within one command line:
gst-launch-1.0 -v \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 \
filesrc location=ramdisk/iamlegend.mp4 ! qtdemux ! video/x-h264 ! h264parse ! nvv4l2decoder ! queue ! nvv4l2h265enc maxperf-enable=1 bitrate=2000000 ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0
#35fps average each encoding
#finished in 84 sec
Any idea why AGX with is performing so bad with individual gst processes? Is this a bug or is there a magic option I missed to add or enable?