AGX encoding capabilities

I am reading the AGX datasheet, and it mentioned the H.265 (HEVC) Main, Main10 encoding capabilities to be 2160p60 (4) | 2160p30 (8) | 1080p60 (16) |1080p30 (32) with a throughput of (2x) 1000 MP/s.

My question is:

  1. is there a max height and width we have for the encoding? Is this documented somewhere?
  2. For a different size/fps of videos, what is the max stream number? for example, we have 2448x2048 running at 20fps, can we encode 10 of them at the same time? it is certainly below the 2x1000MP/s number, and under 2160p30p but more than 8 streams. If not, is there anything we can do to make it possible?

Seems ok:

gst-launch-1.0 -e \
   videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM),width=2448,height=2048,format=NV12,framerate=20/1' ! nvv4l2h264enc profile=2 ! h264parse ! matroskamux ! filesink location=test0.mkv \
   videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM),width=2448,height=2048,format=NV12,framerate=20/1' ! nvv4l2h264enc profile=2 ! h264parse ! matroskamux ! filesink location=test1.mkv \
   videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM),width=2448,height=2048,format=NV12,framerate=20/1' ! nvv4l2h264enc profile=2 ! h264parse ! matroskamux ! filesink location=test2.mkv \
   videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM),width=2448,height=2048,format=NV12,framerate=20/1' ! nvv4l2h264enc profile=2 ! h264parse ! matroskamux ! filesink location=test3.mkv \
   videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM),width=2448,height=2048,format=NV12,framerate=20/1' ! nvv4l2h264enc profile=2 ! h264parse ! matroskamux ! filesink location=test4.mkv \
   videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM),width=2448,height=2048,format=NV12,framerate=20/1' ! nvv4l2h264enc profile=2 ! h264parse ! matroskamux ! filesink location=test5.mkv \
   videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM),width=2448,height=2048,format=NV12,framerate=20/1' ! nvv4l2h264enc profile=2 ! h264parse ! matroskamux ! filesink location=test6.mkv \
   videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM),width=2448,height=2048,format=NV12,framerate=20/1' ! nvv4l2h264enc profile=2 ! h264parse ! matroskamux ! filesink location=test7.mkv \
   videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM),width=2448,height=2048,format=NV12,framerate=20/1' ! nvv4l2h264enc profile=2 ! h264parse ! matroskamux ! filesink location=test8.mkv \
   videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM),width=2448,height=2048,format=NV12,framerate=20/1' ! nvv4l2h264enc profile=2 ! h264parse ! matroskamux ! filesink location=test9.mkv

recorded files seems ok so far.

Thanks. That’s great news. I will verify it with a real data stream when I get it.

As for my question 1, in addition to the max height and width, do we also have data for max fps?

I am looking to see if it is possible to mix frames from different streams together with IDR frames, so 200fps in 2160p. Wonder if it is possible?

For question 1, not sure but I wouldn’t expect more than 4096 columns or rows. There may be HW limitations but I’m unable to tell more. For fps, there may be ways to improve with clock boosting, but 30 fps should be ok in most cases.

I just verified encoding 10x2160p@20fps + 1x2160p@10fps live streams works well with the default settings for H265. No need for me to mux the streams.

Thanks for the info @Honey_Patouceul.

Hi,
The maximum width is 4096 as Honey Patouceul mentions. It is a hardware constraint. For more information about multiple video encoding/decoding, please take a look at
https://developer.nvidia.com/jetson-agx-xavier-series-datasheet