Hi,
The test result is dependent to resolution and frame rate. If you would like to achieve 4Kp30 encoding , you only can set to UltraFastPreset. If your use-case is single 1080p30 encoding, you may set to other preset to get better image quality.
So if you run 4K encoding and compare the preset levels, should see different result and fps.
We don’t have test data for latency. For achieving low latency, suggest you set the properties:
poc-type : Set Picture Order Count type value
flags: readable, writable, changeable only in NULL or READY state
Unsigned Integer. Range: 0 - 2 Default: 0
maxperf-enable : Enable or Disable Max Performance mode
flags: readable, writable, changeable only in NULL or READY state
Boolean. Default: false
For encoding into I P P P … frames, encoder would need to keep one reference frame so you should see one-frame delay. If your source is in 30fps, there is 33ms latency.
Thank you for your kind reply.
My video streaming frame size is 2592 x 1944 less than 4k. frame rate is 24 fps.
This is my test script for OpenCV VideoCapture
I can’t see any poc-type is acceptable for real time video streaming. It looks like poc-type 0 is better than others?
why the encoding latency more than 2 seconds for any poc-type, event more than 3 seconds for poc-type=1?
Thanks
Generally it should have low latency in setting poc-type=2. Probably it is not that obvious in gstreamer frameworks. For further enhancement, may try jetson_multimedia_api.
Thank you for your kind reply.
Can I change INPUT_YUV_FILE to the camera source. My camera is e-con system See3CAM_CU55, which support v4l2. If yes, please let me know how. If not, would you please let me know how can I get the video from the camera and save it as the INPUT_YUV_FILE . The camera video format is UYVY. I need to test encode latency at full frame size 2592 x 1944.
Thanks
Hi,
If the source is not able to meet constraint of data alignemnt, you would need to call Raw2NvBuffer() to copy data from CPU buffer to NvBuffer. This memory copy may trigger certain latency. Due to this there may not be benefit in switching from gstreamer to jetson_multimedia_api, but if you would like to give it a try, may refer to this patch: tegra multimedia samples not working properly - #11 by DaneLLL
It demonstrates 12_camera_v4l2_cuda + NvVideoEncoder. You would also need to port the options –stats --max-perf -poc from 01_video_encode.