USB capture device errors

I recently bought a Jetson Nano, in hopes it could improve performance from the Raspberry Pi 3B + board. I am trying to run a script that runs two processes, one that is a continuous loop reading audio from a capture device attached to the jetson nano, and the other a continuous loop reading video from a capture device:

There seems to be trouble with the video process. I am using JetPack 4.2 and I have followed the guide located at:

In order to initialize a video stream i am using the command cv2.videoCapture(-1, cv2.v4l_CAP). When running audio and video each individually (and not together) they work fine, but together they work fine for a few minutes as expected, and then execution comes to a hault, giving a select timout error, as well as a “VIDIOC_DQBUF: Resource temporarily unavailable” error. After a bit more digging I noticed that the videoCapture process seems to spike the CPU usage when executed without the audio portion to sometimes 300%.

I have tried initializing the video stream using a gstreamer pipeline :

‘v4l2src device=/dev/video{} ! video/x-raw, width=(int){}, height=(int){}, framerate=(fraction){}/1 ! videoconvert ! video/x-raw, format=(string)BGR ! appsink’.format(dev, width, height, fps),

but this led to the same CPU usage spike.

I figure this is a driver problem or i am not initializing the video stream optimally, can anyone shed light on this issue, or give me any advice on how to optimize the video stream and reduce the cpu usage?