-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
SRT streaming: A situation where screen flickering always occurs #2390
Comments
This design corresponds to a situation where one frame corresponds to multiple slices.
|
I seem to be unable to appear. Can you please take a screenshot of your complete OBS configuration?
|
Thank you all for your expertise. I reviewed the principles again and found the problem, just as the brother above mentioned. Each frame of the video stream is composed of multiple slices. The video uses a combination of AVCC and Annex-B format separators, which leads to sending multiple slice units as multiple frames, resulting in a screen glitch. At the same time, I also learned that... The start code has two forms: 3-byte 0x000001 and 4-byte 0x00000001. The 3-byte 0x000001 start code is only used in one situation, which is when a complete frame is divided into multiple slices. The first slice uses 0x00000001, while the other nalus containing these slices use the 3-byte start code. In all other situations, the start code is 4 bytes. If, when detecting data, the 3-byte 0x000001 data frame is directly considered as one frame without further splitting and sent, this situation will not be sent multiple times, and it can also solve the problem.
|
你这段话' translates to 'Your sentence' in English. startcode有两种形式:3字节的0x000001和4字节的0x00000001' translates to 'There are two forms of startcode: 3-byte 0x000001 and 4-byte 0x00000001' in English. The translation of the given text is as follows: '3-byte 0x000001 is only used in one specific scenario, which is when a complete frame is divided into multiple slices. The first slice uses 0x00000001, while the rest of the nalus containing these slices use the 3-byte start code. In all other scenarios, the start code is 4 bytes. Understanding the standard is correct, and that's how I interpreted it as well. However, during my actual testing, I found that some situations are not strictly as described. For example, I noticed that OBS x264 zerolatency produces AUD+SPS+PPS+SEI+IDR, where SEI has two zeros, which can cause the length of PPS to be miscalculated, and subsequently, the following AUD is also affected, leading to parsing errors.
|
In a weak network environment, if tlpkdrop is enabled, the SRT underlying layer will drop some data, which can also cause the client to display a frozen screen. It is suggested to add a detection mechanism based on the continuity of the CC field in the TS stream in such cases.
|
Description'
Please ensure that the markdown structure is maintained.
4.0release
Replay
How to replay bug?
Steps to reproduce the bug:
obs推srt流,设置输出参数,微调:zerolatency
(obs pushes srt stream, sets output parameters, fine-tunes: zerolatency). At this point, the video appears distorted when viewed through rtmp, but it is normal when using srt-live-server.Expected behavior:
Resolve the issue of distorted video.
TRANS_BY_GPT3
The text was updated successfully, but these errors were encountered: