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
nvvidconvdoes not support dynamic change of its properties.
- Color space changing (
nvvidconvdoes 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
- 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.