CPU load increases and the system freezes in Jetson Orin Nano, when inputting interlaced video from a network camera
Issue Overview
Users are experiencing significant CPU load increases and system freezes when inputting interlaced video from a network camera using GStreamer on the Nvidia Jetson Orin Nano. The issue manifests after approximately 30 minutes of operation, leading to system hangs.
Symptoms and Context
- Symptoms: Gradual increase in CPU load, culminating in system freeze.
- Context: The problem occurs during video streaming using a GStreamer pipeline.
- Hardware Specifications:
- Device: Jetson Orin Nano
- Software: JetPack 5.1.2, GStreamer 1.16
- Video Source: Interlaced video from a network camera with specifications:
- Bitrate: 12 Mbps
- Frame Rate: 30 fps
- Video Structure: IPP, H264, Interlaced
- Data Structure: UDP > RTP > TS > H264 Video
- Frequency: The issue consistently arises under the specified conditions.
- Impact: The problem severely affects user experience by causing system instability during video processing tasks.
Possible Causes
-
Hardware Incompatibilities or Defects: The Jetson Orin Nano may struggle with specific video formats or high data rates, especially with interlaced content.
-
Software Bugs or Conflicts: There could be bugs within GStreamer or the specific plugins used (e.g.,
nvv4l2decoder
,rtpjitterBuffer
) that lead to increased CPU usage over time. -
Configuration Errors: Incorrect pipeline configuration may cause inefficient processing of interlaced video streams.
-
Driver Issues: Outdated or incompatible drivers could lead to performance degradation when handling specific media formats.
-
Environmental Factors: High temperatures or insufficient power supply might exacerbate performance issues.
-
User Errors or Misconfigurations: Users may not be utilizing optimal settings for their specific use case, particularly regarding the handling of interlaced video.
Troubleshooting Steps, Solutions & Fixes
Step-by-Step Instructions
-
Verify Hardware and Software Versions:
- Ensure that the Jetson Orin Nano is updated with the latest drivers and firmware.
- Confirm that JetPack version 5.1.2 and GStreamer version 1.16 are correctly installed.
-
Check Current Pipeline Configuration:
- Review the original GStreamer pipeline for potential inefficiencies.
- Original pipeline:
gst-launch-1.0 udpsrc address=192.168.0.249 port=5004 multicast-iface=lan0 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=MP2T" ! rtpjitterBuffer ! rtpmp2tdepay ! tsdemux ! h264parse ! nvv4l2decoder ! deinterlace ! nv3dsink
-
Test Alternative Pipeline Configuration:
- Users have reported success with a modified pipeline that removes the
deinterlace
plugin:gst-launch-1.0 udpsrc address=192.168.0.249 port=5004 multicast-iface=lan0 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=MP2T" ! rtpjitterBuffer ! rtpmp2tdepay ! tsdemux ! h264parse ! nvv4l2decoder ! nvvidconv ! "video/x-raw(memory:NVMM),format=I420" ! nv3dsink sync=0
- This adjustment may alleviate CPU load issues since the
deinterlace
plugin is not necessary for processing interlaced streams effectively.
- Users have reported success with a modified pipeline that removes the
-
Monitor System Performance:
- Use system monitoring tools (e.g.,
htop
,nvidia-smi
) to observe CPU usage and GPU performance while running the modified pipeline. - Identify any processes that contribute significantly to CPU load.
- Use system monitoring tools (e.g.,
-
Isolate Environmental Factors:
- Ensure that the device operates within recommended temperature ranges and is connected to a stable power supply.
-
Update Drivers and Firmware:
- Regularly check for updates to JetPack and GStreamer to ensure optimal performance and bug fixes.
Best Practices for Future Prevention
-
Regularly update software components to benefit from performance improvements and bug fixes.
-
Optimize GStreamer pipelines based on specific use cases, particularly when dealing with different video formats.
-
Monitor system resources during intensive tasks to preemptively identify potential bottlenecks.
Unresolved Aspects
While several users have successfully implemented the alternative pipeline solution, further investigation may be needed regarding:
-
Long-term stability of the modified pipeline under continuous operation.
-
Potential underlying bugs in GStreamer related to handling interlaced video streams that could affect other users in different scenarios.