rtpgccbwe: hardware video encoders have microstutters when bitrate property changes automatically in quick succession
CC @seungha.yang @nirbheek @slomo @thiblahute
Describe your issue
In situations such as the usage rtpgccbwe
paired with twcc
in WebRTC, there are automatic property changes to the bitrate property of various encoders in feedback to network conditions.
In some hardware encoders includingnvcudah264enc
, however (compared to software encoders such as x264enc), frequent bitrate parameter updates seem to introduce clearly visible stutters to the video.
Expected Behavior
Like x264enc, there should not be any stutter to the video while bitrate is quickly updated.
Observed Behavior
There is a visible level of stutter during when the bitrate is changed. There is also a notable latency increase (likely from the jitterbuffer) when the stutter happens. This is most notable when the video contains interactive feedback.
Setup
- Operating System: Ubuntu 22.04
- Device: Computer
- GStreamer Version: 1.24.x up to 1.24.3
- Command line: Available in https://github.com/selkies-project/selkies-gstreamer/blob/main/src/selkies_gstreamer/gstwebrtc_app.py - any script for GStreamer where the bitrate property changes aboout 5-10 times a second.
Steps to reproduce the bug
- open terminal
- type
command
Try using the container https://github.com/selkies-project/selkies-gstreamer/pkgs/container/selkies-gstreamer%2Fgst-py-example to invoke the web interface at port 8080. Encoder settings available with SELKIES_ENCODER
and rtpgccbwe is turned on with SELKIES_CONGESTION_CONTROL
.
How reproducible is the bug?
Intermittent