Dynamic Bitrate aws webrtc

Hello Team
I am using jetson orin nano and currently building a project where we aim to,
Live stream an rtsp stream over LTE(4G) network in real-time (~200 ms Latency) and broadcast to a website”.
We are able to achieve this using WLAN and LAN networks, but the cellular network streams are halted due to poor network conditions.

my current pipeline is

"uridecodebin source::latency=0 uri=%s ! "
"nvvidconv ! "
"video/x-raw(memory:NVMM), format=I420, width=(int)1280, height=(int)720 ! "
"nvvidconv ! "
"x264enc bitrate=500 key-int-max=30 insert-vui=1 tune=zerolatency pass=17 qos=true ! "
"video/x-h264, stream-format=byte-stream, alignment=au, profile=baseline ! queue ! "
“appsink sync=1 emit-signals=1 name=appsink-video”,
pSampleConfiguration->rtspUri);

This pipeline doesn’t seem to work with adaptive bitrate streaming. How can it be made to work with dynamic bitrate?

Regards
Parth.

Hi,
Looks like x264enc plugin supports runtime bitrate change, it can be set in PLAYING state:

  bitrate             : Bitrate in kbit/sec
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Unsigned Integer. Range: 1 - 2048000 Default: 2048

You may set bitrate to smaller value while network condition is not goos.

Thank you for your prompt response.

I would like to inquire if there is any API available that can monitor the network strength and dynamically adjust the bitrate accordingly.
Alternatively, would it be necessary to continuously monitor the cellular network using AT commands and adjust the bitrate value based on the output of these commands?

Regards,
Parth.

Hi,
For checking network bandwidth, we generally run iperf command. So you may check source code of iperf. It should be implemented through standard Linux APIs.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.