The Xavier NX SoC is powerful to support 2x 4K60 | 4x 4K30 | 10x 1080p60 |
20x 108p30 (H.264) as Technical Specifications in https://developer.nvidia.com/embedded/jetson-modules.
However, when I’s using following GStreamer pipeline to encode 8x 1080p30, it costs 38ms… And found its time cost largely increase from 10ms, 13ms, 14ms, 23ms, …, 38ms as 1 camera, 2 cameras, 3 cameras, 4 cameras, …, 8cameras.
const char *gst_cmd =
"appsrc name=appsrc"
" ! video/x-raw,format=YUY2,width=1920,height=1080,framerate=(fraction)30/1"
" ! nvvidconv"
" ! video/x-raw(memory:NVMM),format=NV12,width=1920,height=1080,"
" framerate=(fraction)30/1"
" ! nvv4l2h264enc control-rate=constant_bitrate bitrate=24000000"
/**
* All IDR frame configuration
* all-iframe, self-implemented param
* insert-sps-pps is needed
* maxperf-enable: time-cost configuration
*/
" all-iframe=true insert-sps-pps=true maxperf-enable=true"
" ! appsink name=appsink";
Besides, I have also tried the 60fps configuration, all 30/1 to 60/1, and the timecost seems no change…
PS: We had tried How can I customize to use non-blocking mode nvv4l2h264enc and it work worse; We’re trying Jetpack 4.4 [L4T 32.4.3] customize nvpmodel to make NVENC from 499.2MHz to 729.6MHz.