-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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: