I’ve been struggling to find a clear answer as to whether or not the Jetson’s dedicated video encoder is accessible with USB3 cameras as opposed to connecting cameras through CSI.
I am looking at connecting 4 USB3 cameras (https://www.flir.ca/products/blackfly-s-usb3/?model=BFS-U3-13Y3C-C) @ 1280x1024 100FPS (at minimum I could use 640x480 60FPS). The plan is to have these 4 cameras sending RGB8 video to the Jetson for h.265 (or h.264) encoding and then using the video for AI inference and saving it for viewing at a later point in time.
Thanks.
Hi,
We have a tegra_multimedia_api sample for USB cameras outputting in UYVY/YUVY/MJPEG format.
tegra_multimedia_api\samples2_camera_v4l2_cuda
And a patch to hook it up with NvVideoEncoder:
https://devtalk.nvidia.com/default/topic/1062492/jetson-tx2/tegra-multimedia-samples-not-working-properly/post/5383923/#5383923
Working flow is like:
YUYV -> NvBufferTransform() -> I420(or NV12) -> NvVideoEncoder
However, RGB8 is not supported in NvBufferTransform(hardware limitation). So for your case, you may refer to
tegra_multimedia_api\samples\v4l2cuda
Check if you can run the sample to capture RGB8 frames. If you can do it, you can allocate RGBA(or BGRx) NvBuffer and put frame data into the buffers. Thw working flow is like:
RGB8 -> NvBuffer in BGRx(or RGBA) -> NvBufferTransform() -> I420(or NV12) -> NvVideoEncoder