Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RTC: Supports direct forwarding, does not change SSRC and Timestamp, making problem troubleshooting easier. #3850

Open
winlinvip opened this issue Oct 25, 2023 · 2 comments
Assignees
Labels
TransByAI Translated by AI/GPT. WebRTC WebRTC, RTC2RTMP or RTMP2RTC.

Comments

@winlinvip
Copy link
Member

winlinvip commented Oct 25, 2023

Describe the bug
When SRS forwards RTC packets, it modifies the SSRC and Timestamp, which is inconvenient for end-to-end troubleshooting.

Version
6.0.95

To Reproduce
Steps to reproduce the behavior:

  1. Start packet capture with Wireshark.
  2. Use WHIP for streaming.
  3. Use WHEP for playback.
  4. Notice that the SSRC and Timestamp for streaming and playback are different.

Expected behavior
Add a new configuration that can support not changing the SSRC and Timestamp, which is helpful for troubleshooting in certain scenarios.

Screenshots
For example, when adding a weak network in tc, it can help identify which packets are being dropped or delay:

image image

Additional context
Previously, SRS recalculated Timestamp to support scenarios such as starting a stream, stopping a stream, and restarting a stream, so that continuous playback could be achieved. Additionally, SRS allows for playback before streaming, which requires the generation of SSRC first.

TRANS_BY_GPT4

@winlinvip winlinvip changed the title RTC: 支持直接转发,不修改SSRC和Timestamp,方便排查问题 RTC: Supports direct forwarding, does not change SSRC and Timestamp, making problem troubleshooting easier. Oct 25, 2023
@winlinvip winlinvip added the TransByAI Translated by AI/GPT. label Oct 25, 2023
@winlinvip
Copy link
Member Author

Direct forwarding with the same SSRC can be beneficial for debugging purposes, while indirect forwarding that rewrites the SSRC is helpful when needing to conceal the source SSRC.

@winlinvip winlinvip self-assigned this Mar 25, 2024
@winlinvip winlinvip added the WebRTC WebRTC, RTC2RTMP or RTMP2RTC. label Mar 25, 2024
@winlinvip
Copy link
Member Author

winlinvip commented Apr 3, 2024

This modification was made to ensure the continuity of timestamps, particularly when restreaming. Inconsistent timestamps can cause issues such as stuttering on the playback client.

TRANS_BY_GPT4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
TransByAI Translated by AI/GPT. WebRTC WebRTC, RTC2RTMP or RTMP2RTC.
Projects
None yet
Development

No branches or pull requests

1 participant