Hello. I am quite new to gstreamer and Jetson Nano. I am developing an application using a CSI camera with Jetson Nano. The application pipeline has these components:
- Stream video from CSI camera.
- Dynamic cropping of video (via buttons wired to GPIO ports). I have read that Nvidia’s plugin
nvvidconv
does not support dynamic change of its properties. - Color space changing (
nvvidconv
does the job here). - Use CNNs on the video frames for object detection.
- Drawing geometric shapes (such as rectangular bounding boxes) on the video
Some of the operations like dynamic cropping can be done with gstreamer plugins such as videocrop
. However that requires the data to be transferred from NVVM to non-NVVM memory. The camera outputs 1920x1080 frames, so doing operations using gstreamer plugins results in considerable lag. I am looking for a way to use the Jetson’s hardware acceleration capabilities while doing all of the above operations.
So my question is which of the following options should I choose:
- Jetson Multimedia API
- DeepStreamSDK
- Write my own gstreamer plugins in C/C++/Python
If possible, I would like to use Python for development. Any help on this would be highly appreciated.