Which encoder supports adaptive bitstreaming on TX2 using HW?

I would like to know if you can have adaptive H265 streaming on the TX2 using Gstreamer, a library or through the multimedia API in such a way that you can use GPU Harware Acceleration to speed things up.
Does OMX encoder supports such feature?

Adaptive streaming is a networking technology. It ends up delivering a program stream, where the receiver can then funnel the stream (which may arrive at varying bitrate) to the decoder.
Because the stream that the decoder sees is always a proper stream, albeit of varying bitrate, then the decoder doesn’t really know whether you’re receiving the stream from a network, or from a hard disk, or from a user typing hex codes into the terminal. It’s just (properly formatted) data at that point.

Here’s some random blog on the internet that talks about how to receive adaptive streams with gstreamer: https://coaxion.net/blog/2014/05/http-adaptive-streaming-with-gstreamer/

One clarification is that on TX1/TX2, the encoder and decoder are individual HW engines, not using GPU.

I also now notice that you’re looking for generating adaptive streams, rather than playing them back.

The challenge is still that this is a network layer feature – you need to have a network server process that can serve the adaptive stream format. Once you have that, the server process needs to tell the driver what bit rate to generate (space/quality trade-off.)

There is documentation for the omxh265enc filter here:
https://developer.ridgerun.com/wiki/index.php?title=Gstreamer_pipelines_for_Tegra_X1#H265_encoding
(Thanks to the RidgeRun people for collecting this!)

It claims changing the bitrate during streaming is supported:

bitrate             : Target bitrate
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4000000

But, as I said, the hard part is the network protocol side of things.

Thank you for your answer! I will start to have a look at it immediately! And Im really curious about being able to change the bitrate on the fly as is seen on the RidgeRun website! Does that mean that OMX encoder actually supports it, meaning to be albe to change the bitrate without having the need to restart it?

Hi ADomi, changing bitrate on the fly is supported on both gstreamer and MM APIs.

A gstreamer sample from @dk1900
https://devtalk.nvidia.com/default/topic/1005986/jetson-tk1/tk1-omxh264enc-not-respecting-bitrate-during-scene-changes-/post/5137046/#5137046

Awesome! By any chance there is a documentation regarding how to use OMX in Gstreamer and MM API?