srs/trunk
Jacob Su 101382afd0
RTC2RTMP: Fix screen sharing stutter caused by packet loss. v5.0.216 v6.0.157 v7.0.18 ()
## How to reproduce?

1. Refer this commit, which contains the web demo to capture screen as
video stream through RTC.
2. Copy the `trunk/research/players/whip.html` and
`trunk/research/players/js/srs.sdk.js` to replace the `develop` branch
source code.
3. `./configure && make`
4. `./objs/srs -c conf/rtc2rtmp.conf`
5. open `http://localhost:8080/players/whip.html?schema=http`
6. check `Screen` radio option.
7. click `publish`, then check the screen to share.
8. play the rtmp live stream: `rtmp://localhost/live/livestream`
9. check the video stuttering.

## Cause
When capture screen by the chrome web browser, which send RTP packet
with empty payload frequently, then all the cached RTP packets are
dropped before next key frame arrive in this case.

The OBS screen stream and camera stream do not have such problem.

## Add screen stream to WHIP demo

><img width="581" alt="Screenshot 2024-08-28 at 2 49 46 PM"
src="https://github.com/user-attachments/assets/9557dbd2-c799-4dfd-b336-5bbf2e4f8fb8">

---------

Co-authored-by: winlin <winlinvip@gmail.com>
..
3rdparty ST: Use clock_gettime to prevent time jumping backwards. v7.0.17 ()
auto ST: Use clock_gettime to prevent time jumping backwards. v7.0.17 ()
conf Proxy: Support proxy server for SRS. v7.0.16 ()
doc RTC2RTMP: Fix screen sharing stutter caused by packet loss. v5.0.216 v6.0.157 v7.0.18 ()
etc/init.d
gdb The identifier "ShowCouroutines" needs to be modified to "ShowCoroutines" in order to rectify the typographical error. v6.0.63 ()
ide/srs_clion UniquePtr: Support SrsUniquePtr to replace SrsAutoFree. v6.0.136 ()
modules
packaging Windows: Refine cygwin pipeline ()
research RTC2RTMP: Fix screen sharing stutter caused by packet loss. v5.0.216 v6.0.157 v7.0.18 ()
scripts UniquePtr: Support SrsUniquePtr to replace SrsAutoFree. v6.0.136 ()
src RTC2RTMP: Fix screen sharing stutter caused by packet loss. v5.0.216 v6.0.157 v7.0.18 ()
usr/lib/systemd/system
.gitignore For : API: Cleanup no active streams for statistics. v5.0.42
AUTHORS.md Update contributors.
AUTHORS.txt
Dockerfile.builds Use new cache image name. v6.0.86 ()
Dockerfile.cov Asan: Refine asan warning message for macOS.
Dockerfile.pkg Merge branch v5.0.103 into develop
Dockerfile.test Fix opus delay options, use ffmpeg-opus in docker test. v6.0.102 ()
configure ST: Use clock_gettime to prevent time jumping backwards. v7.0.17 ()