RTSP: Fix timestamp reset after reconnect#1943
Open
seydx wants to merge 2 commits intoAlexxIT:masterfrom
Open
Conversation
…r resets after reconnect
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When a new client connects and requests a different track (e.g., first client wants video only, second client wants video+audio), go2rtc performs a reconnect. Some cameras (e.g., Tapo via ONVIF) reset their RTP timestamps to 0 after reconnect, which causes existing clients to receive packets with much lower timestamps than before.
Error in ffmpeg:
This causes ffmpeg to skip frames until it reaches the last valid PTS.
Solution
Detect timestamp resets (when
timestamp == 0after having received packets before) and apply a constant offset to maintain timestamp continuity for existing clients.Testing
Expected: No "non monotonically increasing dts" errors in first client.