I don’t have a proper tool to check h264 encoding with GDR.
of course the output h264 is playable, but I don’t know how the GDR affected the I and P frames.
I tried with “4 11” and H265 - got “test.h265” and “gdr_out.h265” which are differ but the same final result in both files when analyzing the GDR.
The result is 2 or 3 slices per frame , I-frame is always second.
I expect the GDR will create 11 slices (starting with frame 4) and the I-frame’s location will rotate.
Hi,
It looks like there is no free bitstream analyzer. A possible way is to check the picture type and packet size through ffprobe. We can encode two streams:
The picture type and packet size of frames are different between the two stream. However, for accurate check , you may need to get a bitstream analyzer.
I checked the h265 and h264 with analyzing tools inserting many different params in the GDR conf file.
My conclusions so far:
the gdr_start_frame_number param works fine for both encoders
the gdr_num_frames split the h264 to correct number of slices
h265 does not affected by gdr_num_frames and always split the frame to 2 or 3 slices - I/P or P/I/P
for both encoders the cycle is always 6 slices no matter what gdr_num_frames I choose - it means that if the gdr_num_frames is bigger than 6 (lets say 10) only 6 of 10 slices will be shown, and the other 4 will get not enough data (stays green on display).
Is there a way to configure it differently or ‘6’ is hard coded and cannot be changed?
Why the H265 does not split to slices like the h264?
for h265:
it seems like the I-frame “knows” there are 17 slices - cycle with only first 6. the P-frames are always the rest of the picture - not sliced into the other 6 but only 1/2 P-frames each Frame.
h265 from another encoder:
you can see how it sliced into 17 - the I-frame cycle between all.
in this example I took the 15th Frame so the last two still green.
Hi,
So are you able to use H264 encoding with gdr_num_frames=6? This looks to be only working solution on JP4.4.1. Or you must use H265 encoding with gdr_num_frames=10 in your usecase?
Hi,
We will check this. Since the function is advancing, the investigation may take some time. On current release(s), we suggest use the working case in h264. For h265, instead of enabling GDR, we suggest try to set virtual buffer size in CBR mode:
-vbs <size> Virtual buffer size [Default = 0]
You can refer to the gstreamer pipelines and apply the setting to 01_video_encode: