Jetson TX2 Video Encoding

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 ( @ 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.


We have a tegra_multimedia_api sample for USB cameras outputting in UYVY/YUVY/MJPEG format.


And a patch to hook it up with NvVideoEncoder:
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


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