Device: Jetson Orin Nano (L4T 36.4.0, JetPack 6.x)
Use case: AWS Kinesis Video Streams WebRTC SDK (C), 6 concurrent RTSP camera sources, each running its own GStreamer pipeline and kvsWebrtcClient process
Pipeline (per stream):
rtspsrc protocols=tcp short-header=true latency=0 location="<rtsp_uri>" !
decodebin !
nvvidconv !
video/x-raw(memory:NVMM),format=I420,width=<w>,height=<h> !
x264enc bitrate=512 speed-preset=ultrafast key-int-max=60 tune=zerolatency qos=true !
video/x-h264,stream-format=byte-stream,alignment=au,profile=baseline ! queue !
appsink sync=1 emit-signals=1 name=appsink-video
Context: We confirmed via gst-inspect-1.0 and the forums that the Orin Nano has no hardware H.264 encoder (NVENC), so x264enc software encoding is expected here. nvv4l2decoder/decodebin is correctly using hardware decode (NVDEC shows active utilization in tegrastats).
tegrastats output (6 streams running, ~50s sample):
CPU [67%@1420,64%@1113,65%@1113,61%@1113,72%@883,71%@883]
CPU [66%@1267,61%@1344,67%@1344,65%@1497,69%@1344,70%@1344]
CPU [68%@1420,67%@1510,67%@1510,64%@1510,70%@1267,72%@1267]
... (consistent pattern across ~50 samples)
Averaged: cores sit at roughly 62-70% each, fairly evenly distributed, with cores 4/5 running consistently 5-8 points hotter than cores 0-3. NVDEC fluctuates 8-86% (bursty, presumably I-frame vs P-frame decode cost). GR3D_FREQ stays at 0% throughout. Temps stable ~53-57°C, no throttling observed.
Question: Is ~65% average CPU utilization across all 6 cores in line with what you’d expect for 6 concurrent 512kbps H.264 software-encoded streams (via x264enc, ultrafast preset) at this resolution/framerate on the Orin Nano? We want to confirm whether this is within normal/expected bounds for this workload before we either (a) accept it as the hardware ceiling, (b) tune further, or (c) plan to move to an Orin NX/AGX for hardware encode. Any guidance on what’s a ‘healthy’ CPU budget to leave free for the rest of the WebRTC client logic (signaling, ICE, etc.) running alongside this would also help.
Happy to share the full tegrastats log or pipeline source if useful.