Low-latency h/w encoding from camera

We’re using Jetpack 3 on a TX1 board and want to stream low-latency 4k camera video (no b/i frames). We’re using gstreamer1.0 and omxh264enc. But inspecting omxh264enc, it doesn’t have the “low-latency” attribute.

Was this a mistake in jetpack 3.0? Should we downgrade to 2.3?

This is a 0.10 example from the TX1 docs.

gst-launch-0.10 videotestsrc num-buffers=200 ! ‘video/x-raw-yuv,
width=(int)1280, height=(int)720, format=(fourcc)I420’ ! nv_omx_h264enc
low-latency=1 ! qtmux ! filesink location=test.mp4 -e

Hi deeth,
Low-latency is on by default, so the attribute is removed.

DaneLLL,

Thanks. I see “iframeinterval” default is 0, and “num-B-Frames” is 0. So it seems the default is to be as fast as possible.

Do you have any comments on where the sweet spot is? Ie up “quality-level” to 1 and add some i/b frames? 4k/30

Thanks!

Hi deeth,
YEs, the default is the fast.

For 4kp30, please keep the HW preset level as default = 0
For 1080p or 720, you probably can try other settings.
https://devtalk.nvidia.com/default/topic/994281/jetson-tx1/v4l2-video-encoder-performance-/post/5092850/#5092850

And iframeinterval should be 60 by default. Not sure why but the info in ‘gst-inspect-1.0’ is not correct.