I am trying to record 19201080p videos at 60 fps using an IMX477 sensor on the Jetson Nano B01 . This is the gstreamer pipeline that I am using to display (sensor-mode=1 corresponds to the 19201080p 60fps mode on the sensor):
gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=1 ! “video/x-raw(memory:NVMM), width=1920, height=1080, framerate=60/1” ! nvvidconv ! nvoverlaysink
This runs fine, and it seems to be displaying correctly. However, if I try to record I am getting extremely low fps in the video file. If I scale the images down to 1280720 then I’m able to record at 60 fps, but at the full 19201080 resolution I’m only getting 1-3 fps. This is the pipeline I used for recording:
gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=1 ! ‘video/x-raw(memory:NVMM), width=1280, height=1080, format=NV12 framerate=60/1’ ! nvv4l2h264enc ! h264parse ! mp4mux ! filesink location=test.mp4
Is there a more efficient way to do this so that I can record videos at the full resolution?
Would it be better to save the raw data and encode at a later stage?
I am running in 10W mode with a 5V 5A barrel jack power supply to maximise power and have also run jetson_clocks.