-
Notifications
You must be signed in to change notification settings - Fork 183
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
rtp_marker is missing when using proxy live555 #57
Comments
Hi The RTP standard says that we can use the marker bit OR we can look at the timestamp and if the timestamp of a RTP packet is different we know the 'last packet' was the one that should have had the marker bit set. I've not implemented that in my SharpRTSP examples. It would need you to check the timestamp and then process the buffer of older RTP packets and then store this newly arrived RTP packet in the buffer. I've no time at the moment to implement this but if you want to try and submit a Pull Request that would be great. |
It seems like it does work but when the stream coming up from the proxy is consumed by RTSP Sharp client, it is very laggy, produce lot of artefacts and end-up crashing at some point, however when i use it with VLC there is absolutely no lags please see attached video Here was the code added into RTSP Sharp client that handle timestamps, it is very basic code that use the timestamp to compute the rtp_marker
Do you see any caveats in my code ? I shall also mention that it is not the H264 decoding codec that is failing because taking the RTSP stream directly from RTSP Sharp server, without using live555 proxy will not produce any jittering effect & crashs |
nevermind, the code above is silly, because it does trigger that the packet is full, but it also add the first packet of the next frame into the previous frame, i'll try to modify that and see If i have better results |
I've reworked the code and modified directly the Process_H264_RTP_Packet method in H264Payload.cs like this:
I've removed entirely the logic with the RTP Marker and only rely on timestamp now, it works nice when using Camera -> RTSPClient |
More information about that, using this code it seems like some h264 frames are processed by I add also that VLC work smoothly with the tested RTSP stream and that the tested RTSP stream come from RTSPServer from SharpRtsp aswell |
Any improve in this issue @Rakiah i'm getting similar problem from streams, probably related to nal_header_type 24 or 28 ... Getting a bunch of artifacts in decoded stream |
I'm back doing some SharpRTSP development so looking at this Issue Report properly now. I have just extracted the latest june 2020 copy of Live555, but it fails to build on my Mac. I'll move over to a Linux box. Anyway, the fix to use the Timestamps is the right way to do things. |
@RogerHardiman my problem was fixed decoding the stream in another thread. When i was decoding stream in same thread of socket i miss some packages causing the artifact problems Nothing related to H264Payload inself. Sorry for the false positive bug report. Probably same problem with @Apouchkal? |
Hello,
we encounter an issue when we use live555 proxy for RTSP.
when use it the rtp_marker is always at 0.
we try without using live555 proxy on the same camera and it send us 0 and 1 when it need, but this info is always at 0 when we use the proxy.
thank you for your time.
Samuel
The text was updated successfully, but these errors were encountered: