srs/trunk/src
Jacob Su 101382afd0
RTC2RTMP: Fix screen sharing stutter caused by packet loss. v5.0.216 v6.0.157 v7.0.18 (#4160)
## 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>
2024-10-15 19:00:07 +08:00
..
app RTC2RTMP: Fix screen sharing stutter caused by packet loss. v5.0.216 v6.0.157 v7.0.18 (#4160) 2024-10-15 19:00:07 +08:00
core RTC2RTMP: Fix screen sharing stutter caused by packet loss. v5.0.216 v6.0.157 v7.0.18 (#4160) 2024-10-15 19:00:07 +08:00
kernel FLV: Refine source and http handler. v6.0.155 v7.0.14 (#4165) 2024-09-01 13:02:07 +08:00
main Fix crash when quiting. v6.0.151 v7.0.10 (#4157) 2024-08-24 22:40:39 +08:00
protocol Fix #3767: RTMP: Do not response empty data packet. v6.0.153 v7.0.12 (#4162) 2024-09-01 06:40:16 +08:00
utest ST: Use clock_gettime to prevent time jumping backwards. v7.0.17 (#3979) 2024-10-15 17:52:17 +08:00