Gstreamer管道以这种方式接收视频:
webrtcbin - > rtph264depay - > avdec_h264 - > ...
我已经在webrtcbin中的rtpbin上启用do_nack以提高视频质量,但问题是来自RTP的丢失缓冲区导致'有时'h264解码器到Reinit context to ...
,这会使整个输出视频变为灰色(只有移动可见),直到收到下一个关键帧(但这可能会在几秒钟后发生)。
我注意到EVENT_GAP是在上传重启之前发出的,但丢弃它们并没有帮助。
如何使解码工件在损坏的视频上“一如既往”,而不是用灰色填充整个视频?
我无法找到avdec_h264的解决方案但是我自己编译gst-plugins-bad并使用openh264dec解决了这个问题(令人惊讶的是,它在Ubuntu / Debian的存储库包中不可用)。