gpt4 book ai didi

video - RTP 的 H264 关键帧问题

转载 作者:行者123 更新时间:2023-12-04 22:53:40 34 4
gpt4 key购买 nike

我正在为 H264 视频构建 RTP 编码器。视频数据提供者不会定期流式传输数据中的关键帧,而是为我提供了关键帧的二进制文件表示。这包括 SPS-PPS-SEI,然后是 i-frame 的 8 个切片。

由于我正在编码 RTP,因此我需要以 2 秒的间隔重新广播此关键帧。我正在我的代码中执行此操作,以及其他传入的数据。我正在使用 ffmpeg 通过 UDP 套接字连接到 RTP 数据以进行显示测试。

我注意到每 2 秒,视频似乎会出现空白并重新同步、像素化等。显然,这在视频产品中是非常不受欢迎的。我一直在尝试调试它很长一段时间,我唯一能确定的是它与关键帧有关。如果我只发送一次关键帧,然后发送其余数据,则 ffmpeg 可以正常显示视频。但是在网络环境中,我需要定期发送关键帧。

有没有人知道为什么会发生这种视频重新同步,最重要的是,如何阻止它发生?

谢谢!

最佳答案

设置解码器需要 SPS、PPS 和 SEI,属于 non-VCL数据。这些通常在 IDR 帧之前的流中找到,但它们也可以在带外进行通信,例如通过 SDP。如果您没有用于通信 SPS 和 PPS 的带外机制,那么当然,您需要定期在带内重新发送它们,以便新客户端可以初始化 H.264 解码器。

I am noticing that every 2 seconds, the video seems to blank and resync itself, pixelate, etc. Obviously, this is highly undesirable in the video product. I've been trying to debug this for quite some time and the only thing I can determine is that it has to do with the keyframe. If I just send the keyframe once, and then the rest of the data, ffmpeg displays the video fine. But in a network environment, I need to send the keyframe at periodic intervals.


我不确定我是否理解正确,但您不能每两秒重新发送“静态”i-frame(可能是 IDR)数据:您将“旧”先前解码的 VCL 数据发送到具有效果的编码器重新同步流。

Does anyone have an idea as to why this resyncing of the video happens and most importantly, how to stop it from happening?


尝试定期仅发送非 VCL NAL 单元。您可以定期执行此操作,也可以仅将它们添加到流中的 IDR 帧,因为此时您只能开始播放视频(没有伪影)。
.

关于video - RTP 的 H264 关键帧问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32366089/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com